@rancher/shell 0.3.0 → 0.3.2

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 (342) hide show
  1. package/assets/styles/global/_button.scss +5 -1
  2. package/assets/styles/global/_columns.scss +4 -0
  3. package/assets/styles/global/_gauges.scss +1 -1
  4. package/assets/styles/global/_layout.scss +5 -2
  5. package/assets/styles/global/_select.scss +1 -4
  6. package/assets/styles/themes/_dark.scss +5 -4
  7. package/assets/styles/themes/_light.scss +4 -3
  8. package/assets/styles/themes/_suse.scss +1 -1
  9. package/assets/styles/vendor/vue-select.scss +4 -3
  10. package/assets/translations/en-us.yaml +673 -73
  11. package/assets/translations/zh-hans.yaml +720 -207
  12. package/chart/monitoring/steps/uninstall-v1.vue +2 -2
  13. package/cloud-credential/azure.vue +23 -0
  14. package/cloud-credential/harvester.vue +25 -62
  15. package/cloud-credential/pnap.vue +80 -0
  16. package/components/.DS_Store +0 -0
  17. package/components/ActionMenu.vue +28 -7
  18. package/components/AdvancedSection.vue +9 -2
  19. package/components/Alert.vue +2 -2
  20. package/components/ButtonDropdown.vue +0 -2
  21. package/components/ButtonGroup.vue +1 -0
  22. package/components/CollapsibleCard.vue +0 -1
  23. package/components/CruResource.vue +41 -4
  24. package/components/DetailTop.vue +72 -4
  25. package/components/DisableAuthProviderModal.vue +106 -0
  26. package/{rancher-components/components/Utils/DraggableZone → components}/DraggableZone.vue +0 -0
  27. package/components/ExplorerMembers.vue +253 -30
  28. package/components/ExplorerProjectsNamespaces.vue +77 -33
  29. package/components/ExtensionPanel.vue +42 -0
  30. package/components/GrowlManager.vue +3 -3
  31. package/components/IconOrSvg.vue +178 -0
  32. package/components/LogItem.vue +69 -0
  33. package/components/PodSecurityAdmission.vue +302 -0
  34. package/components/PromptModal.vue +1 -0
  35. package/components/ResourceDetail/Masthead.vue +69 -4
  36. package/components/ResourceDetail/index.vue +12 -5
  37. package/components/ResourceList/Masthead.vue +11 -1
  38. package/components/ResourceList/ResourceLoadingIndicator.vue +12 -2
  39. package/components/ResourceList/index.vue +66 -12
  40. package/components/ResourceList/resource-list.config.js +7 -0
  41. package/components/ResourceTable.vue +33 -6
  42. package/components/SimpleBox.vue +1 -1
  43. package/components/SortableTable/THead.vue +21 -14
  44. package/components/SortableTable/filtering.js +1 -1
  45. package/components/SortableTable/index.vue +21 -10
  46. package/components/SortableTable/selection.js +15 -3
  47. package/components/Tabbed/Tab.vue +1 -1
  48. package/components/Tabbed/index.vue +20 -15
  49. package/components/__tests__/.DS_Store +0 -0
  50. package/components/__tests__/AsyncButton.test.ts +140 -0
  51. package/components/__tests__/BackLink.test.ts +33 -0
  52. package/components/__tests__/ButtonGroup.test.ts +124 -0
  53. package/components/__tests__/ClusterBadge.test.ts +32 -0
  54. package/components/__tests__/CollapsibleCard.test.ts +64 -0
  55. package/components/__tests__/ConsumptionGauge.test.ts +88 -0
  56. package/components/__tests__/CruResource.test.ts +3 -2
  57. package/components/__tests__/FixedBanner.test.ts +129 -0
  58. package/components/__tests__/GrowlManager.test.ts +147 -0
  59. package/components/__tests__/NamespaceFilter.test.ts +33 -25
  60. package/components/__tests__/PercentageBar.test.ts +32 -0
  61. package/components/__tests__/PodSecurityAdmission.test.ts +398 -0
  62. package/components/auth/AuthBanner.vue +20 -10
  63. package/components/auth/RoleDetailEdit.vue +26 -17
  64. package/components/auth/SelectPrincipal.vue +36 -5
  65. package/components/form/ArrayList.vue +3 -35
  66. package/components/form/ArrayListGrouped.vue +13 -4
  67. package/components/form/ArrayListSelect.vue +5 -5
  68. package/components/form/Error.vue +8 -0
  69. package/components/form/KeyValue.vue +39 -7
  70. package/components/form/LabeledSelect.vue +5 -2
  71. package/components/form/Labels.vue +46 -16
  72. package/components/form/Members/ClusterPermissionsEditor.vue +17 -17
  73. package/components/form/Members/MembershipEditor.vue +12 -12
  74. package/components/form/NameNsDescription.vue +1 -1
  75. package/components/form/NodeScheduling.vue +1 -1
  76. package/components/form/Probe.vue +3 -3
  77. package/components/form/ResourceQuota/Project.vue +6 -6
  78. package/components/form/ResourceTabs/index.vue +24 -6
  79. package/components/form/Security.vue +7 -6
  80. package/components/form/Select.vue +3 -2
  81. package/components/form/SelectOrCreateAuthSecret.vue +22 -29
  82. package/components/form/ServicePorts.vue +8 -0
  83. package/components/form/WorkloadPorts.vue +7 -1
  84. package/components/form/__tests__/ArrayList.test.ts +74 -0
  85. package/components/form/__tests__/ArrayListGrouped.test.ts +6 -4
  86. package/components/formatter/Checked.vue +1 -1
  87. package/components/formatter/ClusterLink.vue +5 -0
  88. package/components/formatter/IconIsDefault.vue +2 -2
  89. package/components/formatter/InternalExternalIP.vue +11 -8
  90. package/components/formatter/LiveDuration.vue +78 -0
  91. package/components/formatter/WorkloadHealthScale.vue +5 -3
  92. package/components/nav/Header.vue +74 -7
  93. package/components/nav/NamespaceFilter.vue +146 -63
  94. package/components/nav/TopLevelMenu.vue +22 -19
  95. package/components/nav/WindowManager/ContainerLogs.vue +83 -126
  96. package/components/nav/WindowManager/ContainerShell.vue +9 -7
  97. package/components/nav/WindowManager/Window.vue +2 -0
  98. package/components/nav/WindowManager/index.vue +10 -0
  99. package/config/elemental-types.js +9 -0
  100. package/config/features.js +2 -0
  101. package/config/home-links.js +4 -1
  102. package/config/pod-security-admission.ts +82 -0
  103. package/config/product/apps.js +1 -1
  104. package/config/product/auth.js +6 -5
  105. package/config/product/backup.js +1 -1
  106. package/config/product/explorer.js +6 -6
  107. package/config/product/fleet.js +1 -1
  108. package/config/product/manager.js +6 -2
  109. package/config/query-params.js +1 -0
  110. package/config/secret.js +0 -1
  111. package/config/settings.ts +26 -9
  112. package/config/table-headers.js +22 -11
  113. package/config/types.js +4 -1
  114. package/config/uiplugins.js +3 -3
  115. package/content/docs/zh-hans/getting-started.md +113 -137
  116. package/content/docs/zh-hans/whats-new.md +8 -46
  117. package/core/plugin-helpers.js +171 -0
  118. package/core/plugin.ts +61 -1
  119. package/core/plugins.js +33 -0
  120. package/core/types.ts +128 -2
  121. package/creators/pkg/package-lock.json +37 -0
  122. package/creators/pkg/package.json +1 -1
  123. package/detail/catalog.cattle.io.app.vue +1 -1
  124. package/detail/pod.vue +1 -1
  125. package/detail/provisioning.cattle.io.cluster.vue +35 -9
  126. package/detail/service.vue +2 -9
  127. package/detail/workload/index.vue +0 -1
  128. package/dialog/AddClusterMemberDialog.vue +22 -28
  129. package/dialog/AddProjectMemberDialog.vue +53 -9
  130. package/dialog/DiagnosticTimingsDialog.vue +8 -7
  131. package/dialog/DrainNode.vue +44 -48
  132. package/dialog/ForceMachineRemoveDialog.vue +5 -7
  133. package/dialog/GenericPrompt.vue +15 -20
  134. package/dialog/RollbackWorkloadDialog.vue +15 -46
  135. package/dialog/RotateCertificatesDialog.vue +5 -7
  136. package/dialog/RotateEncryptionKeyDialog.vue +5 -9
  137. package/dialog/SaveAsRKETemplateDialog.vue +5 -13
  138. package/dialog/ScaleMachineDownDialog.vue +1 -1
  139. package/dialog/ScalePoolDownDialog.vue +121 -0
  140. package/edit/__tests__/management.cattle.io.setting.test.ts +3 -3
  141. package/edit/auth/azuread.vue +16 -16
  142. package/edit/auth/github.vue +8 -0
  143. package/edit/auth/googleoauth.vue +10 -1
  144. package/edit/auth/ldap/index.vue +10 -0
  145. package/edit/auth/oidc.vue +10 -0
  146. package/edit/auth/saml.vue +10 -0
  147. package/edit/autoscaling.horizontalpodautoscaler/index.vue +1 -1
  148. package/edit/catalog.cattle.io.clusterrepo.vue +3 -0
  149. package/edit/cloudcredential.vue +3 -7
  150. package/edit/logging-flow/Match.vue +39 -8
  151. package/edit/logging-flow/index.vue +27 -4
  152. package/edit/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +107 -0
  153. package/edit/management.cattle.io.project.vue +8 -1
  154. package/edit/management.cattle.io.setting.vue +5 -2
  155. package/edit/management.cattle.io.user.vue +7 -1
  156. package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +36 -8
  157. package/edit/monitoring.coreos.com.alertmanagerconfig/types/email.vue +2 -2
  158. package/edit/monitoring.coreos.com.prometheusrule/GroupRules.vue +14 -6
  159. package/edit/namespace.vue +18 -4
  160. package/edit/networking.k8s.io.ingress/Certificate.vue +1 -0
  161. package/edit/networking.k8s.io.ingress/IngressClass.vue +8 -6
  162. package/edit/networking.k8s.io.ingress/RulePath.vue +12 -6
  163. package/edit/networking.k8s.io.ingress/index.vue +8 -6
  164. package/edit/persistentvolume/index.vue +30 -27
  165. package/edit/persistentvolume/plugins/cephfs.vue +29 -29
  166. package/edit/persistentvolume/plugins/csi.vue +102 -62
  167. package/edit/persistentvolume/plugins/fc.vue +19 -19
  168. package/edit/persistentvolume/plugins/iscsi.vue +45 -45
  169. package/edit/persistentvolume/plugins/rbd.vue +39 -39
  170. package/edit/persistentvolumeclaim.vue +78 -75
  171. package/edit/provisioning.cattle.io.cluster/MachinePool.vue +11 -7
  172. package/edit/provisioning.cattle.io.cluster/RegistryConfigs.vue +10 -1
  173. package/edit/provisioning.cattle.io.cluster/RegistryMirrors.vue +87 -27
  174. package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +3 -6
  175. package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +96 -0
  176. package/edit/provisioning.cattle.io.cluster/import.vue +1 -1
  177. package/edit/provisioning.cattle.io.cluster/index.vue +29 -6
  178. package/edit/provisioning.cattle.io.cluster/rke2.vue +445 -154
  179. package/edit/secret/index.vue +3 -7
  180. package/edit/service.vue +3 -1
  181. package/edit/storage.k8s.io.storageclass/index.vue +100 -16
  182. package/edit/storage.k8s.io.storageclass/provisioners/driver.harvesterhci.io.vue +114 -0
  183. package/edit/workload/__tests__/index.test.ts +98 -0
  184. package/edit/workload/index.vue +58 -8
  185. package/edit/workload/mixins/workload.js +107 -70
  186. package/edit/workload/storage/ContainerMountPaths.vue +0 -10
  187. package/edit/workload/storage/emptyDir.vue +88 -0
  188. package/edit/workload/storage/ephemeralVolume/index.vue +1 -1
  189. package/edit/workload/storage/index.vue +8 -0
  190. package/edit/workload/storage/persistentVolumeClaim/index.vue +1 -1
  191. package/layouts/default.vue +57 -44
  192. package/list/__tests__/workload.test.ts +5 -2
  193. package/list/catalog.cattle.io.app.vue +1 -0
  194. package/list/cis.cattle.io.clusterscan.vue +1 -0
  195. package/list/fleet.cattle.io.bundle.vue +5 -6
  196. package/list/fleet.cattle.io.cluster.vue +6 -3
  197. package/list/fleet.cattle.io.clusterregistrationtoken.vue +5 -6
  198. package/list/fleet.cattle.io.gitrepo.vue +4 -9
  199. package/list/helm.cattle.io.projecthelmchart.vue +1 -5
  200. package/list/logging.banzaicloud.io.clusterflow.vue +4 -1
  201. package/list/logging.banzaicloud.io.flow.vue +6 -5
  202. package/list/management.cattle.io.cluster.vue +1 -0
  203. package/list/management.cattle.io.feature.vue +3 -4
  204. package/list/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +47 -0
  205. package/list/management.cattle.io.setting.vue +2 -2
  206. package/list/management.cattle.io.user.vue +4 -10
  207. package/list/monitoring.coreos.com.alertmanagerconfig.vue +2 -7
  208. package/list/node.vue +8 -5
  209. package/list/persistentvolume.vue +3 -3
  210. package/list/persistentvolumeclaim.vue +3 -4
  211. package/list/provisioning.cattle.io.cluster.vue +18 -19
  212. package/list/service.vue +6 -14
  213. package/list/workload.vue +43 -38
  214. package/machine-config/azure.vue +429 -60
  215. package/machine-config/pnap.vue +288 -0
  216. package/mixins/auth-config.js +1 -3
  217. package/mixins/browser-tab-visibility.js +8 -14
  218. package/mixins/chart.js +1 -1
  219. package/mixins/create-edit-view/impl.js +4 -0
  220. package/mixins/create-edit-view/index.js +4 -2
  221. package/mixins/resource-fetch-namespaced.js +98 -0
  222. package/mixins/resource-fetch.js +79 -45
  223. package/mixins/resource-manager.js +1 -23
  224. package/models/apps.controllerrevision.js +7 -0
  225. package/models/apps.daemonset.js +18 -0
  226. package/models/apps.deployment.js +44 -0
  227. package/models/apps.replicaset.js +7 -0
  228. package/models/apps.statefulset.js +18 -0
  229. package/models/batch.job.js +7 -14
  230. package/models/cluster/node.js +10 -2
  231. package/models/cluster.x-k8s.io.machine.js +26 -4
  232. package/models/cluster.x-k8s.io.machinedeployment.js +12 -2
  233. package/models/event.js +7 -0
  234. package/models/logging.banzaicloud.io.flow.js +4 -0
  235. package/models/management.cattle.io.cluster.js +1 -1
  236. package/models/management.cattle.io.clusterroletemplatebinding.js +1 -1
  237. package/models/management.cattle.io.globalrole.js +2 -2
  238. package/models/management.cattle.io.node.js +37 -2
  239. package/models/management.cattle.io.podsecurityadmissionconfigurationtemplate.ts +4 -0
  240. package/models/management.cattle.io.project.js +30 -11
  241. package/models/management.cattle.io.setting.js +1 -1
  242. package/models/management.cattle.io.user.js +37 -1
  243. package/models/namespace.js +42 -5
  244. package/models/persistentvolume.js +14 -2
  245. package/models/pod.js +15 -0
  246. package/models/projectroletemplatebinding.js +7 -0
  247. package/models/provisioning.cattle.io.cluster.js +61 -10
  248. package/models/rke-machine.cattle.io.pnapmachinetemplate.js +15 -0
  249. package/models/service.js +14 -13
  250. package/models/storage.k8s.io.storageclass.js +33 -18
  251. package/models/workload.js +38 -7
  252. package/nuxt.config.js +27 -17
  253. package/package.json +7 -7
  254. package/pages/about.vue +14 -2
  255. package/pages/c/_cluster/apps/charts/index.vue +21 -3
  256. package/pages/c/_cluster/apps/charts/install.vue +59 -22
  257. package/pages/c/_cluster/auth/config/_id.vue +6 -0
  258. package/pages/c/_cluster/auth/config/index.vue +8 -6
  259. package/pages/c/_cluster/auth/group.principal/assign-edit.vue +1 -1
  260. package/pages/c/_cluster/auth/roles/index.vue +1 -1
  261. package/pages/c/_cluster/explorer/index.vue +51 -6
  262. package/pages/c/_cluster/longhorn/index.vue +1 -1
  263. package/pages/c/_cluster/monitoring/alertmanagerconfig/_alertmanagerconfigid/receiver.vue +15 -4
  264. package/pages/c/_cluster/monitoring/index.vue +1 -1
  265. package/pages/c/_cluster/neuvector/index.vue +1 -1
  266. package/pages/c/_cluster/settings/performance.vue +48 -2
  267. package/pages/c/_cluster/uiplugins/DeveloperInstallDialog.vue +2 -0
  268. package/pages/c/_cluster/uiplugins/InstallDialog.vue +3 -0
  269. package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +42 -2
  270. package/pages/c/_cluster/uiplugins/RemoveUIPlugins.vue +2 -0
  271. package/pages/c/_cluster/uiplugins/SetupUIPlugins.vue +1 -0
  272. package/pages/c/_cluster/uiplugins/UninstallDialog.vue +2 -0
  273. package/pages/c/_cluster/uiplugins/index.vue +42 -3
  274. package/pages/diagnostic.vue +5 -4
  275. package/pages/home.vue +105 -30
  276. package/pages/prefs.vue +23 -12
  277. package/pages/rio/mesh.vue +1 -1
  278. package/pkg/dynamic-importer.lib.js +8 -0
  279. package/pkg/vue.config.js +4 -0
  280. package/plugins/dashboard-store/__tests__/mutations.spec.js +406 -0
  281. package/plugins/dashboard-store/actions.js +32 -25
  282. package/plugins/dashboard-store/getters.js +50 -33
  283. package/plugins/dashboard-store/mutations.js +134 -28
  284. package/plugins/dashboard-store/resource-class.js +37 -42
  285. package/plugins/steve/actions.js +30 -0
  286. package/plugins/steve/caches/resourceCache.js +60 -0
  287. package/plugins/steve/getters.js +44 -1
  288. package/plugins/steve/mutations.js +97 -36
  289. package/plugins/steve/resourceWatcher.js +277 -0
  290. package/plugins/steve/schema.utils.js +25 -0
  291. package/plugins/steve/subscribe.js +288 -115
  292. package/plugins/steve/worker/index.js +17 -0
  293. package/plugins/steve/worker/web-worker.advanced.js +302 -0
  294. package/plugins/steve/{web-worker.steve-sub-worker.js → worker/web-worker.basic.js} +3 -44
  295. package/rancher-components/Card/Card.vue +3 -3
  296. package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +1 -0
  297. package/rancher-components/StringList/StringList.test.ts +45 -420
  298. package/rancher-components/StringList/StringList.vue +1 -10
  299. package/rancher-components/components/Banner/Banner.test.ts +44 -0
  300. package/rancher-components/components/Banner/Banner.vue +130 -61
  301. package/rancher-components/components/Form/Checkbox/Checkbox.test.ts +13 -22
  302. package/rancher-components/components/Form/Checkbox/Checkbox.vue +8 -6
  303. package/rancher-components/components/Form/ToggleSwitch/ToggleSwitch.test.ts +9 -9
  304. package/rancher-components/components/LabeledTooltip/LabeledTooltip.vue +0 -1
  305. package/rancher-components/components/StringList/StringList.test.ts +7 -7
  306. package/rancher-components/components/StringList/StringList.vue +21 -15
  307. package/scripts/test-plugins-build.sh +8 -0
  308. package/static/loading-indicator.html +1 -1
  309. package/store/action-menu.js +4 -3
  310. package/store/index.js +54 -3
  311. package/store/plugins.js +0 -17
  312. package/store/pnap.js +128 -0
  313. package/store/prefs.js +4 -2
  314. package/store/type-map.js +81 -13
  315. package/types/pod-security-admission.ts +36 -0
  316. package/types/shell/index.d.ts +497 -396
  317. package/utils/__tests__/object.test.ts +17 -1
  318. package/utils/__tests__/pod-security-admission.test.ts +61 -0
  319. package/utils/async.ts +36 -0
  320. package/utils/color.js +45 -0
  321. package/utils/crypto/browserHashUtils.js +18 -0
  322. package/utils/dynamic-importer.js +8 -0
  323. package/utils/install-redirect.js +1 -1
  324. package/utils/object.js +24 -0
  325. package/utils/pod-security-admission.ts +39 -0
  326. package/utils/socket.js +61 -24
  327. package/utils/string.js +2 -0
  328. package/utils/svg-filter.js +301 -0
  329. package/utils/time.js +49 -0
  330. package/utils/validators/cidr.js +4 -0
  331. package/utils/validators/formRules/__tests__/index.test.ts +23 -3
  332. package/utils/validators/formRules/index.ts +14 -0
  333. package/config/product/harvester-manager.js +0 -162
  334. package/edit/harvesterhci.io.management.cluster.vue +0 -153
  335. package/list/harvesterhci.io.management.cluster.vue +0 -241
  336. package/machine-config/harvester.vue +0 -693
  337. package/models/harvesterhci.io.management.cluster.js +0 -228
  338. package/pages/c/_cluster/harvesterManager/index.vue +0 -24
  339. package/rancher-components/Card/Card.test.ts +0 -39
  340. package/rancher-components/Utils/DraggableZone/DraggableZone.vue +0 -181
  341. package/rancher-components/Utils/DraggableZone/index.ts +0 -1
  342. package/rancher-components/components/Utils/DraggableZone/index.ts +0 -1
@@ -2,10 +2,16 @@
2
2
  import { LabeledInput } from '@components/Form/LabeledInput';
3
3
  import { RadioGroup } from '@components/Form/Radio';
4
4
  import KeyValue from '@shell/components/form/KeyValue';
5
+ import LabeledSelect from '@shell/components/form/LabeledSelect';
6
+ import { CSI_DRIVER } from '@shell/config/types';
7
+ import { set } from '@shell/utils/object';
5
8
 
6
9
  export default {
7
10
  components: {
8
- KeyValue, LabeledInput, RadioGroup
11
+ KeyValue,
12
+ LabeledInput,
13
+ RadioGroup,
14
+ LabeledSelect
9
15
  },
10
16
  props: {
11
17
  value: {
@@ -17,6 +23,18 @@ export default {
17
23
  required: true,
18
24
  },
19
25
  },
26
+
27
+ fetch() {
28
+ if (this.$store.getters['cluster/schemaFor'](CSI_DRIVER)) {
29
+ this.$store.dispatch('cluster/findAll', { type: CSI_DRIVER }).then((drivers) => {
30
+ this.csiDrivers = drivers;
31
+ this.loadingDrivers = false;
32
+ });
33
+ } else {
34
+ this.loadingDrivers = false;
35
+ }
36
+ },
37
+
20
38
  data() {
21
39
  const readOnlyOptions = [
22
40
  {
@@ -36,8 +54,25 @@ export default {
36
54
  this.$set(this.value.spec.csi, 'controllerExpandSecretRef', this.value.spec.csi.controllerExpandSecretRef || {});
37
55
  this.$set(this.value.spec.csi, 'controllerPublishSecretRef', this.value.spec.csi.controllerPublishSecretRef || {});
38
56
 
39
- return { readOnlyOptions };
57
+ return {
58
+ readOnlyOptions,
59
+ loadingDrivers: true,
60
+ csiDrivers: [],
61
+ };
62
+ },
63
+
64
+ computed: {
65
+ driverOptions() {
66
+ return this.csiDrivers.map((driver) => {
67
+ return driver.metadata.name;
68
+ });
69
+ }
40
70
  },
71
+ methods: {
72
+ selectDriver(e) {
73
+ set(this.value, 'spec.csi.driver', e.value ? e.value : e.label);
74
+ }
75
+ }
41
76
  };
42
77
  </script>
43
78
 
@@ -45,29 +80,34 @@ export default {
45
80
  <div>
46
81
  <div class="row mb-20">
47
82
  <div class="col span-6">
48
- <LabeledInput
49
- v-model="value.spec.csi.driver"
50
- :mode="mode"
51
- :label="t('persistentVolume.csi.driver.label')"
52
- :placeholder="t('persistentVolume.csi.driver.placeholder')"
83
+ <LabeledSelect
84
+ :value="value.spec.csi.driver"
85
+ :loading="loadingDrivers"
86
+ :options="driverOptions"
87
+ :mode="mode"
88
+ :label="t('persistentVolume.csi.driver.label')"
89
+ :placeholder="t('persistentVolume.csi.driver.placeholder')"
90
+ searchable
91
+ taggable
92
+ @selecting="selectDriver"
53
93
  />
54
94
  </div>
55
95
  <div class="col span-6">
56
- <LabeledInput
57
- v-model="value.spec.csi.fsType"
58
- :mode="mode"
59
- :label="t('persistentVolume.shared.filesystemType.label')"
60
- :placeholder="t('persistentVolume.shared.filesystemType.placeholder')"
96
+ <LabeledInput
97
+ v-model="value.spec.csi.fsType"
98
+ :mode="mode"
99
+ :label="t('persistentVolume.shared.filesystemType.label')"
100
+ :placeholder="t('persistentVolume.shared.filesystemType.placeholder')"
61
101
  />
62
102
  </div>
63
103
  </div>
64
104
  <div class="row mb-20">
65
105
  <div class="col span-6">
66
- <LabeledInput
67
- v-model="value.spec.csi.volumeHandle"
68
- :mode="mode"
69
- :label="t('persistentVolume.csi.volumeHandle.label')"
70
- :placeholder="t('persistentVolume.csi.volumeHandle.placeholder')"
106
+ <LabeledInput
107
+ v-model="value.spec.csi.volumeHandle"
108
+ :mode="mode"
109
+ :label="t('persistentVolume.csi.volumeHandle.label')"
110
+ :placeholder="t('persistentVolume.csi.volumeHandle.placeholder')"
71
111
  />
72
112
  </div>
73
113
  <div class="col span-6">
@@ -83,83 +123,83 @@ export default {
83
123
  </div>
84
124
  <div class="row mb-20">
85
125
  <div class="col span-12">
86
- <KeyValue
87
- v-model="value.spec.csi.volumeAttributes"
88
- :add-label="t('persistentVolume.csi.volumeAttributes.add')"
89
- :mode="mode"
90
- :read-allowed="false"
126
+ <KeyValue
127
+ v-model="value.spec.csi.volumeAttributes"
128
+ :add-label="t('persistentVolume.csi.volumeAttributes.add')"
129
+ :mode="mode"
130
+ :read-allowed="false"
91
131
  />
92
132
  </div>
93
133
  </div>
94
134
  <div class="row mb-20">
95
135
  <div class="col span-6">
96
- <LabeledInput
97
- v-model="value.spec.csi.nodePublishSecretRef.name"
98
- :mode="mode"
99
- :label="t('persistentVolume.csi.nodePublishSecretName.label')"
100
- :placeholder="t('persistentVolume.csi.nodePublishSecretName.placeholder')"
136
+ <LabeledInput
137
+ v-model="value.spec.csi.nodePublishSecretRef.name"
138
+ :mode="mode"
139
+ :label="t('persistentVolume.csi.nodePublishSecretName.label')"
140
+ :placeholder="t('persistentVolume.csi.nodePublishSecretName.placeholder')"
101
141
  />
102
142
  </div>
103
143
  <div class="col span-6">
104
- <LabeledInput
105
- v-model="value.spec.csi.nodePublishSecretRef.namespace"
106
- :mode="mode"
107
- :label="t('persistentVolume.csi.nodePublishSecretNamespace.label')"
108
- :placeholder="t('persistentVolume.csi.nodePublishSecretNamespace.placeholder')"
144
+ <LabeledInput
145
+ v-model="value.spec.csi.nodePublishSecretRef.namespace"
146
+ :mode="mode"
147
+ :label="t('persistentVolume.csi.nodePublishSecretNamespace.label')"
148
+ :placeholder="t('persistentVolume.csi.nodePublishSecretNamespace.placeholder')"
109
149
  />
110
150
  </div>
111
151
  </div>
112
152
  <div class="row mb-20">
113
153
  <div class="col span-6">
114
- <LabeledInput
115
- v-model="value.spec.csi.nodeStageSecretRef.name"
116
- :mode="mode"
117
- :label="t('persistentVolume.csi.nodeStageSecretName.label')"
118
- :placeholder="t('persistentVolume.csi.nodeStageSecretName.placeholder')"
154
+ <LabeledInput
155
+ v-model="value.spec.csi.nodeStageSecretRef.name"
156
+ :mode="mode"
157
+ :label="t('persistentVolume.csi.nodeStageSecretName.label')"
158
+ :placeholder="t('persistentVolume.csi.nodeStageSecretName.placeholder')"
119
159
  />
120
160
  </div>
121
161
  <div class="col span-6">
122
- <LabeledInput
123
- v-model="value.spec.csi.nodeStageSecretRef.namespace"
124
- :mode="mode"
125
- :label="t('persistentVolume.csi.nodeStageSecretNamespace.label')"
126
- :placeholder="t('persistentVolume.csi.nodeStageSecretNamespace.placeholder')"
162
+ <LabeledInput
163
+ v-model="value.spec.csi.nodeStageSecretRef.namespace"
164
+ :mode="mode"
165
+ :label="t('persistentVolume.csi.nodeStageSecretNamespace.label')"
166
+ :placeholder="t('persistentVolume.csi.nodeStageSecretNamespace.placeholder')"
127
167
  />
128
168
  </div>
129
169
  </div>
130
170
  <div class="row mb-20">
131
171
  <div class="col span-6">
132
- <LabeledInput
133
- v-model="value.spec.csi.controllerExpandSecretRef.name"
134
- :mode="mode"
135
- :label="t('persistentVolume.csi.controllerExpandSecretName.label')"
136
- :placeholder="t('persistentVolume.csi.controllerExpandSecretName.placeholder')"
172
+ <LabeledInput
173
+ v-model="value.spec.csi.controllerExpandSecretRef.name"
174
+ :mode="mode"
175
+ :label="t('persistentVolume.csi.controllerExpandSecretName.label')"
176
+ :placeholder="t('persistentVolume.csi.controllerExpandSecretName.placeholder')"
137
177
  />
138
178
  </div>
139
179
  <div class="col span-6">
140
- <LabeledInput
141
- v-model="value.spec.csi.controllerExpandSecretRef.namespace"
142
- :mode="mode"
143
- :label="t('persistentVolume.csi.controllerExpandSecretNamespace.label')"
144
- :placeholder="t('persistentVolume.csi.controllerExpandSecretNamespace.placeholder')"
180
+ <LabeledInput
181
+ v-model="value.spec.csi.controllerExpandSecretRef.namespace"
182
+ :mode="mode"
183
+ :label="t('persistentVolume.csi.controllerExpandSecretNamespace.label')"
184
+ :placeholder="t('persistentVolume.csi.controllerExpandSecretNamespace.placeholder')"
145
185
  />
146
186
  </div>
147
187
  </div>
148
188
  <div class="row mb-20">
149
189
  <div class="col span-6">
150
- <LabeledInput
151
- v-model="value.spec.csi.controllerPublishSecretRef.name"
152
- :mode="mode"
153
- :label="t('persistentVolume.csi.controllerPublishSecretName.label')"
154
- :placeholder="t('persistentVolume.csi.controllerPublishSecretName.placeholder')"
190
+ <LabeledInput
191
+ v-model="value.spec.csi.controllerPublishSecretRef.name"
192
+ :mode="mode"
193
+ :label="t('persistentVolume.csi.controllerPublishSecretName.label')"
194
+ :placeholder="t('persistentVolume.csi.controllerPublishSecretName.placeholder')"
155
195
  />
156
196
  </div>
157
197
  <div class="col span-6">
158
- <LabeledInput
159
- v-model="value.spec.csi.controllerPublishSecretRef.namespace"
160
- :mode="mode"
161
- :label="t('persistentVolume.csi.controllerPublishSecretNamespace.label')"
162
- :placeholder="t('persistentVolume.csi.controllerPublishSecretNamespace.placeholder')"
198
+ <LabeledInput
199
+ v-model="value.spec.csi.controllerPublishSecretRef.namespace"
200
+ :mode="mode"
201
+ :label="t('persistentVolume.csi.controllerPublishSecretNamespace.label')"
202
+ :placeholder="t('persistentVolume.csi.controllerPublishSecretNamespace.placeholder')"
163
203
  />
164
204
  </div>
165
205
  </div>
@@ -52,36 +52,36 @@ export default {
52
52
  <div>
53
53
  <div class="row mb-20">
54
54
  <div class="col span-6">
55
- <ArrayList
56
- v-model="value.spec.fc.targetWWNs"
57
- :add-label="t('persistentVolume.fc.targetWWNS.add')"
58
- :mode="mode"
55
+ <ArrayList
56
+ v-model="value.spec.fc.targetWWNs"
57
+ :add-label="t('persistentVolume.fc.targetWWNS.add')"
58
+ :mode="mode"
59
59
  />
60
60
  </div>
61
61
  <div class="col span-6">
62
- <ArrayList
63
- v-model="value.spec.fc.wwids"
64
- :add-label="t('persistentVolume.fc.wwids.add')"
65
- :mode="mode"
62
+ <ArrayList
63
+ v-model="value.spec.fc.wwids"
64
+ :add-label="t('persistentVolume.fc.wwids.add')"
65
+ :mode="mode"
66
66
  />
67
67
  </div>
68
68
  </div>
69
69
  <div class="row mb-20">
70
70
  <div class="col span-6">
71
- <LabeledInput
72
- v-model="lun"
73
- :mode="mode"
74
- :label="t('persistentVolume.fc.lun.label')"
75
- :placeholder="t('persistentVolume.fc.lun.placeholder')"
76
- type="number"
71
+ <LabeledInput
72
+ v-model="lun"
73
+ :mode="mode"
74
+ :label="t('persistentVolume.fc.lun.label')"
75
+ :placeholder="t('persistentVolume.fc.lun.placeholder')"
76
+ type="number"
77
77
  />
78
78
  </div>
79
79
  <div class="col span-6">
80
- <LabeledInput
81
- v-model="value.spec.fc.fsType"
82
- :mode="mode"
83
- :label="t('persistentVolume.shared.filesystemType.label')"
84
- :placeholder="t('persistentVolume.shared.filesystemType.placeholder')"
80
+ <LabeledInput
81
+ v-model="value.spec.fc.fsType"
82
+ :mode="mode"
83
+ :label="t('persistentVolume.shared.filesystemType.label')"
84
+ :placeholder="t('persistentVolume.shared.filesystemType.placeholder')"
85
85
  />
86
86
  </div>
87
87
  </div>
@@ -54,19 +54,19 @@ export default {
54
54
  <div>
55
55
  <div class="row mb-20">
56
56
  <div class="col span-6">
57
- <LabeledInput
58
- v-model="value.spec.iscsi.initiatorName"
59
- :mode="mode"
60
- :label="t('persistentVolume.iscsi.initiatorName.label')"
61
- :placeholder="t('persistentVolume.iscsi.initiatorName.placeholder')"
57
+ <LabeledInput
58
+ v-model="value.spec.iscsi.initiatorName"
59
+ :mode="mode"
60
+ :label="t('persistentVolume.iscsi.initiatorName.label')"
61
+ :placeholder="t('persistentVolume.iscsi.initiatorName.placeholder')"
62
62
  />
63
63
  </div>
64
64
  <div class="col span-6">
65
- <LabeledInput
66
- v-model="value.spec.iscsi.iscsiInterface"
67
- :mode="mode"
68
- :label="t('persistentVolume.iscsi.iscsiInterface.label')"
69
- :placeholder="t('persistentVolume.iscsi.iscsiInterface.placeholder')"
65
+ <LabeledInput
66
+ v-model="value.spec.iscsi.iscsiInterface"
67
+ :mode="mode"
68
+ :label="t('persistentVolume.iscsi.iscsiInterface.label')"
69
+ :placeholder="t('persistentVolume.iscsi.iscsiInterface.placeholder')"
70
70
  />
71
71
  </div>
72
72
  </div>
@@ -94,65 +94,65 @@ export default {
94
94
  </div>
95
95
  <div class="row mb-20">
96
96
  <div class="col span-6">
97
- <LabeledInput
98
- v-model="value.spec.iscsi.iqn"
99
- :mode="mode"
100
- :label="t('persistentVolume.iscsi.iqn.label')"
101
- :placeholder="t('persistentVolume.iscsi.iqn.placeholder')"
97
+ <LabeledInput
98
+ v-model="value.spec.iscsi.iqn"
99
+ :mode="mode"
100
+ :label="t('persistentVolume.iscsi.iqn.label')"
101
+ :placeholder="t('persistentVolume.iscsi.iqn.placeholder')"
102
102
  />
103
103
  </div>
104
104
  <div class="col span-6">
105
- <LabeledInput
106
- v-model="lun"
107
- :mode="mode"
108
- :label="t('persistentVolume.iscsi.lun.label')"
109
- :placeholder="t('persistentVolume.iscsi.lun.placeholder')"
110
- type="number"
105
+ <LabeledInput
106
+ v-model="lun"
107
+ :mode="mode"
108
+ :label="t('persistentVolume.iscsi.lun.label')"
109
+ :placeholder="t('persistentVolume.iscsi.lun.placeholder')"
110
+ type="number"
111
111
  />
112
112
  </div>
113
113
  </div>
114
114
  <div class="row mb-20">
115
115
  <div class="col span-6">
116
- <LabeledInput
117
- v-model="value.spec.iscsi.targetPortal"
118
- :mode="mode"
119
- :label="t('persistentVolume.iscsi.targetPortal.label')"
120
- :placeholder="t('persistentVolume.iscsi.targetPortal.placeholder')"
116
+ <LabeledInput
117
+ v-model="value.spec.iscsi.targetPortal"
118
+ :mode="mode"
119
+ :label="t('persistentVolume.iscsi.targetPortal.label')"
120
+ :placeholder="t('persistentVolume.iscsi.targetPortal.placeholder')"
121
121
  />
122
122
  </div>
123
123
  <div class="col span-6">
124
- <ArrayList
125
- v-model="value.spec.iscsi.portals"
126
- :mode="mode"
127
- :add-label="t('persistentVolume.iscsi.portals.add')"
124
+ <ArrayList
125
+ v-model="value.spec.iscsi.portals"
126
+ :mode="mode"
127
+ :add-label="t('persistentVolume.iscsi.portals.add')"
128
128
  />
129
129
  </div>
130
130
  </div>
131
131
  <div class="row mb-20">
132
132
  <div class="col span-6">
133
- <LabeledInput
134
- v-model="value.spec.iscsi.secretRef.name"
135
- :mode="mode"
136
- :label="t('persistentVolume.shared.secretName.label')"
137
- :placeholder="t('persistentVolume.shared.secretName.placeholder')"
133
+ <LabeledInput
134
+ v-model="value.spec.iscsi.secretRef.name"
135
+ :mode="mode"
136
+ :label="t('persistentVolume.shared.secretName.label')"
137
+ :placeholder="t('persistentVolume.shared.secretName.placeholder')"
138
138
  />
139
139
  </div>
140
140
  <div class="col span-6">
141
- <LabeledInput
142
- v-model="value.spec.iscsi.secretRef.namespace"
143
- :mode="mode"
144
- :label="t('persistentVolume.shared.secretNamespace.label')"
145
- :placeholder="t('persistentVolume.shared.secretNamespace.placeholder')"
141
+ <LabeledInput
142
+ v-model="value.spec.iscsi.secretRef.namespace"
143
+ :mode="mode"
144
+ :label="t('persistentVolume.shared.secretNamespace.label')"
145
+ :placeholder="t('persistentVolume.shared.secretNamespace.placeholder')"
146
146
  />
147
147
  </div>
148
148
  </div>
149
149
  <div class="row mb-20">
150
150
  <div class="col span-6">
151
- <LabeledInput
152
- v-model="value.spec.iscsi.fsType"
153
- :mode="mode"
154
- :label="t('persistentVolume.shared.filesystemType.label')"
155
- :placeholder="t('persistentVolume.shared.filesystemType.placeholder')"
151
+ <LabeledInput
152
+ v-model="value.spec.iscsi.fsType"
153
+ :mode="mode"
154
+ :label="t('persistentVolume.shared.filesystemType.label')"
155
+ :placeholder="t('persistentVolume.shared.filesystemType.placeholder')"
156
156
  />
157
157
  </div>
158
158
  <div class="col span-6">
@@ -42,65 +42,65 @@ export default {
42
42
  <div>
43
43
  <div class="row mb-20">
44
44
  <div class="col span-6">
45
- <LabeledInput
46
- v-model="value.spec.rbd.user"
47
- :mode="mode"
48
- :label="t('persistentVolume.rbd.user.label')"
49
- :placeholder="t('persistentVolume.rbd.user.placeholder')"
45
+ <LabeledInput
46
+ v-model="value.spec.rbd.user"
47
+ :mode="mode"
48
+ :label="t('persistentVolume.rbd.user.label')"
49
+ :placeholder="t('persistentVolume.rbd.user.placeholder')"
50
50
  />
51
51
  </div>
52
52
  <div class="col span-6">
53
- <LabeledInput
54
- v-model="value.spec.rbd.keyring"
55
- :mode="mode"
56
- :label="t('persistentVolume.rbd.keyRing.label')"
57
- :placeholder="t('persistentVolume.rbd.keyRing.placeholder')"
53
+ <LabeledInput
54
+ v-model="value.spec.rbd.keyring"
55
+ :mode="mode"
56
+ :label="t('persistentVolume.rbd.keyRing.label')"
57
+ :placeholder="t('persistentVolume.rbd.keyRing.placeholder')"
58
58
  />
59
59
  </div>
60
60
  </div>
61
61
  <div class="row mb-20">
62
62
  <div class="col span-6">
63
- <LabeledInput
64
- v-model="value.spec.rbd.pool"
65
- :mode="mode"
66
- :label="t('persistentVolume.rbd.pool.label')"
67
- :placeholder="t('persistentVolume.rbd.pool.placeholder')"
63
+ <LabeledInput
64
+ v-model="value.spec.rbd.pool"
65
+ :mode="mode"
66
+ :label="t('persistentVolume.rbd.pool.label')"
67
+ :placeholder="t('persistentVolume.rbd.pool.placeholder')"
68
68
  />
69
69
  </div>
70
70
  <div class="col span-6">
71
- <LabeledInput
72
- v-model="value.spec.rbd.image"
73
- :mode="mode"
74
- :label="t('persistentVolume.rbd.image.label')"
75
- :placeholder="t('persistentVolume.rbd.image.placeholder')"
71
+ <LabeledInput
72
+ v-model="value.spec.rbd.image"
73
+ :mode="mode"
74
+ :label="t('persistentVolume.rbd.image.label')"
75
+ :placeholder="t('persistentVolume.rbd.image.placeholder')"
76
76
  />
77
77
  </div>
78
78
  </div>
79
79
  <div class="row mb-20">
80
80
  <div class="col span-6">
81
- <LabeledInput
82
- v-model="value.spec.rbd.secretRef.name"
83
- :mode="mode"
84
- :label="t('persistentVolume.shared.secretName.label')"
85
- :placeholder="t('persistentVolume.shared.secretName.placeholder')"
81
+ <LabeledInput
82
+ v-model="value.spec.rbd.secretRef.name"
83
+ :mode="mode"
84
+ :label="t('persistentVolume.shared.secretName.label')"
85
+ :placeholder="t('persistentVolume.shared.secretName.placeholder')"
86
86
  />
87
87
  </div>
88
88
  <div class="col span-6">
89
- <LabeledInput
90
- v-model="value.spec.rbd.secretRef.namespace"
91
- :mode="mode"
92
- :label="t('persistentVolume.shared.secretNamespace.label')"
93
- :placeholder="t('persistentVolume.shared.secretNamespace.placeholder')"
89
+ <LabeledInput
90
+ v-model="value.spec.rbd.secretRef.namespace"
91
+ :mode="mode"
92
+ :label="t('persistentVolume.shared.secretNamespace.label')"
93
+ :placeholder="t('persistentVolume.shared.secretNamespace.placeholder')"
94
94
  />
95
95
  </div>
96
96
  </div>
97
97
  <div class="row mb-20">
98
98
  <div class="col span-6">
99
- <LabeledInput
100
- v-model="value.spec.rbd.fsType"
101
- :mode="mode"
102
- :label="t('persistentVolume.shared.filesystemType.label')"
103
- :placeholder="t('persistentVolume.shared.filesystemType.placeholder')"
99
+ <LabeledInput
100
+ v-model="value.spec.rbd.fsType"
101
+ :mode="mode"
102
+ :label="t('persistentVolume.shared.filesystemType.label')"
103
+ :placeholder="t('persistentVolume.shared.filesystemType.placeholder')"
104
104
  />
105
105
  </div>
106
106
  <div class="col span-6">
@@ -116,10 +116,10 @@ export default {
116
116
  </div>
117
117
  <div class="row mb-20">
118
118
  <div class="col span-6">
119
- <ArrayList
120
- v-model="value.spec.rbd.monitors"
121
- :add-label="t('persistentVolume.shared.monitors.add')"
122
- :mode="mode"
119
+ <ArrayList
120
+ v-model="value.spec.rbd.monitors"
121
+ :add-label="t('persistentVolume.shared.monitors.add')"
122
+ :mode="mode"
123
123
  />
124
124
  </div>
125
125
  </div>