@rancher/shell 0.1.2 → 0.1.3

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 (258) hide show
  1. package/assets/translations/en-us.yaml +27 -769
  2. package/assets/translations/zh-hans.yaml +8 -769
  3. package/components/ActionMenu.vue +3 -3
  4. package/components/CodeMirror.vue +6 -8
  5. package/components/CommunityLinks.vue +1 -1
  6. package/components/ContainerResourceLimit.vue +14 -0
  7. package/components/ExplorerMembers.vue +123 -0
  8. package/components/ExplorerProjectsNamespaces.vue +405 -0
  9. package/components/GrafanaDashboard.vue +17 -2
  10. package/components/LocaleSelector.vue +81 -0
  11. package/components/PromptModal.vue +2 -3
  12. package/components/ResourceList/index.vue +1 -1
  13. package/components/ResourceTable.vue +3 -6
  14. package/components/SingleClusterInfo.vue +1 -1
  15. package/components/SortableTable/index.vue +23 -20
  16. package/components/SortableTable/selection.js +1 -0
  17. package/components/auth/AzureWarning.vue +5 -1
  18. package/components/auth/Principal.vue +1 -1
  19. package/components/auth/RoleDetailEdit.vue +18 -11
  20. package/components/fleet/FleetRepos.vue +0 -2
  21. package/components/form/NameNsDescription.vue +4 -6
  22. package/components/form/NodeScheduling.vue +1 -1
  23. package/components/form/WorkloadPorts.vue +1 -1
  24. package/components/formatter/WorkloadHealthScale.vue +1 -1
  25. package/components/nav/Header.vue +9 -9
  26. package/components/nav/NamespaceFilter.vue +7 -4
  27. package/components/nav/TopLevelMenu.vue +6 -43
  28. package/components/nav/WindowManager/ContainerLogs.vue +1 -1
  29. package/config/product/harvester-manager.js +64 -2
  30. package/config/product/manager.js +9 -0
  31. package/config/settings.js +17 -71
  32. package/config/table-headers.js +0 -1
  33. package/config/types.js +5 -25
  34. package/core/plugin-routes.ts +34 -22
  35. package/core/plugin.ts +15 -3
  36. package/core/plugins-loader.js +2 -0
  37. package/core/plugins.js +79 -36
  38. package/core/types.ts +7 -1
  39. package/detail/provisioning.cattle.io.cluster.vue +13 -0
  40. package/detail/workload/index.vue +11 -5
  41. package/{components/dialog → dialog}/AddClusterMemberDialog.vue +0 -0
  42. package/{components/dialog → dialog}/AddCustomBadgeDialog.vue +0 -0
  43. package/{components/dialog → dialog}/AddProjectMemberDialog.vue +0 -0
  44. package/{components/dialog → dialog}/AddonConfigConfirmationDialog.vue +0 -0
  45. package/{components/dialog → dialog}/DrainNode.vue +0 -0
  46. package/{components/dialog → dialog}/ForceMachineRemoveDialog.vue +0 -0
  47. package/{components/dialog → dialog}/GenericPrompt.vue +0 -0
  48. package/{components/dialog → dialog}/RollbackWorkloadDialog.vue +0 -0
  49. package/{components/dialog → dialog}/RotateCertificatesDialog.vue +0 -0
  50. package/{components/dialog → dialog}/RotateEncryptionKeyDialog.vue +0 -0
  51. package/{components/dialog → dialog}/SaveAsRKETemplateDialog.vue +0 -0
  52. package/{components/dialog → dialog}/ScaleMachineDownDialog.vue +0 -0
  53. package/edit/auth/azuread.vue +20 -1
  54. package/edit/management.cattle.io.project.vue +2 -2
  55. package/edit/namespace.vue +17 -10
  56. package/edit/persistentvolumeclaim.vue +1 -0
  57. package/edit/provisioning.cattle.io.cluster/CustomCommand.vue +1 -1
  58. package/edit/provisioning.cattle.io.cluster/MachinePool.vue +33 -5
  59. package/edit/service.vue +1 -1
  60. package/edit/workload/index.vue +363 -15
  61. package/edit/workload/mixins/workload.js +62 -7
  62. package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +1 -0
  63. package/layouts/default.vue +52 -27
  64. package/layouts/error.vue +5 -1
  65. package/layouts/home.vue +6 -2
  66. package/list/harvesterhci.io.management.cluster.vue +74 -33
  67. package/list/namespace.vue +3 -5
  68. package/machine-config/amazonec2.vue +2 -0
  69. package/machine-config/harvester.vue +96 -49
  70. package/middleware/authenticated.js +56 -52
  71. package/mixins/form-validation.js +1 -1
  72. package/mixins/resource-fetch.js +3 -1
  73. package/models/fleet.cattle.io.bundle.js +26 -19
  74. package/models/harvesterhci.io.management.cluster.js +194 -5
  75. package/models/management.cattle.io.cluster.js +1 -1
  76. package/models/management.cattle.io.clusterroletemplatebinding.js +9 -0
  77. package/models/management.cattle.io.project.js +23 -2
  78. package/models/namespace.js +19 -3
  79. package/models/pod.js +19 -2
  80. package/models/provisioning.cattle.io.cluster.js +4 -0
  81. package/models/workload.js +4 -243
  82. package/models/workload.service.js +314 -0
  83. package/nuxt.config.js +11 -9
  84. package/package.json +3 -3
  85. package/pages/auth/login.vue +11 -2
  86. package/pages/auth/setup.vue +1 -1
  87. package/pages/c/_cluster/_product/members/index.vue +3 -93
  88. package/pages/c/_cluster/_product/projectsnamespaces.vue +6 -403
  89. package/pages/c/_cluster/settings/performance.vue +19 -16
  90. package/pages/fail-whale.vue +1 -10
  91. package/pages/index.vue +18 -4
  92. package/pages/plugins.vue +2 -2
  93. package/pages/prefs.vue +8 -6
  94. package/pkg/auto-import.js +44 -7
  95. package/pkg/dynamic-plugin-loader.js +28 -0
  96. package/pkg/import.js +2 -2
  97. package/pkg/model-loader-require.lib.js +3 -0
  98. package/pkg/vue.config.js +9 -6
  99. package/plugins/dashboard-store/model-loader-require.js +12 -0
  100. package/plugins/dashboard-store/model-loader.js +4 -1
  101. package/plugins/dashboard-store/resource-class.js +10 -3
  102. package/plugins/steve/actions.js +1 -1
  103. package/plugins/steve/index.js +6 -4
  104. package/plugins/steve/subscribe.js +34 -23
  105. package/rancher-components/Form/Checkbox/Checkbox.test.ts +77 -0
  106. package/rancher-components/Form/Checkbox/Checkbox.vue +12 -2
  107. package/scripts/build-pkg.sh +48 -2
  108. package/scripts/drone-build-pkg.sh +31 -0
  109. package/scripts/publish-shell.sh +10 -11
  110. package/scripts/serve-pkgs +17 -10
  111. package/store/catalog.js +3 -1
  112. package/store/i18n.js +16 -11
  113. package/store/index.js +4 -181
  114. package/store/prefs.js +30 -2
  115. package/store/type-map.js +16 -29
  116. package/utils/cluster.js +1 -1
  117. package/utils/custom-validators.js +1 -12
  118. package/utils/dynamic-importer.js +1 -1
  119. package/utils/validators/setting.js +0 -35
  120. package/components/FilterLabel.vue +0 -254
  121. package/components/HarvesterUpgradeProgressBarList.vue +0 -109
  122. package/components/VMConsoleBar.vue +0 -87
  123. package/components/dialog/harvester/AddHotplugModal.vue +0 -159
  124. package/components/dialog/harvester/BackupModal.vue +0 -117
  125. package/components/dialog/harvester/CloneTemplate.vue +0 -125
  126. package/components/dialog/harvester/EjectCDROMDialog.vue +0 -157
  127. package/components/dialog/harvester/ExportImageDialog.vue +0 -152
  128. package/components/dialog/harvester/MaintenanceDialog.vue +0 -94
  129. package/components/dialog/harvester/MigrationDialog.vue +0 -154
  130. package/components/dialog/harvester/RestoreDialog.vue +0 -153
  131. package/components/dialog/harvester/SupportBundle.vue +0 -217
  132. package/components/dialog/harvester/UnplugVolume.vue +0 -108
  133. package/components/form/SerialConsole/index.vue +0 -267
  134. package/components/formatter/AttachVMWithName.vue +0 -46
  135. package/components/formatter/CloudInitType.vue +0 -27
  136. package/components/formatter/HarvesterBackupTargetValidation.vue +0 -43
  137. package/components/formatter/HarvesterCPUUsed.vue +0 -122
  138. package/components/formatter/HarvesterDiskState.vue +0 -66
  139. package/components/formatter/HarvesterHostName.vue +0 -66
  140. package/components/formatter/HarvesterIpAddress.vue +0 -90
  141. package/components/formatter/HarvesterMemoryUsed.vue +0 -140
  142. package/components/formatter/HarvesterMigrationState.vue +0 -85
  143. package/components/formatter/HarvesterNodeName.vue +0 -49
  144. package/components/formatter/HarvesterStorageUsed.vue +0 -194
  145. package/components/formatter/HarvesterVmState.vue +0 -123
  146. package/components/nav/HarvesterUpgrade.vue +0 -232
  147. package/components/novnc/NovncConsole.vue +0 -93
  148. package/components/novnc/NovncConsoleItem.vue +0 -89
  149. package/components/novnc/NovncConsoleWrapper.vue +0 -243
  150. package/config/harvester-map.js +0 -44
  151. package/config/harvester-table-headers.js +0 -27
  152. package/config/product/harvester.js +0 -305
  153. package/detail/harvesterhci.io.host/HarvesterHostBasic.vue +0 -364
  154. package/detail/harvesterhci.io.host/HarvesterHostDisk.vue +0 -200
  155. package/detail/harvesterhci.io.host/HarvesterHostNetwork.vue +0 -89
  156. package/detail/harvesterhci.io.host/VirtualMachineInstance.vue +0 -134
  157. package/detail/harvesterhci.io.host/index.vue +0 -243
  158. package/detail/harvesterhci.io.virtualmachinebackup/index.vue +0 -221
  159. package/detail/harvesterhci.io.virtualmachineimage.vue +0 -118
  160. package/detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineBasics.vue +0 -279
  161. package/detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineEvents.vue +0 -75
  162. package/detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineKeypairs.vue +0 -114
  163. package/detail/kubevirt.io.virtualmachine/VirtualMachineTabs/VirtualMachineMigration.vue +0 -79
  164. package/detail/kubevirt.io.virtualmachine/index.vue +0 -213
  165. package/edit/harvesterhci.io.cloudtemplate.vue +0 -123
  166. package/edit/harvesterhci.io.host/HarvesterDisk.vue +0 -262
  167. package/edit/harvesterhci.io.host/index.vue +0 -533
  168. package/edit/harvesterhci.io.keypair.vue +0 -112
  169. package/edit/harvesterhci.io.managedchart/index.vue +0 -25
  170. package/edit/harvesterhci.io.managedchart/rancher-monitoring.vue +0 -172
  171. package/edit/harvesterhci.io.networkattachmentdefinition.vue +0 -210
  172. package/edit/harvesterhci.io.setting/additional-ca.vue +0 -36
  173. package/edit/harvesterhci.io.setting/backup-target.vue +0 -182
  174. package/edit/harvesterhci.io.setting/http-proxy.vue +0 -79
  175. package/edit/harvesterhci.io.setting/index.vue +0 -201
  176. package/edit/harvesterhci.io.setting/overcommit-config.vue +0 -94
  177. package/edit/harvesterhci.io.setting/ssl-certificates.vue +0 -117
  178. package/edit/harvesterhci.io.setting/ssl-parameters.vue +0 -161
  179. package/edit/harvesterhci.io.setting/support-bundle-image.vue +0 -134
  180. package/edit/harvesterhci.io.setting/support-bundle-namespaces.vue +0 -73
  181. package/edit/harvesterhci.io.setting/vip-pools.vue +0 -244
  182. package/edit/harvesterhci.io.setting/vm-force-reset-policy.vue +0 -81
  183. package/edit/harvesterhci.io.virtualmachinebackup.vue +0 -256
  184. package/edit/harvesterhci.io.virtualmachineimage.vue +0 -364
  185. package/edit/harvesterhci.io.virtualmachinetemplateversion.vue +0 -340
  186. package/edit/harvesterhci.io.volume.vue +0 -195
  187. package/edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/AccessCredentialsUsers.vue +0 -190
  188. package/edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/index.vue +0 -212
  189. package/edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/basicAuth.vue +0 -94
  190. package/edit/kubevirt.io.virtualmachine/VirtualMachineAccessCredentials/type/sshkey.vue +0 -85
  191. package/edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig/DataTemplate.vue +0 -153
  192. package/edit/kubevirt.io.virtualmachine/VirtualMachineCloudConfig/index.vue +0 -279
  193. package/edit/kubevirt.io.virtualmachine/VirtualMachineCpuMemory.vue +0 -113
  194. package/edit/kubevirt.io.virtualmachine/VirtualMachineNetwork/__tests__/HarvesterEditNetwork.test.ts +0 -41
  195. package/edit/kubevirt.io.virtualmachine/VirtualMachineNetwork/base.vue +0 -281
  196. package/edit/kubevirt.io.virtualmachine/VirtualMachineNetwork/index.vue +0 -142
  197. package/edit/kubevirt.io.virtualmachine/VirtualMachineReserved.vue +0 -54
  198. package/edit/kubevirt.io.virtualmachine/VirtualMachineSSHKey.vue +0 -256
  199. package/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/index.vue +0 -391
  200. package/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/__tests__/HarvesterEditContainer.test.ts +0 -40
  201. package/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/__tests__/HarvesterEditExisting.test.ts +0 -102
  202. package/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/__tests__/HarvesterEditVMImage.test.ts +0 -117
  203. package/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/__tests__/HarvesterEditVolume.test.ts +0 -74
  204. package/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/container.vue +0 -132
  205. package/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/existing.vue +0 -303
  206. package/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/vmImage.vue +0 -285
  207. package/edit/kubevirt.io.virtualmachine/VirtualMachineVolume/type/volume.vue +0 -188
  208. package/edit/kubevirt.io.virtualmachine/index.vue +0 -642
  209. package/edit/network.harvesterhci.io.clusternetwork/index.vue +0 -19
  210. package/edit/network.harvesterhci.io.clusternetwork/vlan.vue +0 -134
  211. package/edit/workload/types/Deployment.vue +0 -377
  212. package/edit/workload/types/Generic.vue +0 -295
  213. package/list/harvesterhci.io.cloudtemplate.vue +0 -78
  214. package/list/harvesterhci.io.dashboard/HarvesterUpgrade.vue +0 -211
  215. package/list/harvesterhci.io.dashboard/UpgradeInfo.vue +0 -40
  216. package/list/harvesterhci.io.dashboard/index.vue +0 -752
  217. package/list/harvesterhci.io.host/index.vue +0 -186
  218. package/list/harvesterhci.io.networkattachmentdefinition.vue +0 -167
  219. package/list/harvesterhci.io.setting.vue +0 -241
  220. package/list/harvesterhci.io.virtualmachinebackup.vue +0 -172
  221. package/list/harvesterhci.io.virtualmachineimage.vue +0 -80
  222. package/list/harvesterhci.io.virtualmachinetemplateversion.vue +0 -173
  223. package/list/harvesterhci.io.volume.vue +0 -122
  224. package/list/kubevirt.io.virtualmachine.vue +0 -193
  225. package/mixins/harvester-vm/impl.js +0 -267
  226. package/mixins/harvester-vm/index.js +0 -1357
  227. package/models/harvester/configmap.js +0 -32
  228. package/models/harvester/harvesterhci.io.blockdevice.js +0 -55
  229. package/models/harvester/harvesterhci.io.keypair.js +0 -12
  230. package/models/harvester/harvesterhci.io.setting.js +0 -127
  231. package/models/harvester/harvesterhci.io.supportbundle.js +0 -35
  232. package/models/harvester/harvesterhci.io.upgrade.js +0 -226
  233. package/models/harvester/harvesterhci.io.virtualmachinebackup.js +0 -116
  234. package/models/harvester/harvesterhci.io.virtualmachineimage.js +0 -255
  235. package/models/harvester/harvesterhci.io.virtualmachinerestore.js +0 -43
  236. package/models/harvester/harvesterhci.io.virtualmachinetemplate.js +0 -69
  237. package/models/harvester/harvesterhci.io.virtualmachinetemplateversion.js +0 -227
  238. package/models/harvester/k8s.cni.cncf.io.networkattachmentdefinition.js +0 -32
  239. package/models/harvester/kubevirt.io.virtualmachine.js +0 -850
  240. package/models/harvester/kubevirt.io.virtualmachineinstance.js +0 -142
  241. package/models/harvester/management.cattle.io.managedchart.js +0 -191
  242. package/models/harvester/management.cattle.io.setting.js +0 -40
  243. package/models/harvester/network.harvesterhci.io.clusternetwork.js +0 -100
  244. package/models/harvester/network.harvesterhci.io.nodenetwork.js +0 -34
  245. package/models/harvester/node.js +0 -255
  246. package/models/harvester/persistentvolumeclaim.js +0 -166
  247. package/models/harvester/pod.js +0 -185
  248. package/pages/c/_cluster/harvester/airgapupgrade/index.vue +0 -309
  249. package/pages/c/_cluster/harvester/console/_uid/serial.vue +0 -51
  250. package/pages/c/_cluster/harvester/console/_uid/vnc.vue +0 -52
  251. package/pages/c/_cluster/harvester/index.vue +0 -24
  252. package/pages/c/_cluster/harvester/support/index.vue +0 -154
  253. package/pkg/model-loader.lib.js +0 -3
  254. package/promptRemove/kubevirt.io.virtualmachine.vue +0 -164
  255. package/store/harvester-common.js +0 -126
  256. package/utils/validators/vm-datavolumes.js +0 -38
  257. package/utils/validators/vm-image.js +0 -32
  258. package/utils/validators/vm.js +0 -221
@@ -1,172 +0,0 @@
1
- <script>
2
- import { LabeledInput } from '@components/Form/LabeledInput';
3
- import CreateEditView from '@shell/mixins/create-edit-view';
4
-
5
- export default {
6
- name: 'EditHarvesterMonitoring',
7
- components: { LabeledInput },
8
-
9
- mixins: [CreateEditView],
10
-
11
- props: {
12
- value: {
13
- type: Object,
14
- required: true,
15
- },
16
- },
17
-
18
- data() {
19
- return {};
20
- },
21
-
22
- created() {
23
- const resources = this.value.spec.values.prometheus.prometheusSpec.resources;
24
-
25
- if (!resources?.limits) {
26
- this.$set(resources, 'limits', {});
27
- }
28
-
29
- this.$set(resources.requests, 'cpu', resources?.requests?.cpu || '');
30
- this.$set(resources.requests, 'memory', resources?.requests?.memory || '');
31
- this.$set(resources.limits, 'cpu', resources?.limits?.cpu || '');
32
- this.$set(resources.limits, 'memory', resources?.limits?.memory || '');
33
- },
34
-
35
- computed: {
36
- doneLocationOverride() {
37
- return this.value.listLocation;
38
- },
39
-
40
- prometheusNodeExporter() {
41
- return this.value.spec.values['prometheus-node-exporter'];
42
- }
43
- },
44
- };
45
- </script>
46
-
47
- <template>
48
- <div>
49
- <h3>{{ t('harvester.setting.harvesterMonitoring.section.prometheus') }}</h3>
50
- <div class="row">
51
- <div class="col span-6">
52
- <LabeledInput
53
- v-model="value.spec.values.prometheus.prometheusSpec.scrapeInterval"
54
- :label="t('monitoring.prometheus.config.scrape')"
55
- :tooltip="t('harvester.setting.harvesterMonitoring.tips.scrape')"
56
- :required="true"
57
- :mode="mode"
58
- />
59
- </div>
60
- <div class="col span-6">
61
- <LabeledInput
62
- v-model="value.spec.values.prometheus.prometheusSpec.evaluationInterval"
63
- :label="t('monitoring.prometheus.config.evaluation')"
64
- :tooltip="t('harvester.setting.harvesterMonitoring.tips.evaluation')"
65
- :required="true"
66
- :mode="mode"
67
- />
68
- </div>
69
- </div>
70
- <div class="row mt-10">
71
- <div class="col span-6">
72
- <LabeledInput
73
- v-model="value.spec.values.prometheus.prometheusSpec.retention"
74
- :label="t('monitoring.prometheus.config.retention')"
75
- :tooltip="t('harvester.setting.harvesterMonitoring.tips.retention')"
76
- :required="true"
77
- :mode="mode"
78
- />
79
- </div>
80
- <div class="col span-6">
81
- <LabeledInput
82
- v-model="value.spec.values.prometheus.prometheusSpec.retentionSize"
83
- :label="t('monitoring.prometheus.config.retentionSize')"
84
- :tooltip="t('harvester.setting.harvesterMonitoring.tips.retentionSize')"
85
- :required="true"
86
- :mode="mode"
87
- />
88
- </div>
89
- </div>
90
- <div class="row mt-10">
91
- <div class="col span-12 mt-5">
92
- <h4 class="mb-0">
93
- {{ t('monitoring.prometheus.config.resourceLimits') }}
94
- </h4>
95
- </div>
96
- </div>
97
- <div class="row mt-10">
98
- <div class="col span-6">
99
- <LabeledInput
100
- v-model="value.spec.values.prometheus.prometheusSpec.resources.requests.cpu"
101
- :label="t('monitoring.prometheus.config.requests.cpu')"
102
- :required="true"
103
- :mode="mode"
104
- />
105
- </div>
106
- <div class="col span-6">
107
- <LabeledInput
108
- v-model="value.spec.values.prometheus.prometheusSpec.resources.requests.memory"
109
- :label="t('monitoring.prometheus.config.requests.memory')"
110
- :required="true"
111
- :mode="mode"
112
- />
113
- </div>
114
- </div>
115
- <div class="row mt-10">
116
- <div class="col span-6">
117
- <LabeledInput
118
- v-model="value.spec.values.prometheus.prometheusSpec.resources.limits.cpu"
119
- :label="t('monitoring.prometheus.config.limits.cpu')"
120
- :required="true"
121
- :mode="mode"
122
- />
123
- </div>
124
- <div class="col span-6">
125
- <LabeledInput
126
- v-model="value.spec.values.prometheus.prometheusSpec.resources.limits.memory"
127
- :label="t('monitoring.prometheus.config.limits.memory')"
128
- :required="true"
129
- :mode="mode"
130
- />
131
- </div>
132
- </div>
133
- <hr class="divider mt-30 mb-20" />
134
- <h3>{{ t('harvester.setting.harvesterMonitoring.section.prometheusNodeExporter') }}</h3>
135
- <div class="row mt-10">
136
- <div class="col span-6">
137
- <LabeledInput
138
- v-model="prometheusNodeExporter.resources.limits.cpu"
139
- :label="t('monitoring.prometheus.config.limits.cpu')"
140
- :required="true"
141
- :mode="mode"
142
- />
143
- </div>
144
- <div class="col span-6">
145
- <LabeledInput
146
- v-model="prometheusNodeExporter.resources.limits.memory"
147
- :label="t('monitoring.prometheus.config.limits.memory')"
148
- :required="true"
149
- :mode="mode"
150
- />
151
- </div>
152
- </div>
153
- <div class="row mt-10">
154
- <div class="col span-6">
155
- <LabeledInput
156
- v-model="prometheusNodeExporter.resources.requests.cpu"
157
- :label="t('monitoring.prometheus.config.requests.cpu')"
158
- :required="true"
159
- :mode="mode"
160
- />
161
- </div>
162
- <div class="col span-6">
163
- <LabeledInput
164
- v-model="prometheusNodeExporter.resources.requests.memory"
165
- :label="t('monitoring.prometheus.config.requests.memory')"
166
- :required="true"
167
- :mode="mode"
168
- />
169
- </div>
170
- </div>
171
- </div>
172
- </template>
@@ -1,210 +0,0 @@
1
- <script>
2
- import Tabbed from '@shell/components/Tabbed';
3
- import Tab from '@shell/components/Tabbed/Tab';
4
- import CruResource from '@shell/components/CruResource';
5
- import { LabeledInput } from '@components/Form/LabeledInput';
6
- import { RadioGroup } from '@components/Form/Radio';
7
- import NameNsDescription from '@shell/components/form/NameNsDescription';
8
-
9
- import { HCI } from '@shell/config/labels-annotations';
10
- import CreateEditView from '@shell/mixins/create-edit-view';
11
-
12
- const AUTO = 'auto';
13
- const MANUAL = 'manual';
14
-
15
- export default {
16
- components: {
17
- Tab,
18
- Tabbed,
19
- CruResource,
20
- LabeledInput,
21
- NameNsDescription,
22
- RadioGroup,
23
- },
24
-
25
- mixins: [CreateEditView],
26
-
27
- props: {
28
- value: {
29
- type: Object,
30
- required: true,
31
- }
32
- },
33
-
34
- data() {
35
- const config = JSON.parse(this.value.spec.config);
36
- const annotations = this.value?.metadata?.annotations || {};
37
- const layer3Network = JSON.parse(annotations[HCI.NETWORK_ROUTE] || '{}');
38
-
39
- return {
40
- config,
41
- type: 'L2VlanNetwork',
42
- layer3Network: {
43
- mode: layer3Network.mode || AUTO,
44
- serverIPAddr: layer3Network.serverIPAddr || '',
45
- cidr: layer3Network.cidr || '',
46
- gateway: layer3Network.gateway || '',
47
- },
48
- };
49
- },
50
-
51
- created() {
52
- if (this.registerBeforeHook) {
53
- this.registerBeforeHook(this.updateBeforeSave);
54
- }
55
- },
56
-
57
- computed: {
58
- modeOptions() {
59
- return [{
60
- label: this.t('harvester.network.layer3Network.mode.auto'),
61
- value: AUTO,
62
- }, {
63
- label: this.t('harvester.network.layer3Network.mode.manual'),
64
- value: MANUAL,
65
- }];
66
- },
67
- },
68
-
69
- methods: {
70
- async saveNetwork(buttonCb) {
71
- const errors = [];
72
-
73
- if (!this.config.vlan) {
74
- errors.push(this.$store.getters['i18n/t']('validation.required', { key: this.t('tableHeaders.networkVlan') }));
75
- }
76
-
77
- if (this.layer3Network.mode === MANUAL) {
78
- if (!this.layer3Network.gateway) {
79
- errors.push(this.$store.getters['i18n/t']('validation.required', { key: this.t('harvester.network.layer3Network.gateway.label') }));
80
- }
81
- if (!this.layer3Network.cidr) {
82
- errors.push(this.$store.getters['i18n/t']('validation.required', { key: this.t('harvester.network.layer3Network.cidr.label') }));
83
- }
84
- }
85
-
86
- if (errors.length > 0) {
87
- buttonCb(false);
88
- this.errors = errors;
89
-
90
- return false;
91
- }
92
-
93
- this.value.setAnnotation(HCI.NETWORK_ROUTE, JSON.stringify(this.layer3Network));
94
-
95
- await this.save(buttonCb);
96
- },
97
-
98
- input(neu) {
99
- const pattern = /^([1-9]|[1-9][0-9]{1,2}|[1-3][0-9]{3}|40[0-9][0-4])$/;
100
-
101
- if (!pattern.test(neu) && neu !== '') {
102
- this.config.vlan = neu > 4094 ? 4094 : 1;
103
- }
104
- },
105
-
106
- updateBeforeSave() {
107
- this.value.setLabel(HCI.NETWORK_TYPE, this.type);
108
- this.config.name = this.value.metadata.name;
109
- this.value.spec.config = JSON.stringify(this.config);
110
- }
111
- }
112
- };
113
- </script>
114
-
115
- <template>
116
- <CruResource
117
- :done-route="doneRoute"
118
- :resource="value"
119
- :mode="mode"
120
- :errors="errors"
121
- :apply-hooks="applyHooks"
122
- @finish="saveNetwork"
123
- >
124
- <NameNsDescription
125
- ref="nd"
126
- v-model="value"
127
- :mode="mode"
128
- />
129
-
130
- <Tabbed v-bind="$attrs" class="mt-15" :side-tabs="true">
131
- <Tab name="basics" :label="t('harvester.network.tabs.basics')" :weight="99" class="bordered-table">
132
- <LabeledInput
133
- v-model="type"
134
- class="mb-20"
135
- :label="t('harvester.fields.type')"
136
- :disabled="true"
137
- required
138
- />
139
-
140
- <LabeledInput
141
- v-model.number="config.vlan"
142
- v-int-number
143
- class="mb-20"
144
- required
145
- type="number"
146
- placeholder="e.g. 1-4094"
147
- :label="t('tableHeaders.networkVlan')"
148
- :mode="mode"
149
- @input="input"
150
- />
151
- </Tab>
152
- <Tab
153
- name="layer3Network"
154
- :label="t('harvester.network.tabs.layer3Network')"
155
- :weight="98"
156
- class="bordered-table"
157
- >
158
- <div class="row mt-10">
159
- <div class="col span-6">
160
- <RadioGroup
161
- v-model="layer3Network.mode"
162
- name="layer3NetworkMode"
163
- :label="t('harvester.network.layer3Network.mode.label')"
164
- :mode="mode"
165
- :options="modeOptions"
166
- />
167
- </div>
168
- </div>
169
- <div
170
- v-if="layer3Network.mode === 'auto'"
171
- class="row mt-10"
172
- >
173
- <div class="col span-6">
174
- <LabeledInput
175
- v-model="layer3Network.serverIPAddr"
176
- class="mb-20"
177
- :label="t('harvester.network.layer3Network.serverIPAddr.label')"
178
- :mode="mode"
179
- />
180
- </div>
181
- </div>
182
- <div
183
- v-else
184
- class="row mt-10"
185
- >
186
- <div class="col span-6">
187
- <LabeledInput
188
- v-model="layer3Network.cidr"
189
- class="mb-20"
190
- :label="t('harvester.network.layer3Network.cidr.label')"
191
- :placeholder="t('harvester.network.layer3Network.cidr.placeholder')"
192
- :mode="mode"
193
- required
194
- />
195
- </div>
196
- <div class="col span-6">
197
- <LabeledInput
198
- v-model="layer3Network.gateway"
199
- class="mb-20"
200
- :label="t('harvester.network.layer3Network.gateway.label')"
201
- :placeholder="t('harvester.network.layer3Network.gateway.placeholder')"
202
- :mode="mode"
203
- required
204
- />
205
- </div>
206
- </div>
207
- </Tab>
208
- </Tabbed>
209
- </CruResource>
210
- </template>
@@ -1,36 +0,0 @@
1
- <script>
2
- import CreateEditView from '@shell/mixins/create-edit-view';
3
- import FileSelector, { createOnSelected } from '@shell/components/form/FileSelector';
4
- import { TextAreaAutoGrow } from '@components/Form/TextArea';
5
-
6
- export default {
7
- name: 'HarvesterAdditionalCA',
8
-
9
- components: { FileSelector, TextAreaAutoGrow },
10
-
11
- mixins: [CreateEditView],
12
-
13
- methods: { onKeySelected: createOnSelected('value.value') },
14
- };
15
- </script>
16
-
17
- <template>
18
- <div>
19
- <div class="row mb-20">
20
- <div class="col span-12">
21
- <FileSelector
22
- class="btn btn-sm bg-primary mb-10"
23
- :label="t('generic.readFromFile')"
24
- @selected="onKeySelected"
25
- />
26
-
27
- <div>
28
- <TextAreaAutoGrow
29
- v-model="value.value"
30
- :min-height="254"
31
- />
32
- </div>
33
- </div>
34
- </div>
35
- </div>
36
- </template>
@@ -1,182 +0,0 @@
1
- <script>
2
- import Tip from '@shell/components/Tip';
3
- import { HCI_SETTING } from '@shell/config/settings';
4
- import Password from '@shell/components/form/Password';
5
- import MessageLink from '@shell/components/MessageLink';
6
- import CreateEditView from '@shell/mixins/create-edit-view';
7
- import { LabeledInput } from '@components/Form/LabeledInput';
8
- import LabeledSelect from '@shell/components/form/LabeledSelect';
9
-
10
- export default {
11
- name: 'HarvesterEditBackupTarget',
12
-
13
- components: {
14
- LabeledInput, LabeledSelect, Tip, Password, MessageLink
15
- },
16
-
17
- mixins: [CreateEditView],
18
-
19
- data() {
20
- let parseDefaultValue = {};
21
-
22
- try {
23
- parseDefaultValue = JSON.parse(this.value.value);
24
- } catch (error) {
25
- parseDefaultValue = JSON.parse(this.value.default);
26
- }
27
-
28
- if (!parseDefaultValue.type) {
29
- parseDefaultValue.type = 's3';
30
- }
31
-
32
- return {
33
- parseDefaultValue,
34
- errors: []
35
- };
36
- },
37
-
38
- computed: {
39
- typeOption() {
40
- return [{
41
- value: 'nfs',
42
- label: 'NFS'
43
- }, {
44
- value: 's3',
45
- label: 'S3'
46
- }];
47
- },
48
-
49
- virtualHostedStyleType() {
50
- return [{
51
- value: true,
52
- label: 'True'
53
- }, {
54
- value: false,
55
- label: 'False'
56
- }];
57
- },
58
-
59
- isS3() {
60
- return this.parseDefaultValue.type === 's3';
61
- },
62
-
63
- endpointPlaceholder() {
64
- return this.isS3 ? '' : 'nfs://server:/path/';
65
- },
66
-
67
- toCA() {
68
- return `${ HCI_SETTING.ADDITIONAL_CA }?mode=edit`;
69
- }
70
- },
71
-
72
- watch: {
73
- value: {
74
- handler(neu) {
75
- const parseDefaultValue = JSON.parse(neu.value);
76
-
77
- this.$set(this, 'parseDefaultValue', parseDefaultValue);
78
- },
79
- deep: true
80
- }
81
- },
82
-
83
- created() {
84
- this.update();
85
- },
86
-
87
- methods: {
88
- update() {
89
- if (!this.isS3) {
90
- delete this.parseDefaultValue.accessKeyId;
91
- delete this.parseDefaultValue.secretAccessKey;
92
- delete this.parseDefaultValue.bucketName;
93
- delete this.parseDefaultValue.bucketRegion;
94
- delete this.parseDefaultValue.virtualHostedStyle;
95
- delete this.parseDefaultValue.cert;
96
- }
97
-
98
- const value = JSON.stringify(this.parseDefaultValue);
99
-
100
- this.$set(this.value, 'value', value);
101
- },
102
- }
103
- };
104
- </script>
105
-
106
- <template>
107
- <div class="row" @input="update">
108
- <div class="col span-12">
109
- <LabeledSelect v-model="parseDefaultValue.type" class="mb-20" :label="t('harvester.fields.type')" :options="typeOption" @input="update" />
110
-
111
- <LabeledInput v-model="parseDefaultValue.endpoint" class="mb-5" :placeholder="endpointPlaceholder" :mode="mode" label="Endpoint" />
112
- <Tip class="mb-20" icon="icon icon-info" :text="t('harvester.backup.backupTargetTip')" />
113
-
114
- <template v-if="isS3">
115
- <LabeledInput
116
- v-model="parseDefaultValue.bucketName"
117
- class="mb-20"
118
- :mode="mode"
119
- label="Bucket Name"
120
- required
121
- />
122
-
123
- <LabeledInput
124
- v-model="parseDefaultValue.bucketRegion"
125
- class="mb-20"
126
- :mode="mode"
127
- label="Bucket Region"
128
- required
129
- />
130
-
131
- <LabeledInput
132
- v-model="parseDefaultValue.accessKeyId"
133
- :placeholder="t('harvester.setting.placeholder.accessKeyId')"
134
- class="mb-20"
135
- :mode="mode"
136
- label="Access Key ID"
137
- required
138
- />
139
-
140
- <Password
141
- v-model="parseDefaultValue.secretAccessKey"
142
- class="mb-20"
143
- :mode="mode"
144
- :placeholder="t('harvester.setting.placeholder.secretAccessKey')"
145
- label="Secret Access Key"
146
- required
147
- />
148
-
149
- <LabeledSelect v-model="parseDefaultValue.virtualHostedStyle" class="mb-20" label="Virtual Hosted-Style" :options="virtualHostedStyleType" @input="update" />
150
-
151
- <div class="mb-20">
152
- <Tip icon="icon icon-info">
153
- <MessageLink
154
- :to="toCA"
155
- target="_blank"
156
- prefix-label="harvester.setting.message.ca.prefix"
157
- middle-label="harvester.setting.message.ca.middle"
158
- suffix-label="harvester.setting.message.ca.suffix"
159
- />
160
- </Tip>
161
- </div>
162
- </template>
163
- </div>
164
- </div>
165
- </template>
166
-
167
- <style lang="scss" scoped>
168
- p {
169
- display: flex;
170
- align-items: center;
171
- }
172
- .icon-h-question {
173
- font-size: 24px;
174
- }
175
- .tip {
176
- font-size: 15px;
177
- }
178
-
179
- .goCA {
180
- margin: 0 3px;
181
- }
182
- </style>
@@ -1,79 +0,0 @@
1
- <script>
2
- import CreateEditView from '@shell/mixins/create-edit-view';
3
- import { LabeledInput } from '@components/Form/LabeledInput';
4
-
5
- export default {
6
- name: 'HarvesterHttpProxy',
7
-
8
- components: { LabeledInput },
9
-
10
- mixins: [CreateEditView],
11
-
12
- data() {
13
- let parseDefaultValue = {};
14
-
15
- try {
16
- parseDefaultValue = JSON.parse(this.value.value);
17
- } catch (error) {
18
- parseDefaultValue = JSON.parse(this.value.default);
19
- }
20
-
21
- return {
22
- parseDefaultValue,
23
- errors: []
24
- };
25
- },
26
-
27
- created() {
28
- this.update();
29
- },
30
-
31
- methods: {
32
- update() {
33
- const value = JSON.stringify(this.parseDefaultValue);
34
-
35
- this.$set(this.value, 'value', value);
36
- }
37
- },
38
-
39
- watch: {
40
- value: {
41
- handler(neu) {
42
- const parseDefaultValue = JSON.parse(neu.value);
43
-
44
- this.$set(this, 'parseDefaultValue', parseDefaultValue);
45
- },
46
- deep: true
47
- }
48
- }
49
- };
50
- </script>
51
-
52
- <template>
53
- <div class="row" @input="update">
54
- <div class="col span-12">
55
- <template>
56
- <LabeledInput
57
- v-model="parseDefaultValue.httpProxy"
58
- class="mb-20"
59
- :mode="mode"
60
- label="http-proxy"
61
- />
62
-
63
- <LabeledInput
64
- v-model="parseDefaultValue.httpsProxy"
65
- class="mb-20"
66
- :mode="mode"
67
- label="https-proxy"
68
- />
69
-
70
- <LabeledInput
71
- v-model="parseDefaultValue.noProxy"
72
- class="mb-20"
73
- :mode="mode"
74
- label="no-proxy"
75
- />
76
- </template>
77
- </div>
78
- </div>
79
- </template>