@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
|
@@ -454,7 +454,7 @@ export default {
|
|
|
454
454
|
const cluster = this.currentCluster;
|
|
455
455
|
const projects = this.$store.getters['management/all'](MANAGEMENT.PROJECT);
|
|
456
456
|
|
|
457
|
-
const out = projects.filter(x => x.spec.clusterName === cluster?.id).map((project) => {
|
|
457
|
+
const out = projects.filter((x) => x.spec.clusterName === cluster?.id).map((project) => {
|
|
458
458
|
return {
|
|
459
459
|
id: project.id,
|
|
460
460
|
label: project.nameDisplay,
|
|
@@ -598,19 +598,19 @@ export default {
|
|
|
598
598
|
diffMode: mapPref(DIFF),
|
|
599
599
|
|
|
600
600
|
step1Description() {
|
|
601
|
-
const descriptionKey = this.steps.find(s => s.name === 'basics').descriptionKey;
|
|
601
|
+
const descriptionKey = this.steps.find((s) => s.name === 'basics').descriptionKey;
|
|
602
602
|
|
|
603
603
|
return this.$store.getters['i18n/withFallback'](descriptionKey, { action: this.action, existing: !!this.existing }, '');
|
|
604
604
|
},
|
|
605
605
|
|
|
606
606
|
step2Description() {
|
|
607
|
-
const descriptionKey = this.steps.find(s => s.name === 'helmValues').descriptionKey;
|
|
607
|
+
const descriptionKey = this.steps.find((s) => s.name === 'helmValues').descriptionKey;
|
|
608
608
|
|
|
609
609
|
return this.$store.getters['i18n/withFallback'](descriptionKey, { action: this.action, existing: !!this.existing }, '');
|
|
610
610
|
},
|
|
611
611
|
|
|
612
612
|
step3Description() {
|
|
613
|
-
const descriptionKey = this.steps.find(s => s.name === 'helmCli').descriptionKey;
|
|
613
|
+
const descriptionKey = this.steps.find((s) => s.name === 'helmCli').descriptionKey;
|
|
614
614
|
|
|
615
615
|
return this.$store.getters['i18n/withFallback'](descriptionKey, { action: this.action, existing: !!this.existing }, '');
|
|
616
616
|
},
|
|
@@ -794,7 +794,7 @@ export default {
|
|
|
794
794
|
},
|
|
795
795
|
|
|
796
796
|
beforeDestroy() {
|
|
797
|
-
this.shownReadmeWindows.forEach(name => this.$store.dispatch('wm/close', name, { root: true }));
|
|
797
|
+
this.shownReadmeWindows.forEach((name) => this.$store.dispatch('wm/close', name, { root: true }));
|
|
798
798
|
},
|
|
799
799
|
|
|
800
800
|
methods: {
|
|
@@ -809,7 +809,7 @@ export default {
|
|
|
809
809
|
}) : {};
|
|
810
810
|
|
|
811
811
|
if (provCluster.isRke2) { // isRke2 returns true for both RKE2 and K3s clusters.
|
|
812
|
-
const agentConfig = provCluster.spec?.rkeConfig?.machineSelectorConfig?.find(x => !x.machineLabelSelector).config;
|
|
812
|
+
const agentConfig = provCluster.spec?.rkeConfig?.machineSelectorConfig?.find((x) => !x.machineLabelSelector).config;
|
|
813
813
|
|
|
814
814
|
// If a cluster scoped registry exists,
|
|
815
815
|
// it should be used by default.
|
|
@@ -885,7 +885,7 @@ export default {
|
|
|
885
885
|
if ( component ) {
|
|
886
886
|
const steps = await this.$store.getters['catalog/chartSteps'](component);
|
|
887
887
|
|
|
888
|
-
this.customSteps = await Promise.all( steps.map(cs => this.loadChartStep(cs)));
|
|
888
|
+
this.customSteps = await Promise.all( steps.map((cs) => this.loadChartStep(cs)));
|
|
889
889
|
}
|
|
890
890
|
},
|
|
891
891
|
|
|
@@ -1005,7 +1005,7 @@ export default {
|
|
|
1005
1005
|
|
|
1006
1006
|
const cluster = this.currentCluster;
|
|
1007
1007
|
const projects = this.$store.getters['management/all'](MANAGEMENT.PROJECT);
|
|
1008
|
-
const systemProjectId = projects.find(p => p.spec?.displayName === 'System')?.id?.split('/')?.[1] || '';
|
|
1008
|
+
const systemProjectId = projects.find((p) => p.spec?.displayName === 'System')?.id?.split('/')?.[1] || '';
|
|
1009
1009
|
|
|
1010
1010
|
const serverUrl = this.serverUrlSetting?.value || '';
|
|
1011
1011
|
const isWindows = (cluster?.workerOSs || []).includes(WINDOWS);
|
|
@@ -1176,7 +1176,7 @@ export default {
|
|
|
1176
1176
|
|
|
1177
1177
|
const more = [];
|
|
1178
1178
|
|
|
1179
|
-
const auto = (this.version?.annotations?.[CATALOG_ANNOTATIONS.AUTO_INSTALL_GVK] || '').split(/\s*,\s*/).filter(x => !!x).reverse();
|
|
1179
|
+
const auto = (this.version?.annotations?.[CATALOG_ANNOTATIONS.AUTO_INSTALL_GVK] || '').split(/\s*,\s*/).filter((x) => !!x).reverse();
|
|
1180
1180
|
|
|
1181
1181
|
for ( const gvr of auto ) {
|
|
1182
1182
|
const provider = this.$store.getters['catalog/versionProviding']({
|
|
@@ -1267,7 +1267,7 @@ export default {
|
|
|
1267
1267
|
},
|
|
1268
1268
|
|
|
1269
1269
|
updateStep(stepName, update) {
|
|
1270
|
-
const step = this.steps.find(step => step.name === stepName);
|
|
1270
|
+
const step = this.steps.find((step) => step.name === stepName);
|
|
1271
1271
|
|
|
1272
1272
|
if (step) {
|
|
1273
1273
|
for (const prop in update) {
|
|
@@ -1283,7 +1283,7 @@ export default {
|
|
|
1283
1283
|
<Loading v-if="$fetchState.pending" />
|
|
1284
1284
|
<div
|
|
1285
1285
|
v-else-if="!legacyApp && !mcapp"
|
|
1286
|
-
class="install-steps"
|
|
1286
|
+
class="install-steps pt-20"
|
|
1287
1287
|
:class="{ 'isPlainLayout': isPlainLayout}"
|
|
1288
1288
|
>
|
|
1289
1289
|
<TypeDescription resource="chart" />
|
|
@@ -1296,6 +1296,7 @@ export default {
|
|
|
1296
1296
|
:banner-title-subtext="stepperSubtext"
|
|
1297
1297
|
:finish-mode="action"
|
|
1298
1298
|
class="wizard"
|
|
1299
|
+
:class="{'windowsIncompatible': windowsIncompatible}"
|
|
1299
1300
|
@cancel="cancel"
|
|
1300
1301
|
@finish="finish"
|
|
1301
1302
|
>
|
|
@@ -1840,7 +1841,6 @@ export default {
|
|
|
1840
1841
|
border: $padding solid white;
|
|
1841
1842
|
border-radius: calc( 3 * var(--border-radius));
|
|
1842
1843
|
position: relative;
|
|
1843
|
-
margin-bottom: 15px
|
|
1844
1844
|
}
|
|
1845
1845
|
|
|
1846
1846
|
.logo {
|
|
@@ -1855,6 +1855,22 @@ export default {
|
|
|
1855
1855
|
left: 0;
|
|
1856
1856
|
margin: auto;
|
|
1857
1857
|
}
|
|
1858
|
+
|
|
1859
|
+
// Hack - We're adding an absolute tag under the logo that we want to consume space without breaking vertical alignment of row.
|
|
1860
|
+
// W ith the slots available this isn't possible without adding tag specific styles to the root wizard classes
|
|
1861
|
+
&.windowsIncompatible {
|
|
1862
|
+
::v-deep .header {
|
|
1863
|
+
padding-bottom: 15px;
|
|
1864
|
+
}
|
|
1865
|
+
}
|
|
1866
|
+
|
|
1867
|
+
.os-label {
|
|
1868
|
+
position: absolute;
|
|
1869
|
+
background-color: var(--warning-banner-bg);
|
|
1870
|
+
color:var(--warning);
|
|
1871
|
+
margin-top: 5px;
|
|
1872
|
+
}
|
|
1873
|
+
|
|
1858
1874
|
}
|
|
1859
1875
|
|
|
1860
1876
|
.step {
|
|
@@ -2053,12 +2069,4 @@ export default {
|
|
|
2053
2069
|
}
|
|
2054
2070
|
}
|
|
2055
2071
|
|
|
2056
|
-
.os-label {
|
|
2057
|
-
position: relative;
|
|
2058
|
-
background-color: var(--warning-banner-bg);
|
|
2059
|
-
color:var(--warning);
|
|
2060
|
-
margin-top: 5px;
|
|
2061
|
-
top: 21px;
|
|
2062
|
-
}
|
|
2063
|
-
|
|
2064
2072
|
</style>
|
|
@@ -49,13 +49,13 @@ export default {
|
|
|
49
49
|
const roleTemplatesSchema = this.$store.getters[`management/schemaFor`](MANAGEMENT.ROLE_TEMPLATE);
|
|
50
50
|
|
|
51
51
|
const roleTemplateHeaders = this.$store.getters['type-map/headersFor'](roleTemplatesSchema);
|
|
52
|
-
const defaultHeaderIndex = roleTemplateHeaders.findIndex(header => header.name === 'default');
|
|
52
|
+
const defaultHeaderIndex = roleTemplateHeaders.findIndex((header) => header.name === 'default');
|
|
53
53
|
|
|
54
54
|
return {
|
|
55
55
|
tabs: {
|
|
56
56
|
[GLOBAL]: {
|
|
57
|
-
canFetch: globalRoleSchema?.collectionMethods.find(verb => verb === 'GET'),
|
|
58
|
-
canCreate: globalRoleSchema?.resourceMethods.find(verb => CREATE_VERBS.has(verb)),
|
|
57
|
+
canFetch: globalRoleSchema?.collectionMethods.find((verb) => verb === 'GET'),
|
|
58
|
+
canCreate: globalRoleSchema?.resourceMethods.find((verb) => CREATE_VERBS.has(verb)),
|
|
59
59
|
weight: 3,
|
|
60
60
|
labelKey: SUBTYPE_MAPPING.GLOBAL.labelKey,
|
|
61
61
|
schema: globalRoleSchema,
|
|
@@ -65,8 +65,8 @@ export default {
|
|
|
65
65
|
},
|
|
66
66
|
},
|
|
67
67
|
[CLUSTER]: {
|
|
68
|
-
canFetch: roleTemplatesSchema?.collectionMethods.find(verb => verb === 'GET'),
|
|
69
|
-
canCreate: roleTemplatesSchema?.resourceMethods.find(verb => CREATE_VERBS.has(verb)),
|
|
68
|
+
canFetch: roleTemplatesSchema?.collectionMethods.find((verb) => verb === 'GET'),
|
|
69
|
+
canCreate: roleTemplatesSchema?.resourceMethods.find((verb) => CREATE_VERBS.has(verb)),
|
|
70
70
|
labelKey: SUBTYPE_MAPPING.CLUSTER.labelKey,
|
|
71
71
|
weight: 2,
|
|
72
72
|
schema: roleTemplatesSchema,
|
|
@@ -77,8 +77,8 @@ export default {
|
|
|
77
77
|
},
|
|
78
78
|
},
|
|
79
79
|
[PROJECT]: {
|
|
80
|
-
canFetch: roleTemplatesSchema?.collectionMethods.find(verb => verb === 'GET'),
|
|
81
|
-
canCreate: roleTemplatesSchema?.resourceMethods.find(verb => CREATE_VERBS.has(verb)),
|
|
80
|
+
canFetch: roleTemplatesSchema?.collectionMethods.find((verb) => verb === 'GET'),
|
|
81
|
+
canCreate: roleTemplatesSchema?.resourceMethods.find((verb) => CREATE_VERBS.has(verb)),
|
|
82
82
|
labelKey: SUBTYPE_MAPPING.NAMESPACE.labelKey,
|
|
83
83
|
weight: 1,
|
|
84
84
|
schema: roleTemplatesSchema,
|
|
@@ -105,11 +105,11 @@ export default {
|
|
|
105
105
|
},
|
|
106
106
|
|
|
107
107
|
clusterResources() {
|
|
108
|
-
return this.roleTemplates.filter(r => r.context === SUBTYPE_MAPPING.CLUSTER.context);
|
|
108
|
+
return this.roleTemplates.filter((r) => r.context === SUBTYPE_MAPPING.CLUSTER.context);
|
|
109
109
|
},
|
|
110
110
|
|
|
111
111
|
namespaceResources() {
|
|
112
|
-
return this.roleTemplates.filter(r => r.context === SUBTYPE_MAPPING.NAMESPACE.context);
|
|
112
|
+
return this.roleTemplates.filter((r) => r.context === SUBTYPE_MAPPING.NAMESPACE.context);
|
|
113
113
|
},
|
|
114
114
|
|
|
115
115
|
type() {
|
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import DashboardMetrics from '@shell/components/DashboardMetrics';
|
|
3
3
|
import { mapGetters } from 'vuex';
|
|
4
|
-
import { setPromiseResult } from '@shell/utils/promise';
|
|
5
|
-
import AlertTable from '@shell/components/AlertTable';
|
|
6
|
-
import { Banner } from '@components/Banner';
|
|
7
|
-
import { parseSi, createMemoryValues } from '@shell/utils/units';
|
|
8
|
-
import {
|
|
9
|
-
NAME,
|
|
10
|
-
ROLES,
|
|
11
|
-
STATE,
|
|
12
|
-
} from '@shell/config/table-headers';
|
|
13
4
|
import {
|
|
5
|
+
CAPI,
|
|
14
6
|
ENDPOINTS,
|
|
15
7
|
EVENT,
|
|
16
8
|
NAMESPACE,
|
|
@@ -25,6 +17,16 @@ import {
|
|
|
25
17
|
CATALOG,
|
|
26
18
|
PSP,
|
|
27
19
|
} from '@shell/config/types';
|
|
20
|
+
import { setPromiseResult } from '@shell/utils/promise';
|
|
21
|
+
import AlertTable from '@shell/components/AlertTable';
|
|
22
|
+
import { Banner } from '@components/Banner';
|
|
23
|
+
import { parseSi, createMemoryValues } from '@shell/utils/units';
|
|
24
|
+
import {
|
|
25
|
+
NAME,
|
|
26
|
+
ROLES,
|
|
27
|
+
STATE,
|
|
28
|
+
} from '@shell/config/table-headers';
|
|
29
|
+
|
|
28
30
|
import { mapPref, CLUSTER_TOOLS_TIP, PSP_DEPRECATION_BANNER } from '@shell/store/prefs';
|
|
29
31
|
import { haveV1Monitoring, monitoringStatus } from '@shell/utils/monitoring';
|
|
30
32
|
import Tabbed from '@shell/components/Tabbed';
|
|
@@ -198,6 +200,10 @@ export default {
|
|
|
198
200
|
return this.t(`cluster.provider.${ provider }`);
|
|
199
201
|
},
|
|
200
202
|
|
|
203
|
+
isHarvesterCluster() {
|
|
204
|
+
return this.currentCluster?.isHarvester;
|
|
205
|
+
},
|
|
206
|
+
|
|
201
207
|
isRKE() {
|
|
202
208
|
return ['rke', 'rke.windows', 'rke2', 'rke2.windows'].includes((this.currentCluster.status.provider || '').toLowerCase());
|
|
203
209
|
},
|
|
@@ -211,7 +217,7 @@ export default {
|
|
|
211
217
|
// Merge with RESOURCES list
|
|
212
218
|
const allowedResources = [...new Set([...defaultAllowedResources, ...RESOURCES])];
|
|
213
219
|
|
|
214
|
-
return allowedResources.filter(resource => this.$store.getters['cluster/schemaFor'](resource));
|
|
220
|
+
return allowedResources.filter((resource) => this.$store.getters['cluster/schemaFor'](resource));
|
|
215
221
|
},
|
|
216
222
|
|
|
217
223
|
componentServices() {
|
|
@@ -291,9 +297,9 @@ export default {
|
|
|
291
297
|
});
|
|
292
298
|
}
|
|
293
299
|
|
|
294
|
-
const someNonWorkerRoles = checkNodes.some(node => node.hasARole && !node.isWorker);
|
|
300
|
+
const someNonWorkerRoles = checkNodes.some((node) => node.hasARole && !node.isWorker);
|
|
295
301
|
const metrics = this.nodeMetrics.filter((nodeMetrics) => {
|
|
296
|
-
const node = this.nodes.find(nd => nd.id === nodeMetrics.id);
|
|
302
|
+
const node = this.nodes.find((nd) => nd.id === nodeMetrics.id);
|
|
297
303
|
|
|
298
304
|
return node && (!someNonWorkerRoles || node.isWorker);
|
|
299
305
|
});
|
|
@@ -366,7 +372,7 @@ export default {
|
|
|
366
372
|
methods: {
|
|
367
373
|
// Ported from Ember
|
|
368
374
|
isComponentStatusHealthy(field) {
|
|
369
|
-
const matching = (this.currentCluster?.status?.componentStatuses || []).filter(s => s.name.startsWith(field));
|
|
375
|
+
const matching = (this.currentCluster?.status?.componentStatuses || []).filter((s) => s.name.startsWith(field));
|
|
370
376
|
|
|
371
377
|
// If there's no matching component status, it's "healthy"
|
|
372
378
|
if ( !matching.length ) {
|
|
@@ -374,7 +380,7 @@ export default {
|
|
|
374
380
|
}
|
|
375
381
|
|
|
376
382
|
const count = matching.reduce((acc, status) => {
|
|
377
|
-
const conditions = status.conditions.find(c => c.status !== 'True');
|
|
383
|
+
const conditions = status.conditions.find((c) => c.status !== 'True');
|
|
378
384
|
|
|
379
385
|
return !conditions ? acc : acc + 1;
|
|
380
386
|
}, 0);
|
|
@@ -397,6 +403,16 @@ export default {
|
|
|
397
403
|
// Events/Alerts tab changed
|
|
398
404
|
tabChange(neu) {
|
|
399
405
|
this.selectedTab = neu?.selectedName;
|
|
406
|
+
},
|
|
407
|
+
|
|
408
|
+
async goToHarvesterCluster() {
|
|
409
|
+
try {
|
|
410
|
+
const provClusters = await this.$store.dispatch('management/findAll', { type: CAPI.RANCHER_CLUSTER });
|
|
411
|
+
const provCluster = provClusters.find((p) => p.mgmt.id === this.currentCluster.id);
|
|
412
|
+
|
|
413
|
+
await provCluster.goToHarvesterCluster();
|
|
414
|
+
} catch {
|
|
415
|
+
}
|
|
400
416
|
}
|
|
401
417
|
},
|
|
402
418
|
};
|
|
@@ -438,8 +454,17 @@ export default {
|
|
|
438
454
|
>
|
|
439
455
|
<div>
|
|
440
456
|
<label>{{ t('glance.provider') }}: </label>
|
|
441
|
-
<span>
|
|
442
|
-
|
|
457
|
+
<span v-if="isHarvesterCluster">
|
|
458
|
+
<a
|
|
459
|
+
role="button"
|
|
460
|
+
@click="goToHarvesterCluster"
|
|
461
|
+
>
|
|
462
|
+
{{ displayProvider }}
|
|
463
|
+
</a>
|
|
464
|
+
</span>
|
|
465
|
+
<span v-else>
|
|
466
|
+
{{ displayProvider }}
|
|
467
|
+
</span>
|
|
443
468
|
</div>
|
|
444
469
|
<div>
|
|
445
470
|
<label>{{ t('glance.version') }}: </label>
|
|
@@ -47,7 +47,7 @@ export default {
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
// Need the project ID of the system project in order to get the apps
|
|
50
|
-
const systemProject = projects.find(p => p.spec?.displayName === 'System');
|
|
50
|
+
const systemProject = projects.find((p) => p.spec?.displayName === 'System');
|
|
51
51
|
|
|
52
52
|
if (systemProject) {
|
|
53
53
|
const id = systemProject.id.replace('/', ':');
|
|
@@ -86,7 +86,7 @@ export default {
|
|
|
86
86
|
},
|
|
87
87
|
|
|
88
88
|
rancherCatalog() {
|
|
89
|
-
return this.$store.getters['catalog/repos'].find(x => x.isRancher);
|
|
89
|
+
return this.$store.getters['catalog/repos'].find((x) => x.isRancher);
|
|
90
90
|
},
|
|
91
91
|
|
|
92
92
|
installedApps() {
|
|
@@ -121,7 +121,7 @@ export default {
|
|
|
121
121
|
showTypes: [CATALOG_ANNOTATIONS._CLUSTER_TOOL],
|
|
122
122
|
});
|
|
123
123
|
|
|
124
|
-
charts = charts.filter(c => c.sideLabel !== 'Experimental');
|
|
124
|
+
charts = charts.filter((c) => c.sideLabel !== 'Experimental');
|
|
125
125
|
|
|
126
126
|
// If legacy support is enabled, show V1 charts for some V1 Cluster tools
|
|
127
127
|
if (this.legacyEnabled) {
|
|
@@ -227,18 +227,18 @@ export default {
|
|
|
227
227
|
const c = this.v1SystemCatalog?.[id];
|
|
228
228
|
|
|
229
229
|
if (c?.spec?.versions) {
|
|
230
|
-
c.spec.versions.forEach(v => versions.push({ version: v.version }));
|
|
230
|
+
c.spec.versions.forEach((v) => versions.push({ version: v.version }));
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
return versions;
|
|
234
234
|
},
|
|
235
235
|
|
|
236
236
|
checkLegacyApp(chartsWithApps, v1Apps, v1ChartName, v2ChartName, v1AppName, showOnlyIfInstalled) {
|
|
237
|
-
const v1 = chartsWithApps.find(a => a.chart.chartName === v1ChartName);
|
|
238
|
-
const v2 = chartsWithApps.find(a => a.chart.chartName === v2ChartName);
|
|
237
|
+
const v1 = chartsWithApps.find((a) => a.chart.chartName === v1ChartName);
|
|
238
|
+
const v2 = chartsWithApps.find((a) => a.chart.chartName === v2ChartName);
|
|
239
239
|
|
|
240
240
|
if (v1) {
|
|
241
|
-
const v1App = v1Apps.find(a => a.id.indexOf(v1AppName) > 0);
|
|
241
|
+
const v1App = v1Apps.find((a) => a.id.indexOf(v1AppName) > 0);
|
|
242
242
|
|
|
243
243
|
v1.app = v1App;
|
|
244
244
|
|
|
@@ -255,7 +255,7 @@ export default {
|
|
|
255
255
|
}
|
|
256
256
|
} else if (showOnlyIfInstalled) {
|
|
257
257
|
// Remove the v1 chart if it is not already installed for charts which we no longer support
|
|
258
|
-
chartsWithApps = chartsWithApps.filter(c => c !== v1);
|
|
258
|
+
chartsWithApps = chartsWithApps.filter((c) => c !== v1);
|
|
259
259
|
}
|
|
260
260
|
|
|
261
261
|
if (v2) {
|
|
@@ -61,7 +61,7 @@ export const gitRepoGraphConfig = {
|
|
|
61
61
|
children: []
|
|
62
62
|
};
|
|
63
63
|
|
|
64
|
-
const bds = data.bundleDeployments.filter(bd => bundle.id === `${ bd.metadata?.labels?.['fleet.cattle.io/bundle-namespace'] }/${ bd.metadata?.labels?.['fleet.cattle.io/bundle-name'] }`);
|
|
64
|
+
const bds = data.bundleDeployments.filter((bd) => bundle.id === `${ bd.metadata?.labels?.['fleet.cattle.io/bundle-namespace'] }/${ bd.metadata?.labels?.['fleet.cattle.io/bundle-name'] }`);
|
|
65
65
|
|
|
66
66
|
bds.forEach((bd) => {
|
|
67
67
|
const bdLowercaseState = bd.state ? bd.state.toLowerCase() : 'unknown';
|
|
@@ -46,7 +46,7 @@ export default {
|
|
|
46
46
|
this.fleetWorkspacesData = hash.fleetWorkspaces || [];
|
|
47
47
|
|
|
48
48
|
try {
|
|
49
|
-
const permissions = await checkPermissions({ workspaces: { type: FLEET.WORKSPACE }, gitRepos: { type: FLEET.GIT_REPO, schemaValidator: schema => schema.resourceMethods.includes('PUT') } }, this.$store.getters);
|
|
49
|
+
const permissions = await checkPermissions({ workspaces: { type: FLEET.WORKSPACE }, gitRepos: { type: FLEET.GIT_REPO, schemaValidator: (schema) => schema.resourceMethods.includes('PUT') } }, this.$store.getters);
|
|
50
50
|
|
|
51
51
|
this.permissions = permissions;
|
|
52
52
|
} catch (e) {
|
|
@@ -128,13 +128,13 @@ export default {
|
|
|
128
128
|
});
|
|
129
129
|
},
|
|
130
130
|
workspacesData() {
|
|
131
|
-
return this.fleetWorkspaces.filter(ws => ws.repos && ws.repos.length);
|
|
131
|
+
return this.fleetWorkspaces.filter((ws) => ws.repos && ws.repos.length);
|
|
132
132
|
},
|
|
133
133
|
emptyWorkspaces() {
|
|
134
|
-
return this.fleetWorkspaces.filter(ws => !ws.repos || !ws.repos.length);
|
|
134
|
+
return this.fleetWorkspaces.filter((ws) => !ws.repos || !ws.repos.length);
|
|
135
135
|
},
|
|
136
136
|
areAllCardsExpanded() {
|
|
137
|
-
return Object.keys(this.isCollapsed).every(key => !this.isCollapsed[key]);
|
|
137
|
+
return Object.keys(this.isCollapsed).every((key) => !this.isCollapsed[key]);
|
|
138
138
|
}
|
|
139
139
|
},
|
|
140
140
|
methods: {
|
|
@@ -166,19 +166,19 @@ export default {
|
|
|
166
166
|
icon: STATES[STATES_ENUM.NOT_READY].compoundIcon
|
|
167
167
|
};
|
|
168
168
|
case 'bundles':
|
|
169
|
-
if (row.bundles?.length && row.bundles?.every(bundle => bundle.state?.toLowerCase() === STATES_ENUM.ACTIVE)) {
|
|
169
|
+
if (row.bundles?.length && row.bundles?.every((bundle) => bundle.state?.toLowerCase() === STATES_ENUM.ACTIVE)) {
|
|
170
170
|
return {
|
|
171
171
|
badgeClass: STATES[STATES_ENUM.ACTIVE].color ? STATES[STATES_ENUM.ACTIVE].color : `${ STATES[STATES_ENUM.UNKNOWN].color } bg-unmapped-state`,
|
|
172
172
|
icon: STATES[STATES_ENUM.ACTIVE].compoundIcon ? STATES[STATES_ENUM.ACTIVE].compoundIcon : `${ STATES[STATES_ENUM.UNKNOWN].compoundIcon } unmapped-icon`
|
|
173
173
|
};
|
|
174
174
|
}
|
|
175
|
-
if (row.bundles?.length && row.bundles?.some(bundle => bundle.state?.toLowerCase() === STATES_ENUM.ERR_APPLIED)) {
|
|
175
|
+
if (row.bundles?.length && row.bundles?.some((bundle) => bundle.state?.toLowerCase() === STATES_ENUM.ERR_APPLIED)) {
|
|
176
176
|
return {
|
|
177
177
|
badgeClass: STATES[STATES_ENUM.ERR_APPLIED].color ? STATES[STATES_ENUM.ERR_APPLIED].color : `${ STATES[STATES_ENUM.UNKNOWN].color } bg-unmapped-state`,
|
|
178
178
|
icon: STATES[STATES_ENUM.ERR_APPLIED].compoundIcon ? STATES[STATES_ENUM.ERR_APPLIED].compoundIcon : `${ STATES[STATES_ENUM.UNKNOWN].compoundIcon } unmapped-icon`
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
|
-
if (row.bundles?.length && row.bundles?.some(bundle => bundle.state?.toLowerCase() === STATES_ENUM.NOT_READY)) {
|
|
181
|
+
if (row.bundles?.length && row.bundles?.some((bundle) => bundle.state?.toLowerCase() === STATES_ENUM.NOT_READY)) {
|
|
182
182
|
return {
|
|
183
183
|
badgeClass: STATES[STATES_ENUM.NOT_READY].color ? STATES[STATES_ENUM.NOT_READY].color : `${ STATES[STATES_ENUM.UNKNOWN].color } bg-unmapped-state`,
|
|
184
184
|
icon: STATES[STATES_ENUM.NOT_READY].compoundIcon ? STATES[STATES_ENUM.NOT_READY].compoundIcon : `${ STATES[STATES_ENUM.UNKNOWN].compoundIcon } unmapped-icon`
|
|
@@ -197,19 +197,19 @@ export default {
|
|
|
197
197
|
icon: STATES[STATES_ENUM.NOT_READY].compoundIcon
|
|
198
198
|
};
|
|
199
199
|
case 'resources':
|
|
200
|
-
if (row.status?.resources?.length && row.status?.resources?.every(resource => resource.state?.toLowerCase() === STATES_ENUM.ACTIVE)) {
|
|
200
|
+
if (row.status?.resources?.length && row.status?.resources?.every((resource) => resource.state?.toLowerCase() === STATES_ENUM.ACTIVE)) {
|
|
201
201
|
return {
|
|
202
202
|
badgeClass: STATES[STATES_ENUM.ACTIVE].color ? STATES[STATES_ENUM.ACTIVE].color : `${ STATES[STATES_ENUM.UNKNOWN].color } bg-unmapped-state`,
|
|
203
203
|
icon: STATES[STATES_ENUM.ACTIVE].compoundIcon ? STATES[STATES_ENUM.ACTIVE].compoundIcon : `${ STATES[STATES_ENUM.UNKNOWN].compoundIcon } unmapped-icon`
|
|
204
204
|
};
|
|
205
205
|
}
|
|
206
|
-
if (row.status?.resources?.length && row.status?.resources?.some(resource => resource.state?.toLowerCase() === STATES_ENUM.ERR_APPLIED)) {
|
|
206
|
+
if (row.status?.resources?.length && row.status?.resources?.some((resource) => resource.state?.toLowerCase() === STATES_ENUM.ERR_APPLIED)) {
|
|
207
207
|
return {
|
|
208
208
|
badgeClass: STATES[STATES_ENUM.ERR_APPLIED].color ? STATES[STATES_ENUM.ERR_APPLIED].color : `${ STATES[STATES_ENUM.UNKNOWN].color } bg-unmapped-state`,
|
|
209
209
|
icon: STATES[STATES_ENUM.ERR_APPLIED].compoundIcon ? STATES[STATES_ENUM.ERR_APPLIED].compoundIcon : `${ STATES[STATES_ENUM.UNKNOWN].compoundIcon } unmapped-icon`
|
|
210
210
|
};
|
|
211
211
|
}
|
|
212
|
-
if (row.status?.resources?.length && row.status?.resources?.some(resource => resource.state?.toLowerCase() === STATES_ENUM.NOT_READY)) {
|
|
212
|
+
if (row.status?.resources?.length && row.status?.resources?.some((resource) => resource.state?.toLowerCase() === STATES_ENUM.NOT_READY)) {
|
|
213
213
|
return {
|
|
214
214
|
badgeClass: STATES[STATES_ENUM.NOT_READY].color ? STATES[STATES_ENUM.NOT_READY].color : `${ STATES[STATES_ENUM.UNKNOWN].color } bg-unmapped-state`,
|
|
215
215
|
icon: STATES[STATES_ENUM.NOT_READY].compoundIcon ? STATES[STATES_ENUM.NOT_READY].compoundIcon : `${ STATES[STATES_ENUM.UNKNOWN].compoundIcon } unmapped-icon`
|
|
@@ -290,7 +290,7 @@ export default {
|
|
|
290
290
|
|
|
291
291
|
watch: {
|
|
292
292
|
fleetWorkspaces(value) {
|
|
293
|
-
value?.filter(ws => ws.repos?.length).forEach((ws) => {
|
|
293
|
+
value?.filter((ws) => ws.repos?.length).forEach((ws) => {
|
|
294
294
|
this.$set(this.isCollapsed, ws.id, false);
|
|
295
295
|
});
|
|
296
296
|
}
|
|
@@ -106,7 +106,7 @@ export default {
|
|
|
106
106
|
const amMatch = findBy(externalLinks, 'group', 'alertmanager');
|
|
107
107
|
const grafanaMatch = findBy(externalLinks, 'group', 'grafana');
|
|
108
108
|
const promeMatch = externalLinks.filter(
|
|
109
|
-
el => el.group === 'prometheus'
|
|
109
|
+
(el) => el.group === 'prometheus'
|
|
110
110
|
);
|
|
111
111
|
|
|
112
112
|
grafanaMatch.link = `${ getClusterPrefix(hash.app?.currentVersion || '', currentCluster.id) }/api/v1/namespaces/cattle-monitoring-system/services/http:rancher-monitoring-grafana:80/proxy/`;
|
|
@@ -22,7 +22,7 @@ export default {
|
|
|
22
22
|
DefaultLinksEditor,
|
|
23
23
|
},
|
|
24
24
|
async fetch() {
|
|
25
|
-
this.value = await fetchLinks(this.$store, this.hasSupport, false, str => this.t(str));
|
|
25
|
+
this.value = await fetchLinks(this.$store, this.hasSupport, false, (str) => this.t(str));
|
|
26
26
|
},
|
|
27
27
|
|
|
28
28
|
data() {
|
|
@@ -47,7 +47,7 @@ export default {
|
|
|
47
47
|
allValues() {
|
|
48
48
|
return {
|
|
49
49
|
version: CUSTOM_LINKS_VERSION,
|
|
50
|
-
defaults: this.value.defaults.filter(obj => obj.enabled).map(obj => obj.key),
|
|
50
|
+
defaults: this.value.defaults.filter((obj) => obj.enabled).map((obj) => obj.key),
|
|
51
51
|
custom: this.value.custom
|
|
52
52
|
};
|
|
53
53
|
},
|
|
@@ -75,7 +75,7 @@ export default {
|
|
|
75
75
|
|
|
76
76
|
await uiCustomLinks.save();
|
|
77
77
|
|
|
78
|
-
this.value = await fetchLinks(this.$store, this.hasSupport, false, str => this.t(str));
|
|
78
|
+
this.value = await fetchLinks(this.$store, this.hasSupport, false, (str) => this.t(str));
|
|
79
79
|
btnCB(true);
|
|
80
80
|
} catch (err) {
|
|
81
81
|
this.errors.push(err);
|
|
@@ -125,7 +125,7 @@ export default {
|
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
// We're enabling a preference. Are there any incomaptible preferences?
|
|
128
|
-
if ((incompatible[property] || []).every(p => !this.value[p].enabled)) {
|
|
128
|
+
if ((incompatible[property] || []).every((p) => !this.value[p].enabled)) {
|
|
129
129
|
// No, just set and exit
|
|
130
130
|
this.value[property].enabled = true;
|
|
131
131
|
|
|
@@ -133,11 +133,11 @@ export default {
|
|
|
133
133
|
...mapGetters({ allRepos: 'catalog/repos' }),
|
|
134
134
|
|
|
135
135
|
namespacedDeployments() {
|
|
136
|
-
return this.$store.getters['management/all'](WORKLOAD_TYPES.DEPLOYMENT).filter(dep => dep.metadata.namespace === UI_PLUGIN_NAMESPACE);
|
|
136
|
+
return this.$store.getters['management/all'](WORKLOAD_TYPES.DEPLOYMENT).filter((dep) => dep.metadata.namespace === UI_PLUGIN_NAMESPACE);
|
|
137
137
|
},
|
|
138
138
|
|
|
139
139
|
namespacedServices() {
|
|
140
|
-
return this.$store.getters['management/all'](SERVICE).filter(svc => svc.metadata.namespace === UI_PLUGIN_NAMESPACE);
|
|
140
|
+
return this.$store.getters['management/all'](SERVICE).filter((svc) => svc.metadata.namespace === UI_PLUGIN_NAMESPACE);
|
|
141
141
|
}
|
|
142
142
|
},
|
|
143
143
|
|
|
@@ -151,7 +151,7 @@ export default {
|
|
|
151
151
|
{
|
|
152
152
|
var: 'imagePullNamespacedSecrets',
|
|
153
153
|
parsingFunc: (data) => {
|
|
154
|
-
return data.filter(secret => (secret._type === SECRET_TYPES.DOCKER || secret._type === SECRET_TYPES.DOCKER_JSON));
|
|
154
|
+
return data.filter((secret) => (secret._type === SECRET_TYPES.DOCKER || secret._type === SECRET_TYPES.DOCKER_JSON));
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
]
|
|
@@ -211,7 +211,7 @@ export default {
|
|
|
211
211
|
},
|
|
212
212
|
|
|
213
213
|
async loadDeployment(image, name, btnCb) {
|
|
214
|
-
const exists = this.namespacedDeployments.find(dep => dep.spec.template.spec.containers[0].image === image);
|
|
214
|
+
const exists = this.namespacedDeployments.find((dep) => dep.spec.template.spec.containers[0].image === image);
|
|
215
215
|
|
|
216
216
|
if (!exists) {
|
|
217
217
|
// Sets deploymentValues with name, labels, and imagePullSecrets
|
|
@@ -238,7 +238,7 @@ export default {
|
|
|
238
238
|
|
|
239
239
|
async loadService(name, btnCb) {
|
|
240
240
|
const serviceName = `${ name }-svc`;
|
|
241
|
-
const exists = this.namespacedServices.find(svc => svc.metadata.name === serviceName);
|
|
241
|
+
const exists = this.namespacedServices.find((svc) => svc.metadata.name === serviceName);
|
|
242
242
|
|
|
243
243
|
if (exists) {
|
|
244
244
|
const error = {
|
|
@@ -285,7 +285,7 @@ export default {
|
|
|
285
285
|
|
|
286
286
|
async loadRepo(name, btnCb) {
|
|
287
287
|
const chartName = `${ name }-charts`;
|
|
288
|
-
const exists = this.allRepos.find(repo => repo.metadata.name === chartName);
|
|
288
|
+
const exists = this.allRepos.find((repo) => repo.metadata.name === chartName);
|
|
289
289
|
|
|
290
290
|
if (exists) {
|
|
291
291
|
const error = {
|
|
@@ -47,11 +47,11 @@ export default {
|
|
|
47
47
|
...mapGetters({ allRepos: 'catalog/repos' }),
|
|
48
48
|
|
|
49
49
|
namespacedDeployments() {
|
|
50
|
-
return this.$store.getters['management/all'](WORKLOAD_TYPES.DEPLOYMENT).filter(dep => dep.metadata.namespace === UI_PLUGIN_NAMESPACE);
|
|
50
|
+
return this.$store.getters['management/all'](WORKLOAD_TYPES.DEPLOYMENT).filter((dep) => dep.metadata.namespace === UI_PLUGIN_NAMESPACE);
|
|
51
51
|
},
|
|
52
52
|
|
|
53
53
|
namespacedServices() {
|
|
54
|
-
return this.$store.getters['management/all'](SERVICE).filter(svc => svc.metadata.namespace === UI_PLUGIN_NAMESPACE);
|
|
54
|
+
return this.$store.getters['management/all'](SERVICE).filter((svc) => svc.metadata.namespace === UI_PLUGIN_NAMESPACE);
|
|
55
55
|
},
|
|
56
56
|
|
|
57
57
|
catalogRows() {
|
|
@@ -79,7 +79,7 @@ export default {
|
|
|
79
79
|
const keys = ['deployment', 'service', 'repo'];
|
|
80
80
|
|
|
81
81
|
resources.forEach((resource, i) => {
|
|
82
|
-
out[keys[i]] = resource?.filter(item => item.metadata?.labels?.[UI_PLUGIN_LABELS.CATALOG_IMAGE] === pluginName)[0];
|
|
82
|
+
out[keys[i]] = resource?.filter((item) => item.metadata?.labels?.[UI_PLUGIN_LABELS.CATALOG_IMAGE] === pluginName)[0];
|
|
83
83
|
});
|
|
84
84
|
|
|
85
85
|
if (!isEmpty(out?.deployment)) {
|
|
@@ -83,7 +83,7 @@ export default {
|
|
|
83
83
|
}
|
|
84
84
|
} else if (mode === 'rollback') {
|
|
85
85
|
// Find the newest version once we remove the current version
|
|
86
|
-
const versionNames = plugin.installableVersions.filter(v => v.version !== plugin.displayVersion);
|
|
86
|
+
const versionNames = plugin.installableVersions.filter((v) => v.version !== plugin.displayVersion);
|
|
87
87
|
|
|
88
88
|
this.currentVersion = plugin.displayVersion;
|
|
89
89
|
|
|
@@ -93,7 +93,7 @@ export default {
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
// Make sure we have the version available
|
|
96
|
-
const versionChart = plugin.installableVersions?.find(v => v.version === this.version);
|
|
96
|
+
const versionChart = plugin.installableVersions?.find((v) => v.version === this.version);
|
|
97
97
|
|
|
98
98
|
if (!versionChart) {
|
|
99
99
|
this.version = plugin.installableVersions?.[0]?.version;
|
|
@@ -117,7 +117,7 @@ export default {
|
|
|
117
117
|
this.$emit('update', plugin.name, 'install');
|
|
118
118
|
|
|
119
119
|
// Find the version that the user wants to install
|
|
120
|
-
const version = plugin.versions?.find(v => v.version === this.version);
|
|
120
|
+
const version = plugin.versions?.find((v) => v.version === this.version);
|
|
121
121
|
|
|
122
122
|
if (!version) {
|
|
123
123
|
this.busy = false;
|
|
@@ -65,7 +65,7 @@ export default {
|
|
|
65
65
|
async loadPluginVersionInfo(version) {
|
|
66
66
|
const versionName = version || this.info.displayVersion;
|
|
67
67
|
|
|
68
|
-
const isVersionNotCompatibleWithUi = this.info.versions?.find(v => v.version === versionName && !v.isCompatibleWithUi);
|
|
68
|
+
const isVersionNotCompatibleWithUi = this.info.versions?.find((v) => v.version === versionName && !v.isCompatibleWithUi);
|
|
69
69
|
|
|
70
70
|
if (!this.info.chart || isVersionNotCompatibleWithUi) {
|
|
71
71
|
return;
|
|
@@ -20,7 +20,7 @@ export default {
|
|
|
20
20
|
if (this.$store.getters['management/schemaFor'](CATALOG.CLUSTER_REPO)) {
|
|
21
21
|
const repos = await this.$store.dispatch('management/findAll', { type: CATALOG.CLUSTER_REPO, opt: { force: true } });
|
|
22
22
|
|
|
23
|
-
this.defaultRepo = repos.find(r => r.name === UI_PLUGINS_REPO_NAME && r.spec.gitRepo === UI_PLUGINS_REPO_URL);
|
|
23
|
+
this.defaultRepo = repos.find((r) => r.name === UI_PLUGINS_REPO_NAME && r.spec.gitRepo === UI_PLUGINS_REPO_URL);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
if (this.$store.getters['management/schemaFor'](UI_PLUGIN)) {
|
|
@@ -70,7 +70,7 @@ export default {
|
|
|
70
70
|
|
|
71
71
|
if (!this.removeCRD) {
|
|
72
72
|
// User does not want to uninstall the CRD, so remove the chart
|
|
73
|
-
uninstall = uninstall.filter(chart => chart !== UI_PLUGIN_OPERATOR_CRD_CHART_NAME);
|
|
73
|
+
uninstall = uninstall.filter((chart) => chart !== UI_PLUGIN_OPERATOR_CRD_CHART_NAME);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
for (let i = 0; i < uninstall.length; i++) {
|
|
@@ -93,7 +93,7 @@ export default {
|
|
|
93
93
|
|
|
94
94
|
this.$store.dispatch('management/forgetType', UI_PLUGIN);
|
|
95
95
|
|
|
96
|
-
await new Promise(resolve => setTimeout(resolve, 5000));
|
|
96
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
97
97
|
|
|
98
98
|
this.$emit('done');
|
|
99
99
|
|