@rancher/shell 0.3.13 → 0.3.15
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.
- package/assets/images/providers/nutanix.svg +1 -0
- package/assets/translations/en-us.yaml +89 -2
- package/chart/gatekeeper.vue +2 -2
- package/chart/monitoring/alerting/index.vue +3 -3
- package/chart/monitoring/index.vue +2 -2
- package/chart/monitoring/prometheus/index.vue +1 -1
- package/chart/rancher-backup/index.vue +2 -2
- package/cloud-credential/harvester.vue +2 -2
- package/components/AssignTo.vue +1 -1
- package/components/AwsComplianceBanner.vue +1 -1
- package/components/BackLink.vue +7 -0
- package/components/BrandImage.vue +3 -3
- package/components/ClusterProviderIcon.vue +1 -1
- package/components/CommunityLinks.vue +2 -2
- package/components/ConsumptionGauge.vue +17 -2
- package/components/CruResource.vue +2 -1
- package/components/DashboardMetrics.vue +8 -0
- package/components/DetailTop.vue +1 -1
- package/components/ExplorerMembers.vue +8 -8
- package/components/ExplorerProjectsNamespaces.vue +9 -9
- package/components/FixedBanner.vue +1 -1
- package/components/GlobalRoleBindings.vue +11 -11
- package/components/GrafanaDashboard.vue +7 -1
- package/components/GrowlManager.vue +1 -1
- package/components/HarvesterServiceAddOnConfig.vue +117 -2
- package/components/IconOrSvg.vue +10 -3
- package/components/LandingPagePreference.vue +2 -2
- package/components/MoveModal.vue +1 -1
- package/components/PodSecurityAdmission.vue +3 -3
- package/components/ProgressBarMulti.vue +2 -2
- package/components/PromptRemove.vue +52 -28
- package/components/PromptRestore.vue +3 -3
- package/components/Questions/index.vue +5 -5
- package/components/RelatedWorkloadsTable.vue +1 -1
- package/components/ResourceList/Masthead.vue +1 -1
- package/components/ResourceTable.vue +3 -3
- package/components/ResourceYaml.vue +1 -1
- package/components/RoleBindings.vue +2 -2
- package/components/SingleClusterInfo.vue +1 -1
- package/components/SortableTable/actions.js +3 -3
- package/components/SortableTable/advanced-filtering.js +7 -7
- package/components/SortableTable/filtering.js +1 -1
- package/components/SortableTable/index.vue +9 -9
- package/components/SortableTable/selection.js +5 -5
- package/components/SortableTable/sorting.js +5 -5
- package/components/Tabbed/index.vue +7 -7
- package/components/TableSparkLine.vue +1 -1
- package/components/Wizard.vue +11 -23
- package/components/__tests__/Collapse.spec.ts +1 -1
- package/components/__tests__/CruResource.test.ts +74 -0
- package/components/__tests__/SimpleBox.spec.ts +1 -1
- package/components/auth/RoleDetailEdit.vue +7 -3
- package/components/auth/SelectPrincipal.vue +3 -3
- package/components/fleet/FleetResources.vue +1 -1
- package/components/fleet/FleetStatus.vue +4 -4
- package/components/fleet/FleetSummary.vue +1 -1
- package/components/fleet/ForceDirectedTreeChart/chartIcons.js +1 -1
- package/components/fleet/ForceDirectedTreeChart/index.vue +1 -1
- package/components/form/ArrayList.vue +11 -3
- package/components/form/ArrayListSelect.vue +2 -2
- package/components/form/FileSelector.vue +6 -0
- package/components/form/GitPicker.vue +528 -0
- package/components/form/KeyValue.vue +82 -41
- package/components/form/LabeledSelect.vue +2 -2
- package/components/form/MatchExpressions.vue +2 -2
- package/components/form/Members/ClusterMembershipEditor.vue +1 -2
- package/components/form/Members/ClusterPermissionsEditor.vue +6 -5
- package/components/form/Members/MembershipEditor.vue +4 -4
- package/components/form/Members/ProjectMembershipEditor.vue +1 -2
- package/components/form/NameNsDescription.vue +13 -6
- package/components/form/Networking.vue +2 -2
- package/components/form/NodeScheduling.vue +1 -1
- package/components/form/PodAffinity.vue +1 -1
- package/components/form/ProjectMemberEditor.vue +4 -4
- package/components/form/ResourceQuota/Namespace.vue +2 -2
- package/components/form/ResourceQuota/NamespaceRow.vue +2 -2
- package/components/form/ResourceQuota/Project.vue +1 -1
- package/components/form/ResourceQuota/shared.js +2 -2
- package/components/form/ResourceSelector.vue +1 -1
- package/components/form/ResourceTabs/index.vue +1 -1
- package/components/form/RuleSelector.vue +1 -1
- package/components/form/SecretSelector.vue +4 -4
- package/components/form/Select.vue +2 -2
- package/components/form/SelectOrCreateAuthSecret.vue +3 -3
- package/components/form/ServiceNameSelect.vue +1 -1
- package/components/form/ServicePorts.vue +1 -1
- package/components/form/ShellInput.vue +1 -1
- package/components/form/SimpleSecretSelector.vue +4 -4
- package/components/form/Taints.vue +1 -1
- package/components/form/ValueFromResource.vue +3 -3
- package/components/form/WorkloadPorts.vue +8 -7
- package/components/form/__tests__/Error.test.ts +1 -1
- package/components/form/__tests__/KeyValue.test.ts +21 -0
- package/components/formatter/ClusterLink.vue +1 -1
- package/components/formatter/ClusterProvider.vue +13 -2
- package/components/formatter/Endpoints.vue +1 -1
- package/components/formatter/FleetSummaryGraph.vue +2 -2
- package/components/formatter/IngressTarget.vue +2 -2
- package/components/formatter/PodImages.vue +1 -1
- package/components/formatter/PrincipalGroupBindings.vue +1 -1
- package/components/formatter/ReceiverIcons.vue +3 -3
- package/components/formatter/ServiceType.vue +1 -1
- package/components/formatter/WorkloadDetailEndpoints.vue +1 -1
- package/components/formatter/WorkloadHealthScale.vue +1 -1
- package/components/formatter/__tests__/LiveDate.test.ts +1 -1
- package/components/graph/Bar.vue +1 -1
- package/components/graph/LinePlot.vue +3 -3
- package/components/nav/Group.vue +2 -2
- package/components/nav/Header.vue +5 -5
- package/components/nav/NamespaceFilter.vue +14 -14
- package/components/nav/TopLevelMenu.vue +76 -11
- package/components/nav/WindowManager/ContainerLogs.vue +2 -2
- package/components/nav/WindowManager/ContainerShell.vue +1 -1
- package/components/nav/WorkspaceSwitcher.vue +1 -1
- package/config/home-links.js +4 -4
- package/config/labels-annotations.js +8 -8
- package/config/pod-security-admission.ts +1 -1
- package/config/product/auth.js +4 -4
- package/config/product/explorer.js +14 -0
- package/config/router.js +5 -0
- package/config/store.js +2 -0
- package/config/table-headers.js +13 -13
- package/config/uiplugins.js +8 -1
- package/core/plugin-routes.ts +3 -2
- package/core/plugin.ts +3 -3
- package/core/plugins.js +7 -7
- package/creators/app/files/.gitignore +0 -3
- package/creators/pkg/files/index.ts +1 -1
- package/detail/cis.cattle.io.clusterscan.vue +3 -3
- package/detail/fleet.cattle.io.bundle.vue +1 -1
- package/detail/helm.cattle.io.projecthelmchart.vue +16 -29
- package/detail/management.cattle.io.user.vue +12 -12
- package/detail/namespace.vue +4 -4
- package/detail/networking.k8s.io.ingress.vue +3 -3
- package/detail/node.vue +2 -2
- package/detail/provisioning.cattle.io.cluster.vue +9 -10
- package/detail/service.vue +1 -1
- package/detail/workload/index.vue +3 -3
- package/dialog/AddProjectMemberDialog.vue +2 -2
- package/dialog/DrainNode.vue +1 -1
- package/dialog/GenericPrompt.vue +9 -5
- package/dialog/RotateEncryptionKeyDialog.vue +2 -2
- package/dialog/ScaleMachineDownDialog.vue +2 -2
- package/edit/auth/azuread.vue +3 -3
- package/edit/autoscaling.horizontalpodautoscaler/index.vue +5 -5
- package/edit/cis.cattle.io.clusterscan.vue +5 -5
- package/edit/cloudcredential.vue +4 -4
- package/edit/constraints.gatekeeper.sh.constraint/NamespaceList.vue +1 -1
- package/edit/constraints.gatekeeper.sh.constraint/index.vue +4 -4
- package/edit/fleet.cattle.io.gitrepo.vue +6 -6
- package/edit/helm.cattle.io.projecthelmchart.vue +3 -3
- package/edit/logging-flow/index.vue +4 -4
- package/edit/logging.banzaicloud.io.output/index.vue +3 -3
- package/edit/logging.banzaicloud.io.output/providers/elasticsearch.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/forward.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/logz.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/opensearch.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/redis.vue +1 -1
- package/edit/logging.banzaicloud.io.output/providers/splunkHec.vue +1 -1
- package/edit/management.cattle.io.clusterroletemplatebinding.vue +1 -1
- package/edit/management.cattle.io.podsecurityadmissionconfigurationtemplate.vue +1 -1
- package/edit/management.cattle.io.project.vue +3 -3
- package/edit/management.cattle.io.projectroletemplatebinding.vue +2 -2
- package/edit/management.cattle.io.setting.vue +1 -1
- package/edit/management.cattle.io.user.vue +2 -2
- package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +2 -2
- package/edit/monitoring.coreos.com.alertmanagerconfig/index.vue +1 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +1 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +3 -3
- package/edit/monitoring.coreos.com.prometheusrule/GroupRules.vue +5 -5
- package/edit/monitoring.coreos.com.prometheusrule/duration.js +1 -1
- package/edit/monitoring.coreos.com.receiver/auth.vue +2 -2
- package/edit/monitoring.coreos.com.receiver/tls.vue +3 -4
- package/edit/monitoring.coreos.com.receiver/types/__tests__/email.test.ts +53 -0
- package/edit/monitoring.coreos.com.receiver/types/email.vue +2 -0
- package/edit/monitoring.coreos.com.receiver/types/opsgenie.vue +3 -3
- package/edit/monitoring.coreos.com.receiver/types/webhook.add.vue +1 -1
- package/edit/monitoring.coreos.com.route.vue +2 -2
- package/edit/namespace.vue +21 -13
- package/edit/networking.k8s.io.ingress/Certificate.vue +2 -2
- package/edit/networking.k8s.io.ingress/DefaultBackend.vue +2 -2
- package/edit/networking.k8s.io.ingress/RulePath.vue +2 -2
- package/edit/networking.k8s.io.ingress/Rules.vue +2 -2
- package/edit/networking.k8s.io.ingress/index.vue +4 -4
- package/edit/networking.k8s.io.networkpolicy/PolicyRuleTarget.vue +3 -3
- package/edit/networking.k8s.io.networkpolicy/index.vue +1 -1
- package/edit/persistentvolume/index.vue +4 -4
- package/edit/persistentvolumeclaim.vue +3 -3
- package/edit/provisioning.cattle.io.cluster/RegistryMirrors.vue +1 -1
- package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +2 -2
- package/edit/provisioning.cattle.io.cluster/import.vue +2 -2
- package/edit/provisioning.cattle.io.cluster/index.vue +7 -7
- package/edit/provisioning.cattle.io.cluster/rke2.vue +28 -29
- package/edit/resources.cattle.io.backup.vue +2 -2
- package/edit/resources.cattle.io.restore.vue +3 -3
- package/edit/secret/generic.vue +1 -1
- package/edit/secret/index.vue +3 -3
- package/edit/service.vue +3 -21
- package/edit/serviceaccount.vue +2 -2
- package/edit/storage.k8s.io.storageclass/index.vue +4 -4
- package/edit/storage.k8s.io.storageclass/provisioners/driver.harvesterhci.io.vue +1 -1
- package/edit/token.vue +5 -5
- package/edit/workload/index.vue +1 -1
- package/edit/workload/mixins/workload.js +8 -8
- package/edit/workload/storage/ContainerMountPaths.vue +9 -9
- package/edit/workload/storage/Mount.vue +2 -2
- package/edit/workload/storage/csi/index.vue +1 -1
- package/edit/workload/storage/ephemeralVolume/index.vue +1 -1
- package/edit/workload/storage/index.vue +6 -6
- package/edit/workload/storage/persistentVolumeClaim/persistentvolumeclaim.vue +2 -2
- package/initialize/client.js +8 -8
- package/initialize/index.js +1 -4
- package/layouts/default.vue +38 -11
- package/list/catalog.cattle.io.clusterrepo.vue +9 -1
- package/list/cis.cattle.io.clusterscan.vue +1 -1
- package/list/fleet.cattle.io.cluster.vue +2 -2
- package/list/group.principal.vue +1 -1
- package/list/helm.cattle.io.projecthelmchart.vue +2 -2
- package/list/management.cattle.io.cluster.vue +1 -1
- package/list/management.cattle.io.feature.vue +1 -1
- package/list/management.cattle.io.user.vue +2 -2
- package/list/node.vue +5 -5
- package/list/provisioning.cattle.io.cluster.vue +4 -5
- package/machine-config/amazonec2.vue +2 -2
- package/machine-config/digitalocean.vue +4 -4
- package/machine-config/linode.vue +4 -4
- package/machine-config/vmwarevsphere.vue +12 -12
- package/middleware/authenticated.js +7 -6
- package/mixins/brand.js +1 -1
- package/mixins/chart.js +6 -6
- package/mixins/fetch.client.js +2 -2
- package/mixins/form-validation.js +7 -7
- package/mixins/resource-fetch-namespaced.js +1 -1
- package/mixins/resource-fetch.js +2 -2
- package/models/apps.statefulset.js +2 -2
- package/models/batch.cronjob.js +1 -1
- package/models/catalog.cattle.io.app.js +4 -4
- package/models/cis.cattle.io.clusterscan.js +1 -1
- package/models/cis.cattle.io.clusterscanbenchmark.js +1 -1
- package/models/cis.cattle.io.clusterscanreport.js +1 -1
- package/models/cloudcredential.js +1 -1
- package/models/cluster/node.js +5 -5
- package/models/cluster.x-k8s.io.machinedeployment.js +2 -2
- package/models/fleet.cattle.io.gitrepo.js +3 -3
- package/models/group.principal.js +4 -4
- package/models/helm.cattle.io.projecthelmchart.js +2 -2
- package/models/logging.banzaicloud.io.clusterflow.js +2 -2
- package/models/logging.banzaicloud.io.flow.js +5 -5
- package/models/logging.banzaicloud.io.output.js +2 -2
- package/models/management.cattle.io.cluster.js +10 -14
- package/models/management.cattle.io.globalrole.js +4 -4
- package/models/management.cattle.io.node.js +2 -2
- package/models/management.cattle.io.nodepool.js +3 -3
- package/models/management.cattle.io.nodetemplate.js +4 -4
- package/models/management.cattle.io.project.js +2 -2
- package/models/management.cattle.io.roletemplate.js +1 -1
- package/models/management.cattle.io.setting.js +1 -1
- package/models/management.cattle.io.user.js +5 -5
- package/models/monitoring.coreos.com.receiver.js +9 -9
- package/models/namespace.js +1 -1
- package/models/networking.k8s.io.ingress.js +5 -5
- package/models/persistentvolume.js +3 -3
- package/models/pod.js +3 -3
- package/models/provisioning.cattle.io.cluster.js +39 -27
- package/models/rbac.authorization.k8s.io.clusterrole.js +2 -2
- package/models/rbac.authorization.k8s.io.role.js +3 -3
- package/models/secret.js +1 -1
- package/models/service.js +2 -2
- package/models/storage.k8s.io.storageclass.js +2 -2
- package/models/token.js +1 -1
- package/models/workload.js +6 -6
- package/models/workload.service.js +5 -21
- package/package.json +2 -1
- package/pages/about.vue +9 -9
- package/pages/account/index.vue +2 -2
- package/pages/auth/login.vue +15 -12
- package/pages/auth/verify.vue +6 -0
- package/pages/c/_cluster/apps/charts/index.vue +4 -4
- package/pages/c/_cluster/apps/charts/install.vue +28 -20
- package/pages/c/_cluster/auth/roles/index.vue +9 -9
- package/pages/c/_cluster/explorer/index.vue +41 -16
- package/pages/c/_cluster/explorer/tools/index.vue +8 -8
- package/pages/c/_cluster/fleet/GitRepoGraphConfig.js +1 -1
- package/pages/c/_cluster/fleet/index.vue +11 -11
- package/pages/c/_cluster/monitoring/index.vue +1 -1
- package/pages/c/_cluster/settings/links.vue +3 -3
- package/pages/c/_cluster/settings/performance.vue +1 -1
- package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +6 -6
- package/pages/c/_cluster/uiplugins/CatalogList/index.vue +3 -3
- package/pages/c/_cluster/uiplugins/InstallDialog.vue +3 -3
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +1 -1
- package/pages/c/_cluster/uiplugins/RemoveUIPlugins.vue +3 -3
- package/pages/c/_cluster/uiplugins/SetupUIPlugins.vue +6 -6
- package/pages/c/_cluster/uiplugins/UninstallDialog.vue +4 -4
- package/pages/c/_cluster/uiplugins/index.vue +22 -19
- package/pages/diagnostic.vue +6 -6
- package/pages/home.vue +3 -3
- package/pages/prefs.vue +2 -2
- package/pages/rio/mesh.vue +3 -3
- package/pages/support/index.vue +10 -1
- package/pkg/auto-import.js +1 -1
- package/pkg/tsconfig.json +1 -0
- package/pkg/vue.config.js +1 -1
- package/plugins/axios.js +1 -1
- package/plugins/clean-html-directive.js +1 -1
- package/plugins/dashboard-store/__tests__/mutations.spec.js +4 -4
- package/plugins/dashboard-store/actions.js +4 -4
- package/plugins/dashboard-store/getters.js +1 -1
- package/plugins/dashboard-store/index.js +1 -1
- package/plugins/dashboard-store/mutations.js +2 -2
- package/plugins/dashboard-store/resource-class.js +8 -8
- package/plugins/i18n.js +1 -1
- package/plugins/plugin.js +5 -1
- package/plugins/steve/actions.js +3 -3
- package/plugins/steve/getters.js +3 -3
- package/plugins/steve/hybrid-class.js +1 -1
- package/plugins/steve/mutations.js +1 -1
- package/plugins/steve/performanceTesting.js +1 -1
- package/plugins/steve/resourceWatcher.js +1 -1
- package/plugins/steve/subscribe.js +6 -6
- package/plugins/steve/worker/web-worker.basic.js +1 -1
- package/promptRemove/management.cattle.io.project.vue +3 -3
- package/promptRemove/mixin/roleDeletionCheck.js +4 -4
- package/promptRemove/pod.vue +1 -1
- package/rancher-components/StringList/StringList.test.ts +80 -0
- package/rancher-components/StringList/StringList.vue +577 -0
- package/rancher-components/StringList/index.ts +1 -0
- package/rancher-components/components/Form/Checkbox/Checkbox.test.ts +2 -2
- package/rancher-components/components/Form/Checkbox/Checkbox.vue +1 -1
- package/rancher-components/components/Form/Radio/RadioButton.test.ts +1 -1
- package/rancher-components/components/Form/Radio/RadioButton.vue +2 -2
- package/rancher-components/components/Form/Radio/RadioGroup.vue +2 -2
- package/rancher-components/components/Form/TextArea/TextAreaAutoGrow.vue +1 -0
- package/rancher-components/components/Form/ToggleSwitch/ToggleSwitch.test.ts +1 -1
- package/rancher-components/components/Form/ToggleSwitch/ToggleSwitch.vue +7 -7
- package/rancher-components/components/StringList/StringList.test.ts +10 -9
- package/rancher-components/components/StringList/StringList.vue +5 -5
- package/scripts/extension/helm/charts/ui-plugin-server/Chart.yaml +1 -1
- package/store/action-menu.js +4 -4
- package/store/auth.js +40 -7
- package/store/aws.js +1 -1
- package/store/catalog.js +12 -11
- package/store/digitalocean.js +4 -4
- package/store/features.js +1 -0
- package/store/github.js +70 -213
- package/store/gitlab.js +159 -0
- package/store/growl.js +1 -1
- package/store/i18n.js +7 -7
- package/store/index.js +63 -22
- package/store/linode.js +1 -1
- package/store/plugins.js +5 -5
- package/store/pnap.js +1 -1
- package/store/prefs.js +6 -6
- package/store/resource-fetch.js +3 -3
- package/store/type-map.js +61 -42
- package/store/uiplugins.ts +2 -1
- package/store/wm.js +5 -4
- package/tsconfig.default.json +10 -0
- package/tsconfig.json +2 -9
- package/types/shell/index.d.ts +12 -4
- package/utils/__tests__/version.test.ts +28 -0
- package/utils/alertmanagerconfig.js +4 -4
- package/utils/array.ts +4 -4
- package/utils/async.ts +1 -1
- package/utils/auth.js +3 -3
- package/utils/axios.js +5 -5
- package/utils/cluster.js +4 -3
- package/utils/color.js +10 -0
- package/utils/create-yaml.js +4 -4
- package/utils/crypto/browserHashUtils.js +1 -1
- package/utils/crypto/browserMd5.js +1 -1
- package/utils/crypto/browserSha1.js +1 -1
- package/utils/crypto/browserSha256.js +1 -1
- package/utils/crypto/index.js +3 -3
- package/utils/favicon.js +2 -3
- package/utils/gatekeeper/util.js +3 -3
- package/utils/gc/gc.ts +2 -2
- package/utils/git.ts +92 -0
- package/utils/grafana.js +4 -4
- package/utils/monitoring.js +2 -2
- package/utils/nuxt.js +2 -2
- package/utils/object.js +5 -5
- package/utils/pod-security-admission.ts +1 -1
- package/utils/projectAndNamespaceFiltering.utils.ts +1 -1
- package/utils/select.js +2 -2
- package/utils/selector.js +2 -2
- package/utils/settings.ts +17 -2
- package/utils/socket.js +30 -6
- package/utils/sort.js +1 -1
- package/utils/string.js +1 -1
- package/utils/url.ts +1 -1
- package/utils/validators/formRules/index.ts +3 -3
- package/utils/validators/role-template.js +4 -4
- package/utils/version.js +14 -1
- package/vue.config.js +19 -13
- package/components/form/GithubPicker.vue +0 -390
|
@@ -134,24 +134,24 @@ export default {
|
|
|
134
134
|
},
|
|
135
135
|
serviceTargets() {
|
|
136
136
|
return this.filterByCurrentResourceNamespace(this.allServices)
|
|
137
|
-
.map(service => ({
|
|
137
|
+
.map((service) => ({
|
|
138
138
|
label: service.metadata.name,
|
|
139
139
|
value: service.metadata.name,
|
|
140
|
-
ports: service.spec.ports?.map(p => p.port)
|
|
140
|
+
ports: service.spec.ports?.map((p) => p.port)
|
|
141
141
|
}));
|
|
142
142
|
},
|
|
143
143
|
firstTabLabel() {
|
|
144
144
|
return this.isView ? this.t('ingress.rulesAndCertificates.title') : this.t('ingress.rules.title');
|
|
145
145
|
},
|
|
146
146
|
certificates() {
|
|
147
|
-
return this.filterByCurrentResourceNamespace(this.allSecrets.filter(secret => secret._type === TYPES.TLS)).map((secret) => {
|
|
147
|
+
return this.filterByCurrentResourceNamespace(this.allSecrets.filter((secret) => secret._type === TYPES.TLS)).map((secret) => {
|
|
148
148
|
const { id } = secret;
|
|
149
149
|
|
|
150
150
|
return id.slice(id.indexOf('/') + 1);
|
|
151
151
|
});
|
|
152
152
|
},
|
|
153
153
|
ingressClasses() {
|
|
154
|
-
return this.allIngressClasses.map(ingressClass => ({
|
|
154
|
+
return this.allIngressClasses.map((ingressClass) => ({
|
|
155
155
|
label: ingressClass.metadata.name,
|
|
156
156
|
value: ingressClass.metadata.name,
|
|
157
157
|
}));
|
|
@@ -166,8 +166,8 @@ export default {
|
|
|
166
166
|
const exceptCidrs = this.value[TARGET_OPTIONS.IP_BLOCK]?.except || [];
|
|
167
167
|
|
|
168
168
|
this.invalidCidrs = exceptCidrs
|
|
169
|
-
.filter(cidr => !isValidCIDR(cidr))
|
|
170
|
-
.map(invalidCidr => invalidCidr || '<blank>');
|
|
169
|
+
.filter((cidr) => !isValidCIDR(cidr))
|
|
170
|
+
.map((invalidCidr) => invalidCidr || '<blank>');
|
|
171
171
|
|
|
172
172
|
if (this.value[TARGET_OPTIONS.IP_BLOCK]?.cidr && !isValidCIDR(this.value[TARGET_OPTIONS.IP_BLOCK].cidr)) {
|
|
173
173
|
this.invalidCidr = this.value[TARGET_OPTIONS.IP_BLOCK].cidr;
|
|
@@ -177,7 +177,7 @@ export default {
|
|
|
177
177
|
},
|
|
178
178
|
getMatchingPods() {
|
|
179
179
|
const namespaces = this.targetType === TARGET_OPTIONS.NAMESPACE_AND_POD_SELECTOR ? this.matchingNamespaces.matches : [{ id: this.namespace }];
|
|
180
|
-
const allInNamespace = this.allPods.filter(pod => namespaces.some(ns => ns.id === pod.metadata.namespace));
|
|
180
|
+
const allInNamespace = this.allPods.filter((pod) => namespaces.some((ns) => ns.id === pod.metadata.namespace));
|
|
181
181
|
const match = matching(allInNamespace, this.podSelectorExpressions);
|
|
182
182
|
const matched = match.length || 0;
|
|
183
183
|
const sample = match[0]?.nameDisplay;
|
|
@@ -146,7 +146,7 @@ export default {
|
|
|
146
146
|
|
|
147
147
|
methods: {
|
|
148
148
|
updateMatchingPods: throttle(function() {
|
|
149
|
-
const allInNamespace = this.allPods.filter(pod => pod.metadata.namespace === this.value.metadata.namespace);
|
|
149
|
+
const allInNamespace = this.allPods.filter((pod) => pod.metadata.namespace === this.value.metadata.namespace);
|
|
150
150
|
const match = matching(allInNamespace, this.podSelectorExpressions);
|
|
151
151
|
const matched = match.length || 0;
|
|
152
152
|
const sample = match[0]?.nameDisplay;
|
|
@@ -53,7 +53,7 @@ export default {
|
|
|
53
53
|
var: 'currentClaim',
|
|
54
54
|
classify: true,
|
|
55
55
|
parsingFunc: (data) => {
|
|
56
|
-
return data.find(claim => claim.spec.volumeName === this.value.name);
|
|
56
|
+
return data.find((claim) => claim.spec.volumeName === this.value.name);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
]
|
|
@@ -76,7 +76,7 @@ export default {
|
|
|
76
76
|
this.$set(this.value.spec.capacity, 'storage', this.value.spec.capacity.storage || '10Gi');
|
|
77
77
|
this.$set(this.value.spec, 'storageClassName', this.value.spec.storageClassName || NONE_OPTION.value);
|
|
78
78
|
|
|
79
|
-
const foundPlugin = this.value.isLonghorn ? LONGHORN_PLUGIN : VOLUME_PLUGINS.find(plugin => this.value.spec[plugin.value]);
|
|
79
|
+
const foundPlugin = this.value.isLonghorn ? LONGHORN_PLUGIN : VOLUME_PLUGINS.find((plugin) => this.value.spec[plugin.value]);
|
|
80
80
|
const plugin = (foundPlugin || VOLUME_PLUGINS[0]).value;
|
|
81
81
|
|
|
82
82
|
return {
|
|
@@ -145,7 +145,7 @@ export default {
|
|
|
145
145
|
return this.plugin === 'local';
|
|
146
146
|
},
|
|
147
147
|
plugins() {
|
|
148
|
-
return VOLUME_PLUGINS.filter(plugin => this.showUnsupportedStorage || plugin.supported);
|
|
148
|
+
return VOLUME_PLUGINS.filter((plugin) => this.showUnsupportedStorage || plugin.supported);
|
|
149
149
|
}
|
|
150
150
|
},
|
|
151
151
|
|
|
@@ -163,7 +163,7 @@ export default {
|
|
|
163
163
|
{
|
|
164
164
|
var: 'storageClassOptions',
|
|
165
165
|
parsingFunc: (data) => {
|
|
166
|
-
const storageClassOptions = data.map(s => ({
|
|
166
|
+
const storageClassOptions = data.map((s) => ({
|
|
167
167
|
label: s.metadata.name,
|
|
168
168
|
value: s.metadata.name
|
|
169
169
|
}));
|
|
@@ -45,7 +45,7 @@ export default {
|
|
|
45
45
|
this.resourceManagerFetchSecondaryResources(this.secondaryResourceData);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
this.storageClassOptions = storageClasses.map(s => s.name).sort();
|
|
48
|
+
this.storageClassOptions = storageClasses.map((s) => s.name).sort();
|
|
49
49
|
this.storageClassOptions.unshift(this.t('persistentVolumeClaim.useDefault'));
|
|
50
50
|
|
|
51
51
|
this.$set(this.value.spec, 'storageClassName', this.value.spec.storageClassName || this.storageClassOptions[0]);
|
|
@@ -119,7 +119,7 @@ export default {
|
|
|
119
119
|
return this.value.spec.volumeName;
|
|
120
120
|
},
|
|
121
121
|
set(value) {
|
|
122
|
-
const persistentVolume = this.persistentVolumes.find(pv => pv.metadata.name === value);
|
|
122
|
+
const persistentVolume = this.persistentVolumes.find((pv) => pv.metadata.name === value);
|
|
123
123
|
|
|
124
124
|
this.$set(this.value.spec, 'storageClassName', '');
|
|
125
125
|
|
|
@@ -194,7 +194,7 @@ export default {
|
|
|
194
194
|
}
|
|
195
195
|
},
|
|
196
196
|
isPersistentVolumeSelectable(option) {
|
|
197
|
-
const persistentVolume = this.persistentVolumes.find(pv => pv.metadata.name === option.value);
|
|
197
|
+
const persistentVolume = this.persistentVolumes.find((pv) => pv.metadata.name === option.value);
|
|
198
198
|
|
|
199
199
|
return persistentVolume.status.phase === 'Available';
|
|
200
200
|
},
|
|
@@ -61,7 +61,7 @@ export default {
|
|
|
61
61
|
continue;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
mirrors[entry.hostname] = { endpoint: entry.endpoints.split(/\s*,\s*/).map(x => x.trim()) };
|
|
64
|
+
mirrors[entry.hostname] = { endpoint: entry.endpoints.split(/\s*,\s*/).map((x) => x.trim()) };
|
|
65
65
|
if (entry.rewrite) {
|
|
66
66
|
mirrors[entry.hostname].rewrite = entry.rewrite;
|
|
67
67
|
}
|
|
@@ -98,7 +98,7 @@ export default {
|
|
|
98
98
|
},
|
|
99
99
|
|
|
100
100
|
filteredCredentials() {
|
|
101
|
-
return this.allCredentials.filter(x => x.provider === this.driverName);
|
|
101
|
+
return this.allCredentials.filter((x) => x.provider === this.driverName);
|
|
102
102
|
},
|
|
103
103
|
|
|
104
104
|
options() {
|
|
@@ -109,7 +109,7 @@ export default {
|
|
|
109
109
|
};
|
|
110
110
|
});
|
|
111
111
|
|
|
112
|
-
if ( this.originalId && !out.find(x => x.value === this.originalId) ) {
|
|
112
|
+
if ( this.originalId && !out.find((x) => x.value === this.originalId) ) {
|
|
113
113
|
out.unshift({
|
|
114
114
|
label: `${ this.originalId.replace(/^cattle-global-data:/, '') } (current)`,
|
|
115
115
|
value: this.originalId
|
|
@@ -7,9 +7,9 @@ import NameNsDescription from '@shell/components/form/NameNsDescription';
|
|
|
7
7
|
import Tab from '@shell/components/Tabbed/Tab';
|
|
8
8
|
import Tabbed from '@shell/components/Tabbed';
|
|
9
9
|
import { CAPI, HCI } from '@shell/config/types';
|
|
10
|
-
import ClusterMembershipEditor from '@shell/components/form/Members/ClusterMembershipEditor';
|
|
10
|
+
import ClusterMembershipEditor, { canViewClusterMembershipEditor } from '@shell/components/form/Members/ClusterMembershipEditor';
|
|
11
11
|
import { Banner } from '@components/Banner';
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
import { NAME as HARVESTER_MANAGER } from '@shell/config/harvester-manager-types';
|
|
14
14
|
import { HARVESTER as HARVESTER_FEATURE, mapFeature } from '@shell/store/features';
|
|
15
15
|
import { addObject } from '@shell/utils/array';
|
|
@@ -185,7 +185,7 @@ export default {
|
|
|
185
185
|
if ( this.subType ) {
|
|
186
186
|
// For RKE1 and hosted Kubernetes Clusters, set the ember link
|
|
187
187
|
// so that we load the page rather than using RKE2 create
|
|
188
|
-
const selected = this.subTypes.find(s => s.id === this.subType);
|
|
188
|
+
const selected = this.subTypes.find((s) => s.id === this.subType);
|
|
189
189
|
|
|
190
190
|
if (selected?.link) {
|
|
191
191
|
return selected.link;
|
|
@@ -244,15 +244,15 @@ export default {
|
|
|
244
244
|
subTypes() {
|
|
245
245
|
const getters = this.$store.getters;
|
|
246
246
|
const isImport = this.isImport;
|
|
247
|
-
const isElementalActive = !!this.activeProducts.find(item => item.name === ELEMENTAL_PRODUCT_NAME);
|
|
247
|
+
const isElementalActive = !!this.activeProducts.find((item) => item.name === ELEMENTAL_PRODUCT_NAME);
|
|
248
248
|
|
|
249
249
|
const out = [];
|
|
250
250
|
|
|
251
251
|
const templates = this.templateOptions;
|
|
252
252
|
const vueKontainerTypes = getters['plugins/clusterDrivers'];
|
|
253
|
-
const machineTypes = this.nodeDrivers.filter(x => x.spec.active && x.state === 'active').map(x => x.spec.displayName || x.id);
|
|
253
|
+
const machineTypes = this.nodeDrivers.filter((x) => x.spec.active && x.state === 'active').map((x) => x.spec.displayName || x.id);
|
|
254
254
|
|
|
255
|
-
this.kontainerDrivers.filter(x => (isImport ? x.showImport : x.showCreate)).forEach((obj) => {
|
|
255
|
+
this.kontainerDrivers.filter((x) => (isImport ? x.showImport : x.showCreate)).forEach((obj) => {
|
|
256
256
|
if ( vueKontainerTypes.includes(obj.driverName) ) {
|
|
257
257
|
addType(obj.driverName, 'kontainer', false);
|
|
258
258
|
} else {
|
|
@@ -357,11 +357,11 @@ export default {
|
|
|
357
357
|
},
|
|
358
358
|
|
|
359
359
|
firstNodeDriverItem() {
|
|
360
|
-
return this.groupedSubTypes.findIndex(obj => [_RKE1, _RKE2].includes(obj.name));
|
|
360
|
+
return this.groupedSubTypes.findIndex((obj) => [_RKE1, _RKE2].includes(obj.name));
|
|
361
361
|
},
|
|
362
362
|
|
|
363
363
|
firstCustomClusterItem() {
|
|
364
|
-
return this.groupedSubTypes.findIndex(obj => ['custom', 'custom1', 'custom2'].includes(obj.name));
|
|
364
|
+
return this.groupedSubTypes.findIndex((obj) => ['custom', 'custom1', 'custom2'].includes(obj.name));
|
|
365
365
|
},
|
|
366
366
|
},
|
|
367
367
|
|
|
@@ -426,7 +426,7 @@ export default {
|
|
|
426
426
|
let localCluster;
|
|
427
427
|
|
|
428
428
|
if (this.$store.getters[`management/canList`](MANAGEMENT.CLUSTER)) {
|
|
429
|
-
localCluster = this.$store.getters['management/all'](MANAGEMENT.CLUSTER).find(x => x.isLocal);
|
|
429
|
+
localCluster = this.$store.getters['management/all'](MANAGEMENT.CLUSTER).find((x) => x.isLocal);
|
|
430
430
|
}
|
|
431
431
|
|
|
432
432
|
chart.goToInstall(FROM_CLUSTER, localCluster?.id || BLANK_CLUSTER, true);
|
|
@@ -42,7 +42,7 @@ import { LabeledInput } from '@components/Form/LabeledInput';
|
|
|
42
42
|
import LabeledSelect from '@shell/components/form/LabeledSelect';
|
|
43
43
|
import Loading from '@shell/components/Loading';
|
|
44
44
|
import MatchExpressions from '@shell/components/form/MatchExpressions';
|
|
45
|
-
import NameNsDescription from '@shell/components/form/NameNsDescription';
|
|
45
|
+
import NameNsDescription, { normalizeName } from '@shell/components/form/NameNsDescription';
|
|
46
46
|
import { RadioGroup } from '@components/Form/Radio';
|
|
47
47
|
import Tab from '@shell/components/Tabbed/Tab';
|
|
48
48
|
import Tabbed from '@shell/components/Tabbed';
|
|
@@ -50,12 +50,11 @@ import UnitInput from '@shell/components/form/UnitInput';
|
|
|
50
50
|
import YamlEditor from '@shell/components/YamlEditor';
|
|
51
51
|
import Questions from '@shell/components/Questions';
|
|
52
52
|
|
|
53
|
-
import {
|
|
54
|
-
import ClusterMembershipEditor from '@shell/components/form/Members/ClusterMembershipEditor';
|
|
53
|
+
import ClusterMembershipEditor, { canViewClusterMembershipEditor } from '@shell/components/form/Members/ClusterMembershipEditor';
|
|
55
54
|
import SelectOrCreateAuthSecret from '@shell/components/form/SelectOrCreateAuthSecret';
|
|
56
55
|
import { LEGACY } from '@shell/store/features';
|
|
57
56
|
import semver from 'semver';
|
|
58
|
-
|
|
57
|
+
|
|
59
58
|
import { SETTING } from '@shell/config/settings';
|
|
60
59
|
import { base64Encode } from '@shell/utils/crypto';
|
|
61
60
|
import { CAPI as CAPI_ANNOTATIONS } from '@shell/config/labels-annotations';
|
|
@@ -174,8 +173,8 @@ export default {
|
|
|
174
173
|
|
|
175
174
|
// Get the latest versions from the global settings if possible
|
|
176
175
|
const globalSettings = await this.$store.getters['management/all'](MANAGEMENT.SETTING) || [];
|
|
177
|
-
const defaultRke2Setting = globalSettings.find(setting => setting.id === 'rke2-default-version') || {};
|
|
178
|
-
const defaultK3sSetting = globalSettings.find(setting => setting.id === 'k3s-default-version') || {};
|
|
176
|
+
const defaultRke2Setting = globalSettings.find((setting) => setting.id === 'rke2-default-version') || {};
|
|
177
|
+
const defaultK3sSetting = globalSettings.find((setting) => setting.id === 'k3s-default-version') || {};
|
|
179
178
|
|
|
180
179
|
let defaultRke2 = defaultRke2Setting?.value || defaultRke2Setting?.default;
|
|
181
180
|
let defaultK3s = defaultK3sSetting?.value || defaultK3sSetting?.default;
|
|
@@ -200,13 +199,13 @@ export default {
|
|
|
200
199
|
if (!defaultRke2) {
|
|
201
200
|
const rke2Channels = res.rke2Channels.data || [];
|
|
202
201
|
|
|
203
|
-
defaultRke2 = rke2Channels.find(x => x.id === 'default')?.latest;
|
|
202
|
+
defaultRke2 = rke2Channels.find((x) => x.id === 'default')?.latest;
|
|
204
203
|
}
|
|
205
204
|
|
|
206
205
|
if (!defaultK3s) {
|
|
207
206
|
const k3sChannels = res.k3sChannels.data || [];
|
|
208
207
|
|
|
209
|
-
defaultK3s = k3sChannels.find(x => x.id === 'default')?.latest;
|
|
208
|
+
defaultK3s = k3sChannels.find((x) => x.id === 'default')?.latest;
|
|
210
209
|
}
|
|
211
210
|
|
|
212
211
|
if ( !this.rke2Versions.length && !this.k3sVersions.length ) {
|
|
@@ -226,7 +225,7 @@ export default {
|
|
|
226
225
|
set(this.value.spec, 'machineSelectorConfig', []);
|
|
227
226
|
}
|
|
228
227
|
|
|
229
|
-
if ( !this.value.spec.machineSelectorConfig.find(x => !x.machineLabelSelector) ) {
|
|
228
|
+
if ( !this.value.spec.machineSelectorConfig.find((x) => !x.machineLabelSelector) ) {
|
|
230
229
|
this.value.spec.machineSelectorConfig.unshift({ config: {} });
|
|
231
230
|
}
|
|
232
231
|
|
|
@@ -505,7 +504,7 @@ export default {
|
|
|
505
504
|
}
|
|
506
505
|
|
|
507
506
|
if ( cur ) {
|
|
508
|
-
const existing = out.find(x => x.value === cur);
|
|
507
|
+
const existing = out.find((x) => x.value === cur);
|
|
509
508
|
|
|
510
509
|
if ( existing ) {
|
|
511
510
|
existing.disabled = false;
|
|
@@ -562,7 +561,7 @@ export default {
|
|
|
562
561
|
|
|
563
562
|
const cur = this.value.spec.defaultPodSecurityPolicyTemplateName;
|
|
564
563
|
|
|
565
|
-
if ( cur && !out.find(x => x.value === cur) ) {
|
|
564
|
+
if ( cur && !out.find((x) => x.value === cur) ) {
|
|
566
565
|
out.unshift({ label: `${ cur } (Current)`, value: cur });
|
|
567
566
|
}
|
|
568
567
|
|
|
@@ -609,7 +608,7 @@ export default {
|
|
|
609
608
|
}
|
|
610
609
|
const cur = this.value.spec.defaultPodSecurityAdmissionConfigurationTemplateName;
|
|
611
610
|
|
|
612
|
-
if ( cur && !out.find(x => x.value === cur) ) {
|
|
611
|
+
if ( cur && !out.find((x) => x.value === cur) ) {
|
|
613
612
|
out.unshift({ label: `${ cur } (Current)`, value: cur });
|
|
614
613
|
}
|
|
615
614
|
|
|
@@ -622,7 +621,7 @@ export default {
|
|
|
622
621
|
isCisSupported() {
|
|
623
622
|
const cisProfile = this.serverConfig.profile || this.agentConfig.profile;
|
|
624
623
|
|
|
625
|
-
return !cisProfile || this.profileOptions.map(option => option.value).includes(cisProfile);
|
|
624
|
+
return !cisProfile || this.profileOptions.map((option) => option.value).includes(cisProfile);
|
|
626
625
|
},
|
|
627
626
|
|
|
628
627
|
disableOptions() {
|
|
@@ -665,7 +664,7 @@ export default {
|
|
|
665
664
|
|
|
666
665
|
const cur = this.agentConfig['cloud-provider-name'];
|
|
667
666
|
|
|
668
|
-
if ( cur && !out.find(x => x.value === cur) ) {
|
|
667
|
+
if ( cur && !out.find((x) => x.value === cur) ) {
|
|
669
668
|
out.unshift({ label: `${ cur } (Current)`, value: cur });
|
|
670
669
|
}
|
|
671
670
|
|
|
@@ -732,7 +731,7 @@ export default {
|
|
|
732
731
|
},
|
|
733
732
|
|
|
734
733
|
unremovedMachinePools() {
|
|
735
|
-
return (this.machinePools || []).filter(x => !x.remove);
|
|
734
|
+
return (this.machinePools || []).filter((x) => !x.remove);
|
|
736
735
|
},
|
|
737
736
|
|
|
738
737
|
machineConfigSchema() {
|
|
@@ -870,7 +869,7 @@ export default {
|
|
|
870
869
|
const cni = this.serverConfig.cni;
|
|
871
870
|
|
|
872
871
|
if ( cni ) {
|
|
873
|
-
const parts = cni.split(',').map(x => `rke2-${ x }`);
|
|
872
|
+
const parts = cni.split(',').map((x) => `rke2-${ x }`);
|
|
874
873
|
|
|
875
874
|
names.push(...parts);
|
|
876
875
|
}
|
|
@@ -889,9 +888,9 @@ export default {
|
|
|
889
888
|
},
|
|
890
889
|
|
|
891
890
|
addonVersions() {
|
|
892
|
-
const versions = this.addonNames.map(name => this.chartVersionFor(name));
|
|
891
|
+
const versions = this.addonNames.map((name) => this.chartVersionFor(name));
|
|
893
892
|
|
|
894
|
-
return versions.filter(x => !!x);
|
|
893
|
+
return versions.filter((x) => !!x);
|
|
895
894
|
},
|
|
896
895
|
|
|
897
896
|
showk8s21LegacyWarning() {
|
|
@@ -914,9 +913,9 @@ export default {
|
|
|
914
913
|
},
|
|
915
914
|
|
|
916
915
|
defaultVersion() {
|
|
917
|
-
const all = this.versionOptions.filter(x => !!x.value);
|
|
916
|
+
const all = this.versionOptions.filter((x) => !!x.value);
|
|
918
917
|
const first = all[0]?.value;
|
|
919
|
-
const preferred = all.find(x => x.value === this.defaultRke2)?.value;
|
|
918
|
+
const preferred = all.find((x) => x.value === this.defaultRke2)?.value;
|
|
920
919
|
|
|
921
920
|
const rke2 = this.getAllOptionsAfterCurrentVersion(this.rke2Versions, null);
|
|
922
921
|
const showRke2 = rke2.length;
|
|
@@ -1037,7 +1036,7 @@ export default {
|
|
|
1037
1036
|
let base = (this.provider === 'custom' || this.isElementalCluster || !!this.credentialId);
|
|
1038
1037
|
|
|
1039
1038
|
// and in all of the validation statuses for each machine pool
|
|
1040
|
-
Object.values(this.machinePoolValidation).forEach(v => (base = base && v));
|
|
1039
|
+
Object.values(this.machinePoolValidation).forEach((v) => (base = base && v));
|
|
1041
1040
|
|
|
1042
1041
|
return validRequiredPools && base;
|
|
1043
1042
|
},
|
|
@@ -1362,7 +1361,7 @@ export default {
|
|
|
1362
1361
|
* Ensure that all the existing node roles pool are at least 1 each
|
|
1363
1362
|
*/
|
|
1364
1363
|
hasRequiredNodes() {
|
|
1365
|
-
return this.nodeTotals?.color && Object.values(this.nodeTotals.color).every(color => color !== NODE_TOTAL.error.color);
|
|
1364
|
+
return this.nodeTotals?.color && Object.values(this.nodeTotals.color).every((color) => color !== NODE_TOTAL.error.color);
|
|
1366
1365
|
},
|
|
1367
1366
|
|
|
1368
1367
|
cancelCredential() {
|
|
@@ -1395,7 +1394,7 @@ export default {
|
|
|
1395
1394
|
return new Promise((resolve, reject) => {
|
|
1396
1395
|
this.$store.dispatch('cluster/promptModal', {
|
|
1397
1396
|
component: 'AddonConfigConfirmationDialog',
|
|
1398
|
-
resources: [value => resolve(value)]
|
|
1397
|
+
resources: [(value) => resolve(value)]
|
|
1399
1398
|
});
|
|
1400
1399
|
});
|
|
1401
1400
|
},
|
|
@@ -1451,7 +1450,7 @@ export default {
|
|
|
1451
1450
|
}
|
|
1452
1451
|
|
|
1453
1452
|
if (this.value.cloudProvider === 'aws') {
|
|
1454
|
-
const missingProfileName = this.machinePools.some(mp => !mp.config.iamInstanceProfile);
|
|
1453
|
+
const missingProfileName = this.machinePools.some((mp) => !mp.config.iamInstanceProfile);
|
|
1455
1454
|
|
|
1456
1455
|
if (missingProfileName) {
|
|
1457
1456
|
this.errors.push(this.t('cluster.validation.iamInstanceProfileName', {}, true));
|
|
@@ -1620,7 +1619,7 @@ export default {
|
|
|
1620
1619
|
},
|
|
1621
1620
|
|
|
1622
1621
|
refreshYamls() {
|
|
1623
|
-
const keys = Object.keys(this.$refs).filter(x => x.startsWith('yaml'));
|
|
1622
|
+
const keys = Object.keys(this.$refs).filter((x) => x.startsWith('yaml'));
|
|
1624
1623
|
|
|
1625
1624
|
for ( const k of keys ) {
|
|
1626
1625
|
const entry = this.$refs[k];
|
|
@@ -1689,7 +1688,7 @@ export default {
|
|
|
1689
1688
|
},
|
|
1690
1689
|
|
|
1691
1690
|
chartVersionKey(name) {
|
|
1692
|
-
const addonVersion = this.addonVersions.find(av => av.name === name);
|
|
1691
|
+
const addonVersion = this.addonVersions.find((av) => av.name === name);
|
|
1693
1692
|
|
|
1694
1693
|
return addonVersion ? `${ name }-${ addonVersion.version }` : name;
|
|
1695
1694
|
},
|
|
@@ -1813,7 +1812,7 @@ export default {
|
|
|
1813
1812
|
},
|
|
1814
1813
|
|
|
1815
1814
|
getAllOptionsAfterCurrentVersion(versions, currentVersion, defaultVersion) {
|
|
1816
|
-
const out = (versions || []).filter(obj => !!obj.serverArgs).map((obj) => {
|
|
1815
|
+
const out = (versions || []).filter((obj) => !!obj.serverArgs).map((obj) => {
|
|
1817
1816
|
let disabled = false;
|
|
1818
1817
|
let experimental = false;
|
|
1819
1818
|
let isCurrentVersion = false;
|
|
@@ -1847,7 +1846,7 @@ export default {
|
|
|
1847
1846
|
};
|
|
1848
1847
|
});
|
|
1849
1848
|
|
|
1850
|
-
if (currentVersion && !out.find(obj => obj.value === currentVersion)) {
|
|
1849
|
+
if (currentVersion && !out.find((obj) => obj.value === currentVersion)) {
|
|
1851
1850
|
out.push({
|
|
1852
1851
|
label: `${ currentVersion } ${ this.t('cluster.kubernetesVersion.current') }`,
|
|
1853
1852
|
value: currentVersion,
|
|
@@ -1963,7 +1962,7 @@ export default {
|
|
|
1963
1962
|
const url = `/k8s/clusters/${ clusterId }/v1`;
|
|
1964
1963
|
const res = await this.$store.dispatch('cluster/request', { url: `${ url }/${ HCI.SETTING }s` });
|
|
1965
1964
|
|
|
1966
|
-
const version = (res?.data || []).find(s => s.id === 'harvester-csi-ccm-versions');
|
|
1965
|
+
const version = (res?.data || []).find((s) => s.id === 'harvester-csi-ccm-versions');
|
|
1967
1966
|
|
|
1968
1967
|
if (version) {
|
|
1969
1968
|
this.harvesterVersionRange = JSON.parse(version.value || version.default || '{}');
|
|
@@ -102,13 +102,13 @@ export default {
|
|
|
102
102
|
},
|
|
103
103
|
|
|
104
104
|
chartNamespace() {
|
|
105
|
-
const BRORelease = this.apps.filter(release => get(release, 'spec.name') === 'rancher-backup')[0];
|
|
105
|
+
const BRORelease = this.apps.filter((release) => get(release, 'spec.name') === 'rancher-backup')[0];
|
|
106
106
|
|
|
107
107
|
return BRORelease ? BRORelease.spec.namespace : '';
|
|
108
108
|
},
|
|
109
109
|
|
|
110
110
|
encryptionSecretNames() {
|
|
111
|
-
return this.allSecrets.filter(secret => (secret.data || {})['encryption-provider-config.yaml'] && secret.metadata.namespace === this.chartNamespace && !secret.metadata?.state?.error).map(secret => secret.metadata.name);
|
|
111
|
+
return this.allSecrets.filter((secret) => (secret.data || {})['encryption-provider-config.yaml'] && secret.metadata.namespace === this.chartNamespace && !secret.metadata?.state?.error).map((secret) => secret.metadata.name);
|
|
112
112
|
},
|
|
113
113
|
|
|
114
114
|
storageOptions() {
|
|
@@ -83,17 +83,17 @@ export default {
|
|
|
83
83
|
},
|
|
84
84
|
|
|
85
85
|
availableBackups() {
|
|
86
|
-
return this.allBackups.filter(backup => backup.state !== 'error');
|
|
86
|
+
return this.allBackups.filter((backup) => backup.state !== 'error');
|
|
87
87
|
},
|
|
88
88
|
|
|
89
89
|
chartNamespace() {
|
|
90
|
-
const BRORelease = this.apps.filter(release => get(release, 'spec.name') === 'rancher-backup')[0];
|
|
90
|
+
const BRORelease = this.apps.filter((release) => get(release, 'spec.name') === 'rancher-backup')[0];
|
|
91
91
|
|
|
92
92
|
return BRORelease ? BRORelease.spec.namespace : '';
|
|
93
93
|
},
|
|
94
94
|
|
|
95
95
|
encryptionSecretNames() {
|
|
96
|
-
return this.allSecrets.filter(secret => !!(secret.data || {})['encryption-provider-config.yaml'] && secret.metadata.namespace === this.chartNamespace && !secret.metadata?.state?.error).map(secret => secret.metadata.name);
|
|
96
|
+
return this.allSecrets.filter((secret) => !!(secret.data || {})['encryption-provider-config.yaml'] && secret.metadata.namespace === this.chartNamespace && !secret.metadata?.state?.error).map((secret) => secret.metadata.name);
|
|
97
97
|
},
|
|
98
98
|
|
|
99
99
|
isEncrypted() {
|
package/edit/secret/generic.vue
CHANGED
package/edit/secret/index.vue
CHANGED
|
@@ -141,9 +141,9 @@ export default {
|
|
|
141
141
|
// Cloud credentials
|
|
142
142
|
if ( this.isCloud ) {
|
|
143
143
|
const machineTypes = uniq(this.nodeDrivers
|
|
144
|
-
.filter(x => x.spec.active)
|
|
145
|
-
.map(x => x.spec.displayName || x.id)
|
|
146
|
-
.map(x => this.$store.getters['plugins/credentialDriverFor'](x))
|
|
144
|
+
.filter((x) => x.spec.active)
|
|
145
|
+
.map((x) => x.spec.displayName || x.id)
|
|
146
|
+
.map((x) => this.$store.getters['plugins/credentialDriverFor'](x))
|
|
147
147
|
);
|
|
148
148
|
|
|
149
149
|
for ( const id of machineTypes ) {
|
package/edit/service.vue
CHANGED
|
@@ -26,7 +26,6 @@ import { HARVESTER_NAME as HARVESTER } from '@shell/config/features';
|
|
|
26
26
|
import { allHash } from '@shell/utils/promise';
|
|
27
27
|
import { isHarvesterSatisfiesVersion } from '@shell/utils/cluster';
|
|
28
28
|
import { Port } from '@shell/utils/validators/formRules';
|
|
29
|
-
import { HCI as HCI_LABELS_ANNOTATIONS } from '@shell/config/labels-annotations';
|
|
30
29
|
|
|
31
30
|
const SESSION_AFFINITY_ACTION_VALUES = {
|
|
32
31
|
NONE: 'None',
|
|
@@ -90,7 +89,7 @@ export default {
|
|
|
90
89
|
defaultServiceTypes: DEFAULT_SERVICE_TYPES,
|
|
91
90
|
saving: false,
|
|
92
91
|
sessionAffinityActionLabels: Object.values(SESSION_AFFINITY_ACTION_LABELS)
|
|
93
|
-
.map(v => this.$store.getters['i18n/t'](v))
|
|
92
|
+
.map((v) => this.$store.getters['i18n/t'](v))
|
|
94
93
|
.map(ucFirst),
|
|
95
94
|
sessionAffinityActionOptions: Object.values(
|
|
96
95
|
SESSION_AFFINITY_ACTION_VALUES
|
|
@@ -192,7 +191,7 @@ export default {
|
|
|
192
191
|
},
|
|
193
192
|
|
|
194
193
|
provisioningCluster() {
|
|
195
|
-
const out = this.$store.getters['management/all'](CAPI.RANCHER_CLUSTER).find(c => c?.status?.clusterName === this.currentCluster.metadata.name);
|
|
194
|
+
const out = this.$store.getters['management/all'](CAPI.RANCHER_CLUSTER).find((c) => c?.status?.clusterName === this.currentCluster.metadata.name);
|
|
196
195
|
|
|
197
196
|
return out;
|
|
198
197
|
},
|
|
@@ -243,7 +242,7 @@ export default {
|
|
|
243
242
|
methods: {
|
|
244
243
|
updateMatchingPods: throttle(function() {
|
|
245
244
|
const { value: { spec: { selector = { } } } } = this;
|
|
246
|
-
const allInNamespace = this.allPods.filter(pod => pod.metadata.namespace === this.value?.metadata?.namespace);
|
|
245
|
+
const allInNamespace = this.allPods.filter((pod) => pod.metadata.namespace === this.value?.metadata?.namespace);
|
|
247
246
|
|
|
248
247
|
if (isEmpty(selector)) {
|
|
249
248
|
this.matchingPods = {
|
|
@@ -315,23 +314,6 @@ export default {
|
|
|
315
314
|
if (ports && ports.length > 0) {
|
|
316
315
|
this.value.spec.ports = this.targetPortsStrOrInt(this.value.spec.ports);
|
|
317
316
|
}
|
|
318
|
-
|
|
319
|
-
if (this.showHarvesterAddOnConfig) {
|
|
320
|
-
const clusters = this.$store.getters['management/all'](CAPI.RANCHER_CLUSTER);
|
|
321
|
-
const configs = this.$store.getters['management/all'](HCI.HARVESTER_CONFIG);
|
|
322
|
-
const cluster = clusters.find(c => c.status.clusterName === this.currentCluster.id);
|
|
323
|
-
|
|
324
|
-
const machinePools = cluster?.spec?.rkeConfig?.machinePools || [];
|
|
325
|
-
const machineConfigName = machinePools[0]?.machineConfigRef?.name;
|
|
326
|
-
const config = configs.find(c => c.id === `fleet-default/${ machineConfigName }`);
|
|
327
|
-
|
|
328
|
-
if (config) {
|
|
329
|
-
const { vmNamespace, networkName } = config;
|
|
330
|
-
|
|
331
|
-
this.value.metadata.annotations[HCI_LABELS_ANNOTATIONS.CLOUD_PROVIDER_NAMESPACE] = vmNamespace;
|
|
332
|
-
this.value.metadata.annotations[HCI_LABELS_ANNOTATIONS.CLOUD_PROVIDER_NETWORK] = networkName;
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
317
|
},
|
|
336
318
|
},
|
|
337
319
|
};
|
package/edit/serviceaccount.vue
CHANGED
|
@@ -50,7 +50,7 @@ export default {
|
|
|
50
50
|
namespacedSecrets() {
|
|
51
51
|
const namespace = this.value?.metadata?.namespace;
|
|
52
52
|
|
|
53
|
-
return this.allSecrets.filter(secret => secret.metadata.namespace === namespace && (secret._type === SECRET_TYPES.DOCKER || secret._type === SECRET_TYPES.DOCKER_JSON));
|
|
53
|
+
return this.allSecrets.filter((secret) => secret.metadata.namespace === namespace && (secret._type === SECRET_TYPES.DOCKER || secret._type === SECRET_TYPES.DOCKER_JSON));
|
|
54
54
|
},
|
|
55
55
|
|
|
56
56
|
imagePullSecrets: {
|
|
@@ -60,7 +60,7 @@ export default {
|
|
|
60
60
|
}
|
|
61
61
|
const { imagePullSecrets } = this.value;
|
|
62
62
|
|
|
63
|
-
return imagePullSecrets.map(each => each.name);
|
|
63
|
+
return imagePullSecrets.map((each) => each.name);
|
|
64
64
|
},
|
|
65
65
|
set(neu) {
|
|
66
66
|
if (this.value.imagePullSecrets.length < 1) {
|
|
@@ -138,13 +138,13 @@ export default {
|
|
|
138
138
|
},
|
|
139
139
|
|
|
140
140
|
provisionerIsDeprecated() {
|
|
141
|
-
const provisionerOpt = PROVISIONER_OPTIONS.find(opt => opt.value === this.value.provisioner);
|
|
141
|
+
const provisionerOpt = PROVISIONER_OPTIONS.find((opt) => opt.value === this.value.provisioner);
|
|
142
142
|
|
|
143
143
|
return provisionerOpt && provisionerOpt.deprecated !== undefined;
|
|
144
144
|
},
|
|
145
145
|
|
|
146
146
|
provisionerIsHideCustomize() {
|
|
147
|
-
const provisionerOpt = PROVISIONER_OPTIONS.find(opt => opt.value === this.value.provisioner);
|
|
147
|
+
const provisionerOpt = PROVISIONER_OPTIONS.find((opt) => opt.value === this.value.provisioner);
|
|
148
148
|
|
|
149
149
|
return provisionerOpt && provisionerOpt.hideCustomize !== undefined;
|
|
150
150
|
},
|
|
@@ -162,7 +162,7 @@ export default {
|
|
|
162
162
|
|
|
163
163
|
methods: {
|
|
164
164
|
getComponent(name) {
|
|
165
|
-
const isCustom = !PROVISIONER_OPTIONS.find(o => o.value === name);
|
|
165
|
+
const isCustom = !PROVISIONER_OPTIONS.find((o) => o.value === name);
|
|
166
166
|
const provisioner = isCustom ? 'custom' : name;
|
|
167
167
|
|
|
168
168
|
return require(`./provisioners/${ provisioner }`).default;
|
|
@@ -182,7 +182,7 @@ export default {
|
|
|
182
182
|
});
|
|
183
183
|
},
|
|
184
184
|
provisionerLabel(provisioner) {
|
|
185
|
-
const provisionerOpt = PROVISIONER_OPTIONS.find(opt => opt.value === provisioner);
|
|
185
|
+
const provisionerOpt = PROVISIONER_OPTIONS.find((opt) => opt.value === provisioner);
|
|
186
186
|
|
|
187
187
|
return provisionerOpt?.labelKey ? this.t(provisionerOpt.labelKey) : provisioner;
|
|
188
188
|
},
|
|
@@ -49,7 +49,7 @@ export default {
|
|
|
49
49
|
const kubernetesVersionExtension = this.currentCluster.kubernetesVersionExtension;
|
|
50
50
|
|
|
51
51
|
if (kubernetesVersionExtension.startsWith('+rke2')) {
|
|
52
|
-
const charts = ((this.rke2Versions?.data || []).find(v => v.id === kubernetesVersion) || {}).charts;
|
|
52
|
+
const charts = ((this.rke2Versions?.data || []).find((v) => v.id === kubernetesVersion) || {}).charts;
|
|
53
53
|
let csiVersion = charts?.['harvester-csi-driver']?.version || '';
|
|
54
54
|
|
|
55
55
|
if (csiVersion.endsWith('00')) {
|