@rancher/shell 0.5.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/.DS_Store +0 -0
  2. package/assets/images/providers/aks-black.svg +28 -0
  3. package/assets/images/providers/aks.svg +31 -0
  4. package/assets/styles/global/_labeled-input.scss +1 -0
  5. package/assets/styles/global/_layout.scss +0 -99
  6. package/assets/translations/en-us.yaml +77 -71
  7. package/assets/translations/zh-hans.yaml +25 -23
  8. package/babel.config.js +1 -7
  9. package/chart/gatekeeper.vue +11 -2
  10. package/chart/istio.vue +10 -1
  11. package/chart/logging/index.vue +11 -2
  12. package/chart/monitoring/alerting/index.vue +21 -7
  13. package/chart/monitoring/grafana/index.vue +2 -57
  14. package/chart/monitoring/index.vue +26 -52
  15. package/chart/monitoring/prometheus/index.vue +43 -37
  16. package/chart/rancher-backup/index.vue +10 -3
  17. package/cloud-credential/azure.vue +17 -4
  18. package/components/AsyncButton.vue +0 -9
  19. package/components/Carousel.vue +0 -1
  20. package/components/ChartPsp.vue +76 -0
  21. package/components/CodeMirror.vue +21 -19
  22. package/components/CopyCode.vue +2 -6
  23. package/components/CopyToClipboard.vue +1 -2
  24. package/components/CopyToClipboardText.vue +9 -14
  25. package/components/CruResource.vue +0 -1
  26. package/components/EtcdInfoBanner.vue +5 -5
  27. package/components/ExplorerProjectsNamespaces.vue +1 -25
  28. package/components/IconOrSvg.vue +1 -1
  29. package/components/Markdown.vue +12 -16
  30. package/components/Questions/index.vue +1 -1
  31. package/components/ResourceDetail/Masthead.vue +9 -25
  32. package/components/ResourceList/Masthead.vue +18 -1
  33. package/components/ResourceTable.vue +2 -14
  34. package/components/ResourceYaml.vue +0 -5
  35. package/components/SideNav.vue +1 -1
  36. package/components/SortableTable/THead.vue +9 -7
  37. package/components/SortableTable/index.vue +3 -2
  38. package/components/StatusTable.vue +1 -5
  39. package/components/TabTitle.vue +84 -0
  40. package/components/Tabbed/index.vue +0 -12
  41. package/components/__tests__/ChartPsp.test.ts +75 -0
  42. package/components/__tests__/CopyCode.test.ts +4 -5
  43. package/components/fleet/FleetBundles.vue +11 -5
  44. package/components/fleet/FleetRepos.vue +27 -62
  45. package/components/fleet/FleetResources.vue +1 -6
  46. package/components/fleet/FleetStatus.vue +3 -3
  47. package/components/fleet/FleetSummary.vue +30 -35
  48. package/components/form/ArrayList.vue +8 -1
  49. package/components/form/ArrayListSelect.vue +9 -9
  50. package/components/form/KeyValue.vue +0 -1
  51. package/components/form/LabeledSelect.vue +0 -4
  52. package/components/form/Password.vue +1 -3
  53. package/components/form/Select.vue +1 -1
  54. package/components/form/SelectOrCreateAuthSecret.vue +4 -4
  55. package/components/form/__tests__/KeyValue.test.ts +1 -1
  56. package/components/formatter/Checked.vue +3 -11
  57. package/components/formatter/ClusterProvider.vue +18 -1
  58. package/components/formatter/FleetSummaryGraph.vue +11 -23
  59. package/components/formatter/LiveDate.vue +16 -0
  60. package/components/formatter/LiveDuration.vue +1 -1
  61. package/components/formatter/PercentageBar.vue +1 -1
  62. package/components/formatter/__tests__/ClusterProvider.test.ts +28 -0
  63. package/components/nav/Group.vue +2 -2
  64. package/components/nav/Header.vue +2 -1
  65. package/components/nav/TopLevelMenu.vue +3 -29
  66. package/components/nav/Type.vue +3 -1
  67. package/components/nav/WindowManager/ContainerLogs.vue +19 -120
  68. package/components/nav/WindowManager/ContainerShell.vue +1 -6
  69. package/components/nav/WindowManager/index.vue +10 -11
  70. package/components/nav/__tests__/TopLevelMenu.test.ts +0 -33
  71. package/components/nav/__tests__/Type.test.ts +1 -1
  72. package/components/nuxt/nuxt-child.js +78 -14
  73. package/components/nuxt/nuxt.js +1 -1
  74. package/components/user.retention/user-retention-header.vue +34 -0
  75. package/composables/useI18n.ts +26 -0
  76. package/composables/useStore.ts +16 -0
  77. package/config/harvester-manager-types.js +0 -2
  78. package/config/home-links.js +32 -2
  79. package/config/private-label.js +0 -22
  80. package/config/product/explorer.js +4 -4
  81. package/config/product/fleet.js +1 -6
  82. package/config/product/legacy.js +1 -84
  83. package/config/product/manager.js +15 -8
  84. package/config/query-params.js +0 -1
  85. package/config/router.js +368 -385
  86. package/config/settings.ts +9 -2
  87. package/config/store.js +1 -1
  88. package/config/system-namespaces.js +0 -3
  89. package/config/table-headers.js +27 -47
  90. package/config/types.js +5 -0
  91. package/config/uiplugins.js +1 -1
  92. package/core/plugin-helpers.js +5 -3
  93. package/core/plugin-routes.ts +114 -56
  94. package/core/plugin.ts +10 -16
  95. package/core/plugins-loader.js +9 -7
  96. package/core/plugins.js +3 -0
  97. package/core/types-provisioning.ts +0 -7
  98. package/creators/app/init +0 -19
  99. package/detail/fleet.cattle.io.cluster.vue +1 -11
  100. package/detail/node.vue +0 -42
  101. package/detail/pod.vue +1 -68
  102. package/detail/provisioning.cattle.io.cluster.vue +4 -6
  103. package/detail/workload/index.vue +1 -15
  104. package/dialog/ScaleMachineDownDialog.vue +17 -34
  105. package/edit/auth/googleoauth.vue +5 -1
  106. package/edit/catalog.cattle.io.clusterrepo.vue +7 -20
  107. package/edit/cloudcredential.vue +0 -2
  108. package/edit/fleet.cattle.io.gitrepo.vue +4 -3
  109. package/edit/management.cattle.io.project.vue +52 -1
  110. package/edit/management.cattle.io.setting.vue +2 -31
  111. package/edit/monitoring.coreos.com.prometheusrule/AlertingRule.vue +3 -12
  112. package/edit/monitoring.coreos.com.prometheusrule/GroupRules.vue +1 -2
  113. package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.spec.ts +1 -1
  114. package/edit/provisioning.cattle.io.cluster/{tabs/Basics.vue → Basics.vue} +126 -109
  115. package/edit/provisioning.cattle.io.cluster/{tabs/MachinePool.vue → MachinePool.vue} +7 -1
  116. package/edit/provisioning.cattle.io.cluster/{tabs/registries/RegistryConfigs.vue → RegistryConfigs.vue} +3 -1
  117. package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +7 -15
  118. package/edit/provisioning.cattle.io.cluster/__tests__/Basics.tests.ts +237 -0
  119. package/edit/provisioning.cattle.io.cluster/__tests__/{CustomCommand.test.ts → CustomCommand.tests.ts} +0 -6
  120. package/edit/provisioning.cattle.io.cluster/__tests__/DrainOptions.test.ts +1 -1
  121. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +1 -7
  122. package/edit/provisioning.cattle.io.cluster/import.vue +2 -2
  123. package/edit/provisioning.cattle.io.cluster/index.vue +37 -99
  124. package/edit/provisioning.cattle.io.cluster/rke2.vue +690 -181
  125. package/edit/service.vue +0 -12
  126. package/edit/workload/Upgrading.vue +2 -3
  127. package/edit/workload/index.vue +1 -2
  128. package/edit/workload/mixins/workload.js +1 -1
  129. package/initialize/App.js +71 -25
  130. package/initialize/client.js +162 -21
  131. package/initialize/index.js +124 -47
  132. package/initialize/layouts.ts +26 -0
  133. package/{components/templates → layouts}/blank.vue +1 -1
  134. package/{components/templates → layouts}/default.vue +98 -8
  135. package/{components/templates → layouts}/error.vue +19 -10
  136. package/{components/templates → layouts}/home.vue +1 -4
  137. package/{components/templates → layouts}/plain.vue +1 -4
  138. package/{components/templates → layouts}/standalone.vue +1 -1
  139. package/{components/templates → layouts}/unauthenticated.vue +1 -1
  140. package/list/management.cattle.io.feature.vue +7 -1
  141. package/list/management.cattle.io.user.vue +25 -1
  142. package/list/node.vue +0 -1
  143. package/machine-config/__tests__/vmwarevsphere.test.ts +161 -56
  144. package/machine-config/amazonec2.vue +1 -0
  145. package/machine-config/azure.vue +37 -21
  146. package/machine-config/vmwarevsphere.vue +47 -42
  147. package/middleware/authenticated.js +19 -14
  148. package/mixins/auth-config.js +7 -2
  149. package/mixins/brand.js +41 -29
  150. package/mixins/fetch.server.js +73 -0
  151. package/mixins/labeled-form-element.ts +1 -6
  152. package/models/__tests__/management.cattle.io.node.ts +0 -85
  153. package/models/__tests__/namespace.test.ts +9 -49
  154. package/models/cluster/node.js +4 -4
  155. package/models/cluster.x-k8s.io.machine.js +1 -1
  156. package/models/cluster.x-k8s.io.machinedeployment.js +0 -14
  157. package/models/fleet.cattle.io.cluster.js +0 -4
  158. package/models/fleet.cattle.io.gitrepo.js +13 -56
  159. package/models/management.cattle.io.cluster.js +3 -11
  160. package/models/management.cattle.io.kontainerdriver.js +0 -1
  161. package/models/management.cattle.io.node.js +14 -18
  162. package/models/management.cattle.io.nodepool.js +0 -17
  163. package/models/management.cattle.io.project.js +36 -0
  164. package/models/management.cattle.io.setting.js +7 -11
  165. package/models/management.cattle.io.user.js +65 -0
  166. package/models/namespace.js +1 -1
  167. package/models/pod.js +0 -20
  168. package/models/provisioning.cattle.io.cluster.js +8 -55
  169. package/models/secret.js +18 -117
  170. package/models/workload.js +0 -16
  171. package/models/workload.service.js +0 -18
  172. package/package.json +10 -12
  173. package/pages/about.vue +1 -0
  174. package/pages/account/create-key.vue +1 -0
  175. package/pages/account/index.vue +1 -0
  176. package/pages/auth/login.vue +1 -0
  177. package/pages/auth/logout.vue +2 -0
  178. package/pages/auth/setup.vue +4 -37
  179. package/pages/auth/verify.vue +8 -14
  180. package/pages/c/_cluster/apps/charts/__tests__/install.helper.test.ts +17 -2
  181. package/pages/c/_cluster/apps/charts/index.vue +58 -64
  182. package/pages/c/_cluster/apps/charts/install.helpers.js +13 -2
  183. package/pages/c/_cluster/apps/charts/install.vue +5 -5
  184. package/pages/c/_cluster/apps/index.vue +2 -0
  185. package/pages/c/_cluster/auth/index.vue +2 -0
  186. package/pages/c/_cluster/auth/user.retention/index.vue +384 -0
  187. package/pages/c/_cluster/ecm/index.vue +2 -0
  188. package/pages/c/_cluster/explorer/index.vue +53 -56
  189. package/pages/c/_cluster/explorer/tools/index.vue +3 -171
  190. package/pages/c/_cluster/fleet/index.vue +1 -1
  191. package/pages/c/_cluster/index.vue +2 -0
  192. package/pages/c/_cluster/manager/pages/_page.vue +5 -4
  193. package/pages/c/_cluster/monitoring/index.vue +1 -17
  194. package/pages/c/_cluster/settings/DefaultLinksEditor.vue +1 -0
  195. package/pages/c/_cluster/settings/banners.vue +2 -0
  196. package/pages/c/_cluster/settings/brand.vue +2 -0
  197. package/pages/c/_cluster/settings/index.vue +2 -0
  198. package/pages/c/_cluster/settings/links.vue +3 -2
  199. package/pages/c/_cluster/settings/performance.vue +1 -0
  200. package/pages/c/_cluster/uiplugins/AddExtensionRepos.vue +4 -4
  201. package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +1 -2
  202. package/pages/c/_cluster/uiplugins/CatalogList/index.vue +46 -10
  203. package/pages/c/_cluster/uiplugins/SetupUIPlugins.vue +5 -2
  204. package/pages/c/_cluster/uiplugins/__tests__/AddExtensionRepos.test.ts +96 -0
  205. package/pages/c/_cluster/uiplugins/__tests__/SetupUIPlugins.test.ts +128 -0
  206. package/pages/c/_cluster/uiplugins/index.vue +2 -0
  207. package/pages/c/index.vue +9 -0
  208. package/pages/diagnostic.vue +2 -1
  209. package/pages/fail-whale.vue +1 -0
  210. package/pages/prefs.vue +1 -0
  211. package/pages/rio/mesh.vue +508 -0
  212. package/pages/support/index.vue +8 -2
  213. package/pkg/auto-import.js +1 -1
  214. package/plugins/axios.js +36 -0
  215. package/plugins/back-button.js +5 -3
  216. package/plugins/clean-html-directive.js +19 -1
  217. package/plugins/clean-tooltip-directive.js +1 -1
  218. package/plugins/codemirror-loader.js +1 -1
  219. package/plugins/codemirror.js +0 -41
  220. package/plugins/dashboard-store/__tests__/actions.spec.ts +250 -0
  221. package/plugins/dashboard-store/__tests__/{mutations.test.ts → mutations.spec.ts} +1 -1
  222. package/plugins/dashboard-store/actions.js +21 -22
  223. package/plugins/dashboard-store/classify.js +18 -1
  224. package/plugins/dashboard-store/getters.js +5 -10
  225. package/plugins/dashboard-store/index.js +12 -0
  226. package/plugins/dashboard-store/mutations.js +4 -0
  227. package/plugins/dashboard-store/resource-class.js +18 -59
  228. package/plugins/i18n.js +1 -1
  229. package/plugins/steve/__tests__/getters.spec.ts +56 -24
  230. package/plugins/steve/__tests__/subscribe.spec.ts +106 -0
  231. package/plugins/steve/getters.js +30 -7
  232. package/plugins/steve/mutations.js +5 -2
  233. package/plugins/steve/norman-class.js +0 -19
  234. package/plugins/steve/steve-class.js +0 -22
  235. package/plugins/steve/subscribe.js +34 -13
  236. package/plugins/transitions.js +4 -0
  237. package/plugins/vue-clipboard2.js +4 -0
  238. package/rancher-components/Accordion/Accordion.vue +3 -2
  239. package/rancher-components/BadgeState/BadgeState.vue +3 -3
  240. package/rancher-components/Banner/Banner.test.ts +1 -5
  241. package/rancher-components/Banner/Banner.vue +2 -2
  242. package/rancher-components/Card/Card.vue +4 -4
  243. package/rancher-components/Form/Checkbox/Checkbox.vue +4 -3
  244. package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +1 -1
  245. package/rancher-components/Form/LabeledInput/LabeledInput.vue +55 -24
  246. package/rancher-components/Form/Radio/RadioButton.test.ts +1 -3
  247. package/rancher-components/Form/Radio/RadioButton.vue +13 -7
  248. package/rancher-components/Form/Radio/RadioGroup.vue +4 -3
  249. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +7 -5
  250. package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +7 -4
  251. package/rancher-components/LabeledTooltip/LabeledTooltip.vue +9 -4
  252. package/rancher-components/StringList/StringList.vue +8 -8
  253. package/rancher-components/components/Accordion/Accordion.vue +3 -2
  254. package/rancher-components/components/BadgeState/BadgeState.test.ts +12 -0
  255. package/rancher-components/components/Form/LabeledInput/LabeledInput.test.ts +2 -19
  256. package/rancher-components/components/Form/LabeledInput/LabeledInput.vue +14 -11
  257. package/rancher-components/components/Form/TextArea/TextAreaAutoGrow.vue +1 -1
  258. package/rancher-components/components/StringList/StringList.test.ts +0 -270
  259. package/rancher-components/components/StringList/StringList.vue +18 -57
  260. package/scripts/extension/bundle +7 -19
  261. package/scripts/extension/helm/scripts/package +3 -11
  262. package/scripts/extension/parse-tag-name +4 -4
  263. package/scripts/extension/publish +9 -20
  264. package/scripts/publish-shell.sh +1 -11
  265. package/scripts/test-plugins-build.sh +9 -85
  266. package/store/catalog.js +1 -1
  267. package/store/features.js +0 -1
  268. package/store/i18n.js +0 -11
  269. package/store/index.js +11 -8
  270. package/store/prefs.js +38 -33
  271. package/store/type-map.js +8 -13
  272. package/tsconfig.default.json +46 -0
  273. package/tsconfig.json +9 -35
  274. package/types/shell/index.d.ts +404 -463
  275. package/utils/__tests__/create-yaml.test.ts +10 -0
  276. package/utils/axios.js +19 -0
  277. package/utils/create-yaml.js +6 -6
  278. package/utils/custom-validators.js +2 -0
  279. package/utils/error.js +1 -16
  280. package/utils/monitoring.js +2 -37
  281. package/utils/nuxt.js +39 -18
  282. package/utils/object.js +0 -14
  283. package/utils/router.scrollBehavior.js +14 -12
  284. package/utils/socket.js +1 -0
  285. package/utils/time.js +1 -1
  286. package/utils/title.ts +3 -0
  287. package/utils/url.ts +1 -1
  288. package/utils/validators/formRules/__tests__/index.test.ts +4 -49
  289. package/utils/validators/formRules/index.ts +9 -12
  290. package/utils/validators/setting.js +10 -6
  291. package/vue.config.js +3 -24
  292. package/chart/monitoring/steps/uninstall-v1.vue +0 -135
  293. package/components/Certificates.vue +0 -164
  294. package/components/fleet/__tests__/FleetSummary.test.ts +0 -316
  295. package/components/formatter/FleetClusterSummaryGraph.vue +0 -27
  296. package/components/formatter/__tests__/Checked.test.ts +0 -19
  297. package/components/nav/WindowManager/__tests__/ContainerLogs.test.ts +0 -186
  298. package/composables/useCompactInput.ts +0 -20
  299. package/composables/useLabeledFormElement.ts +0 -138
  300. package/creators/app/files/.gitlab-ci.yml +0 -14
  301. package/edit/__tests__/service.test.ts +0 -89
  302. package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +0 -112
  303. package/edit/provisioning.cattle.io.cluster/__tests__/Basics.test.ts +0 -473
  304. package/edit/provisioning.cattle.io.cluster/__tests__/index.test.ts +0 -73
  305. package/edit/provisioning.cattle.io.cluster/__tests__/utils/cluster.ts +0 -386
  306. package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +0 -137
  307. package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +0 -157
  308. package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +0 -135
  309. package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +0 -189
  310. package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +0 -144
  311. package/edit/provisioning.cattle.io.cluster/tabs/upgrade/index.vue +0 -76
  312. package/mixins/v1-workload-metrics.js +0 -43
  313. package/models/__tests__/management.cattle.io.cluster.test.ts +0 -23
  314. package/models/__tests__/management.cattle.io.nodepool.ts +0 -83
  315. package/models/__tests__/provisioning.cattle.io.cluster.test.ts +0 -90
  316. package/models/__tests__/workload.test.ts +0 -91
  317. package/plugins/clean-html.js +0 -53
  318. package/plugins/dashboard-store/__tests__/actions.test.ts +0 -165
  319. package/plugins/dashboard-store/__tests__/resource-class.test.ts +0 -49
  320. package/plugins/dashboard-store/__tests__/utils/store-mocks.ts +0 -7
  321. package/plugins/index.js +0 -11
  322. package/plugins/steve/__tests__/steve-class.spec.ts +0 -59
  323. package/plugins/steve/__tests__/utils/steve-mocks.ts +0 -31
  324. package/scripts/.gitlab/workflows/build-extension-catalog.gitlab-ci.yml +0 -50
  325. package/server/har-file.js +0 -183
  326. package/tsconfig.paths.json +0 -18
  327. package/utils/azure.js +0 -24
  328. package/utils/clipboard.js +0 -5
  329. /package/components/form/__tests__/{NameNsDescription.test.ts → NameNsDescription.ts} +0 -0
  330. /package/edit/networking.k8s.io.networkpolicy/__tests__/utils/{selectors.test.ts → selectors.ts} +0 -0
  331. /package/edit/provisioning.cattle.io.cluster/{tabs/networking/ACE.vue → ACE.vue} +0 -0
  332. /package/edit/provisioning.cattle.io.cluster/{tabs/AgentConfiguration.vue → AgentConfiguration.vue} +0 -0
  333. /package/edit/provisioning.cattle.io.cluster/{tabs/upgrade/DrainOptions.vue → DrainOptions.vue} +0 -0
  334. /package/edit/provisioning.cattle.io.cluster/{tabs/MemberRoles.vue → MemberRoles.vue} +0 -0
  335. /package/edit/provisioning.cattle.io.cluster/{tabs/registries/RegistryMirrors.vue → RegistryMirrors.vue} +0 -0
  336. /package/edit/provisioning.cattle.io.cluster/{tabs/etcd/S3Config.vue → S3Config.vue} +0 -0
  337. /package/plugins/dashboard-store/__tests__/{getters.test.ts → getters.spec.ts} +0 -0
  338. /package/rancher-components/BadgeState/{BadgeState.spec.ts → BadgeState.test.ts} +0 -0
@@ -2,15 +2,30 @@ import { ignoreVariables } from '@shell/pages/c/_cluster/apps/charts/install.hel
2
2
 
3
3
  describe('fX: ignoreVariables', () => {
4
4
  describe.each([['epinio', 'global.rbac.pspEnabled']])('given chart %p with path %p', (name, path) => {
5
+ it.each([
6
+ ['v1.24.11+rke2r1'],
7
+ ])('should not return variable path list if cluster has k8s version %p', (version) => {
8
+ const cluster = { kubernetesVersion: version };
9
+ const data = {
10
+ chart: { name },
11
+ values: { global: { rbac: { pspEnabled: undefined } } }
12
+ };
13
+
14
+ const paths = ignoreVariables(cluster, data);
15
+
16
+ expect(paths).toStrictEqual([]);
17
+ });
18
+
5
19
  it.each([
6
20
  ['v1.25.11+rke2r1'],
7
- ])('should return questions', () => {
21
+ ])('should return questions if cluster has k8s version %p', (version) => {
22
+ const cluster = { kubernetesVersion: version };
8
23
  const data = {
9
24
  chart: { name },
10
25
  values: { global: { rbac: { pspEnabled: undefined } } }
11
26
  };
12
27
 
13
- const paths = ignoreVariables(data);
28
+ const paths = ignoreVariables(cluster, data);
14
29
 
15
30
  expect(paths).toStrictEqual([path]);
16
31
  });
@@ -54,6 +54,7 @@ export default {
54
54
  searchQuery: null,
55
55
  showDeprecated: null,
56
56
  showHidden: null,
57
+ isPspLegacy: false,
57
58
  chartOptions: [
58
59
  {
59
60
  label: 'Browse',
@@ -138,11 +139,6 @@ export default {
138
139
  return reducedRepos;
139
140
  },
140
141
 
141
- /**
142
- * Filter allll charts by invalid entries (deprecated, hidden and ui plugin).
143
- *
144
- * This does not include any user provided filters (like selected repos, categories and text query)
145
- */
146
142
  enabledCharts() {
147
143
  return (this.allCharts || []).filter((c) => {
148
144
  if ( c.deprecated && !this.showDeprecated ) {
@@ -153,6 +149,10 @@ export default {
153
149
  return false;
154
150
  }
155
151
 
152
+ if ( this.hideRepos.includes(c.repoKey) ) {
153
+ return false;
154
+ }
155
+
156
156
  if (isUIPlugin(c)) {
157
157
  return false;
158
158
  }
@@ -161,28 +161,26 @@ export default {
161
161
  });
162
162
  },
163
163
 
164
- /**
165
- * Filter enabled charts allll filters. These are what the user will see in the list
166
- */
167
164
  filteredCharts() {
168
- return this.filterCharts({
169
- category: this.category,
170
- searchQuery: this.searchQuery,
171
- hideRepos: this.hideRepos
165
+ const enabledCharts = (this.enabledCharts || []);
166
+ const clusterProvider = this.currentCluster.status.provider || 'other';
167
+
168
+ return filterAndArrangeCharts(enabledCharts, {
169
+ clusterProvider,
170
+ category: this.category,
171
+ searchQuery: this.searchQuery,
172
+ showDeprecated: this.showDeprecated,
173
+ showHidden: this.showHidden,
174
+ hideRepos: this.hideRepos,
175
+ hideTypes: [CATALOG._CLUSTER_TPL],
176
+ showPrerelease: this.$store.getters['prefs/get'](SHOW_PRE_RELEASE),
172
177
  });
173
178
  },
174
179
 
175
- /**
176
- * Filter valid charts (alll filters minus user provided ones) by whether they are featured or not
177
- *
178
- * This will power the carousel
179
- */
180
- featuredCharts() {
181
- const filteredCharts = this.filterCharts({});
180
+ getFeaturedCharts() {
181
+ const allCharts = (this.filteredCharts || []);
182
182
 
183
- // debugger;
184
-
185
- const featuredCharts = filteredCharts.filter((value) => value.featured).sort((a, b) => a.featured - b.featured);
183
+ const featuredCharts = allCharts.filter((value) => value.featured).sort((a, b) => a.featured - b.featured);
186
184
 
187
185
  return featuredCharts.slice(0, 5);
188
186
  },
@@ -190,13 +188,7 @@ export default {
190
188
  categories() {
191
189
  const map = {};
192
190
 
193
- // Filter charts by everything except itself
194
- const charts = this.filterCharts({
195
- searchQuery: this.searchQuery,
196
- hideRepos: this.hideRepos
197
- });
198
-
199
- for ( const chart of charts ) {
191
+ for ( const chart of this.enabledCharts ) {
200
192
  for ( const c of chart.categories ) {
201
193
  if ( !map[c] ) {
202
194
  const labelKey = `catalog.charts.categories.${ lcFirst(c) }`;
@@ -217,14 +209,14 @@ export default {
217
209
  out.unshift({
218
210
  label: this.t('catalog.charts.categories.all'),
219
211
  value: '',
220
- count: charts.length
212
+ count: this.enabledCharts.length
221
213
  });
222
214
 
223
- return sortBy(out, ['label']);
215
+ return out;
224
216
  },
225
217
 
226
218
  showCarousel() {
227
- return this.chartMode === 'featured' && this.featuredCharts.length;
219
+ return this.chartMode === 'featured' && this.getFeaturedCharts.length;
228
220
  }
229
221
 
230
222
  },
@@ -249,6 +241,14 @@ export default {
249
241
  }
250
242
  },
251
243
 
244
+ created() {
245
+ const release = this.currentCluster?.status?.version?.gitVersion || '';
246
+ const isRKE2 = release.includes('rke2');
247
+ const version = release.match(/\d+/g);
248
+
249
+ this.isPspLegacy = version?.length ? isRKE2 && (+version[0] === 1 && +version[1] < 25) : false;
250
+ },
251
+
252
252
  methods: {
253
253
  colorForChart(chart) {
254
254
  const repos = this.repoOptions;
@@ -343,22 +343,6 @@ export default {
343
343
  btnCb(false);
344
344
  }
345
345
  },
346
-
347
- filterCharts({ category, searchQuery, hideRepos }) {
348
- const enabledCharts = (this.enabledCharts || []);
349
- const clusterProvider = this.currentCluster.status.provider || 'other';
350
-
351
- return filterAndArrangeCharts(enabledCharts, {
352
- clusterProvider,
353
- category,
354
- searchQuery,
355
- showDeprecated: this.showDeprecated,
356
- showHidden: this.showHidden,
357
- hideRepos,
358
- hideTypes: [CATALOG._CLUSTER_TPL],
359
- showPrerelease: this.$store.getters['prefs/get'](SHOW_PRE_RELEASE),
360
- });
361
- }
362
346
  },
363
347
  };
364
348
  </script>
@@ -376,7 +360,7 @@ export default {
376
360
  </h1>
377
361
  </div>
378
362
  <div
379
- v-if="featuredCharts.length > 0"
363
+ v-if="getFeaturedCharts.length > 0"
380
364
  class="actions-container"
381
365
  >
382
366
  <ButtonGroup
@@ -388,11 +372,17 @@ export default {
388
372
  <div v-if="showCarousel">
389
373
  <h3>{{ t('catalog.charts.featuredCharts') }}</h3>
390
374
  <Carousel
391
- :sliders="featuredCharts"
375
+ :sliders="getFeaturedCharts"
392
376
  @clicked="(row) => selectChart(row)"
393
377
  />
394
378
  </div>
395
379
 
380
+ <Banner
381
+ v-if="isPspLegacy"
382
+ color="warning"
383
+ :label="t('catalog.chart.banner.legacy')"
384
+ />
385
+
396
386
  <TypeDescription resource="chart" />
397
387
  <div class="left-right-split">
398
388
  <Select
@@ -539,21 +529,22 @@ export default {
539
529
  }
540
530
  }
541
531
  }
542
- }
532
+ }
543
533
 
544
534
  .checkbox-select {
545
- .vs__search {
535
+ .vs__search {
546
536
  position: absolute;
547
537
  right: 0
548
538
  }
549
539
 
550
- .vs__selected-options {
540
+ .vs__selected-options {
551
541
  overflow: hidden;
552
542
  white-space: nowrap;
553
543
  text-overflow: ellipsis;
554
544
  display: inline-block;
555
545
  line-height: 2.4rem;
556
546
  }
547
+
557
548
  }
558
549
 
559
550
  .checkbox-outer-container.in-select {
@@ -561,7 +552,7 @@ export default {
561
552
  padding: 7px 0 6px 13px;
562
553
  width: calc(100% + 10px);
563
554
 
564
- ::v-deep .checkbox-label {
555
+ ::v-deep.checkbox-label {
565
556
  display: flex;
566
557
  align-items: center;
567
558
 
@@ -576,7 +567,7 @@ export default {
576
567
  }
577
568
  }
578
569
 
579
- &:hover ::v-deep .checkbox-label {
570
+ &:hover ::v-deep.checkbox-label {
580
571
  color: var(--body-text);
581
572
  }
582
573
 
@@ -584,7 +575,7 @@ export default {
584
575
  &:hover {
585
576
  background: var(--app-rancher-accent);
586
577
  }
587
- &:hover ::v-deep .checkbox-label {
578
+ &:hover ::v-deep.checkbox-label {
588
579
  color: var(--app-rancher-accent-text);
589
580
  }
590
581
  & i {
@@ -596,7 +587,7 @@ export default {
596
587
  &:hover {
597
588
  background: var(--app-partner-accent);
598
589
  }
599
- &:hover ::v-deep .checkbox-label {
590
+ &:hover ::v-deep.checkbox-label {
600
591
  color: var(--app-partner-accent-text);
601
592
  }
602
593
  & i {
@@ -608,7 +599,7 @@ export default {
608
599
  &:hover {
609
600
  background: var(--app-color1-accent);
610
601
  }
611
- &:hover ::v-deep .checkbox-label {
602
+ &:hover ::v-deep.checkbox-label {
612
603
  color: var(--app-color1-accent-text);
613
604
  }
614
605
  & i {
@@ -619,10 +610,10 @@ export default {
619
610
  &:hover {
620
611
  background: var(--app-color2-accent);
621
612
  }
622
- &:hover ::v-deep .checkbox-label {
613
+ &:hover ::v-deep.checkbox-label {
623
614
  color: var(--app-color2-accent-text);
624
615
  }
625
- & i {
616
+ & i {
626
617
  color: var(--app-color2-accent)
627
618
  }
628
619
  }
@@ -630,7 +621,7 @@ export default {
630
621
  &:hover {
631
622
  background: var(--app-color3-accent);
632
623
  }
633
- &:hover ::v-deep .checkbox-label {
624
+ &:hover ::v-deep.checkbox-label {
634
625
  color: var(--app-color3-accent-text);
635
626
  }
636
627
  & i {
@@ -652,7 +643,7 @@ export default {
652
643
  &:hover {
653
644
  background: var(--app-color5-accent);
654
645
  }
655
- &:hover ::v-deep .checkbox-label {
646
+ &:hover ::v-deep.checkbox-label {
656
647
  color: var(--app-color5-accent-text);
657
648
  }
658
649
  & i {
@@ -663,7 +654,7 @@ export default {
663
654
  &:hover {
664
655
  background: var(--app-color6-accent);
665
656
  }
666
- &:hover ::v-deep .checkbox-label {
657
+ &:hover ::v-deep.checkbox-label {
667
658
  color: var(--app-color6-accent-text);
668
659
  }
669
660
  & i {
@@ -674,7 +665,7 @@ export default {
674
665
  &:hover {
675
666
  background: var(--app-color7-accent);
676
667
  }
677
- &:hover ::v-deep .checkbox-label {
668
+ &:hover ::v-deep.checkbox-label {
678
669
  color: var(--app-color7-accent-text);
679
670
  }
680
671
  & i {
@@ -685,6 +676,9 @@ export default {
685
676
  &:hover {
686
677
  background: var(--app-color8-accent);
687
678
  }
679
+ &:hover ::v-deep.checkbox-label {
680
+ color: var(--app-color8-accent-text);
681
+ }
688
682
  & i {
689
683
  color: var(--app-color8-accent)
690
684
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Return list of variables to filter chart questions
3
3
  */
4
- export const ignoreVariables = (data) => {
4
+ export const ignoreVariables = (cluster, data) => {
5
5
  const pspChartMap = {
6
6
  epinio: 'global.rbac.pspEnabled',
7
7
  longhorn: 'enablePSP',
@@ -11,5 +11,16 @@ export const ignoreVariables = (data) => {
11
11
  };
12
12
  const path = pspChartMap[data.chart.name];
13
13
 
14
- return [path];
14
+ if (path) {
15
+ const clusterVersion = cluster?.kubernetesVersion || '';
16
+ const version = clusterVersion.match(/\d+/g);
17
+ const isRequiredVersion = version?.length ? +version[0] === 1 && +version[1] < 25 : false;
18
+
19
+ // Provide path as question variable to be ignored
20
+ if (!isRequiredVersion) {
21
+ return [path];
22
+ }
23
+ }
24
+
25
+ return [];
15
26
  };
@@ -248,7 +248,7 @@ export default {
248
248
  return;
249
249
  }
250
250
 
251
- if ( this.version ) {
251
+ if ( this.version && process.client ) {
252
252
  /*
253
253
  Check if the Helm chart has provided the name
254
254
  of a Vue component to use for configuring
@@ -473,7 +473,7 @@ export default {
473
473
  * Return list of variables to filter chart questions
474
474
  */
475
475
  ignoreVariables() {
476
- return ignoreVariables(this.versionInfo);
476
+ return ignoreVariables(this.currentCluster, this.versionInfo);
477
477
  },
478
478
 
479
479
  namespaceIsNew() {
@@ -857,9 +857,11 @@ export default {
857
857
  }
858
858
 
859
859
  if (provCluster?.isRke2) { // isRke2 returns true for both RKE2 and K3s clusters.
860
+ const agentConfig = provCluster.spec?.rkeConfig?.machineSelectorConfig?.find((x) => !x.machineLabelSelector).config;
861
+
860
862
  // If a cluster scoped registry exists,
861
863
  // it should be used by default.
862
- const clusterRegistry = provCluster.agentConfig?.['system-default-registry'] || '';
864
+ const clusterRegistry = agentConfig?.['system-default-registry'] || '';
863
865
 
864
866
  if (clusterRegistry) {
865
867
  return clusterRegistry;
@@ -1601,7 +1603,6 @@ export default {
1601
1603
  v-if="componentHasTabs"
1602
1604
  ref="tabs"
1603
1605
  :side-tabs="true"
1604
- :hide-single-tab="true"
1605
1606
  :class="{'with-name': showNameEditor}"
1606
1607
  class="step__values__content"
1607
1608
  @changed="tabChanged($event)"
@@ -1646,7 +1647,6 @@ export default {
1646
1647
  v-else-if="hasQuestions && showQuestions"
1647
1648
  ref="tabs"
1648
1649
  :side-tabs="true"
1649
- :hide-single-tab="true"
1650
1650
  :class="{'with-name': showNameEditor}"
1651
1651
  class="step__values__content"
1652
1652
  @changed="tabChanged($event)"
@@ -2,6 +2,8 @@
2
2
  import { NAME as APPS } from '@shell/config/product/apps';
3
3
 
4
4
  export default {
5
+ layout: 'plain',
6
+
5
7
  middleware({ redirect, route } ) {
6
8
  return redirect({
7
9
  name: 'c-cluster-apps-charts',
@@ -3,6 +3,8 @@ import { NAME as AUTH } from '@shell/config/product/auth';
3
3
  import { MANAGEMENT } from '@shell/config/types';
4
4
 
5
5
  export default {
6
+ layout: 'plain',
7
+
6
8
  middleware({ redirect, route } ) {
7
9
  return redirect({
8
10
  name: 'c-cluster-product-resource',