@rancher/shell 0.3.14 → 0.3.16
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 +84 -3
- package/assets/translations/zh-hans.yaml +68 -26
- 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/generic.vue +1 -1
- 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/BannerGraphic.vue +1 -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 +3 -2
- package/components/DashboardMetrics.vue +8 -0
- package/components/DetailTop.vue +1 -1
- package/components/EmberPage.vue +1 -0
- 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 +14 -2
- package/components/GrowlManager.vue +1 -1
- package/components/HarvesterServiceAddOnConfig.vue +4 -3
- 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/SimpleBox.vue +1 -0
- 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 +14 -10
- 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 +7 -2
- 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 -9
- package/config/pod-security-admission.ts +1 -1
- package/config/product/auth.js +5 -5
- package/config/product/explorer.js +14 -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/pkg/files/index.ts +1 -1
- package/detail/catalog.cattle.io.clusterrepo.vue +8 -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/__tests__/monitoring.coreos.com.prometheusrule.test.ts +56 -0
- 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.prometheusrule/index.vue +8 -3
- 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 +3 -2
- package/pages/about.vue +9 -9
- package/pages/account/index.vue +2 -2
- package/pages/auth/login.vue +25 -12
- package/pages/auth/setup.vue +4 -0
- 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 +10 -10
- 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 +8 -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 +25 -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/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 +10 -2
- 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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="Layer_1" x="0px" y="0px" viewBox="0 0 70.7 48.2" style="enable-background:new 0 0 70.7 48.2;" xml:space="preserve"> <style type="text/css"> .st0{fill:#A8CB3A;} .st1{fill:#174489;} </style> <title>nutanix logo</title> <g> <path id="Fill-1" class="st0" d="M15.6,47.8c-0.2,0.2-0.4,0.3-0.7,0.3H1.1c-0.4,0-0.9-0.2-1-0.6c-0.2-0.5-0.1-1,0.3-1.3L25.5,25 c0.6-0.5,0.6-1.3,0-1.8L0.4,2C0.1,1.7-0.1,1.3,0,0.9C0.1,0.4,0.6,0,1.1,0h13.2c0.3,0,0.5,0.1,0.7,0.3l27.3,23l0.2,0.2 c0.4,0.4,0.4,1,0,1.4l-0.3,0.2L15.6,47.8"></path> <path id="Fill-8" class="st1" d="M46.6,20.2c0.4,0.4,1.1,0.4,1.5,0L70,2c0.3-0.3,0.5-0.7,0.4-1C70.3,0.4,69.8,0,69.3,0H56.1 c-0.3,0-0.5,0.1-0.7,0.3L40,12.8c-0.6,0.5-0.6,1.3,0,1.8L46.6,20.2"></path> <path id="Fill-9" class="st1" d="M46.5,28.1c0.4-0.4,1.1-0.4,1.5,0l22.2,18.2c0.3,0.3,0.5,0.7,0.4,1c-0.1,0.5-0.6,0.9-1.1,0.9H56.3 c-0.3,0-0.5-0.1-0.7-0.3L40.4,35.3c-0.6-0.5-0.6-1.3,0-1.8L46.5,28.1"></path> </g> </svg>
|
|
@@ -73,6 +73,7 @@ generic:
|
|
|
73
73
|
techPreview: Tech Preview
|
|
74
74
|
type: Type
|
|
75
75
|
unknown: Unknown
|
|
76
|
+
upload: Upload
|
|
76
77
|
provisioning: '—'
|
|
77
78
|
key: Key
|
|
78
79
|
value: Value
|
|
@@ -117,6 +118,7 @@ locale:
|
|
|
117
118
|
none: (None)
|
|
118
119
|
|
|
119
120
|
nav:
|
|
121
|
+
harvesterDashboard: Harvester Dashboard
|
|
120
122
|
backToRancher: Cluster Manager
|
|
121
123
|
clusterTools: Cluster Tools
|
|
122
124
|
kubeconfig:
|
|
@@ -179,6 +181,7 @@ nav:
|
|
|
179
181
|
multiCluster: Global Apps
|
|
180
182
|
legacy: Legacy Apps
|
|
181
183
|
configuration: Configuration
|
|
184
|
+
hci: HCI
|
|
182
185
|
search:
|
|
183
186
|
placeholder: Type to search clusters
|
|
184
187
|
noResults: No matching clusters
|
|
@@ -4007,6 +4010,7 @@ plugins:
|
|
|
4007
4010
|
host: This Extension is not compatible with this application
|
|
4008
4011
|
version: This Extension is not compatible with this version of Rancher
|
|
4009
4012
|
load: An error occurred loading the code for this Extension
|
|
4013
|
+
developerPkg: This Extension has been loaded internally, so we won't load the external version
|
|
4010
4014
|
success:
|
|
4011
4015
|
title: Loaded extension {name}
|
|
4012
4016
|
message: Extension was loaded successfully
|
|
@@ -4436,7 +4440,6 @@ rbac:
|
|
|
4436
4440
|
members:
|
|
4437
4441
|
label: Members
|
|
4438
4442
|
roletemplate:
|
|
4439
|
-
label: Roles
|
|
4440
4443
|
newUserDefault:
|
|
4441
4444
|
no: No
|
|
4442
4445
|
tooltip: This does not affect any bindings to the role that already exist.
|
|
@@ -5583,8 +5586,8 @@ validation:
|
|
|
5583
5586
|
tooLongPrefix: '"{key}" cannot have a prefix longer than {max} characters'
|
|
5584
5587
|
minLength: '"{key}" must contain more than {min} characters'
|
|
5585
5588
|
maxLength: '"{key}" must contain less than {max} characters'
|
|
5586
|
-
minValue: '"{key}" must be higher than {min}'
|
|
5587
|
-
maxValue: '"{key}" must be lower than {max}'
|
|
5589
|
+
minValue: '"{key}" must be equal or higher than {min}'
|
|
5590
|
+
maxValue: '"{key}" must be equal or lower than {max}'
|
|
5588
5591
|
betweenLengths: '"{key}" must contain between {min} and {max} characters'
|
|
5589
5592
|
betweenValues: '"{key}" must be between {min} and {max}'
|
|
5590
5593
|
noSchema: No schema found to validate
|
|
@@ -7168,6 +7171,7 @@ resourceQuota:
|
|
|
7168
7171
|
resourceType: Resource Type
|
|
7169
7172
|
helpText: Configure how much of the resources the namespace as a whole can consume.
|
|
7170
7173
|
helpTextDetail: The amount of resources the namespace as a whole can consume.
|
|
7174
|
+
helpTextHarvester: VMs need to reserve additional memory overhead.
|
|
7171
7175
|
configMaps: Config Maps
|
|
7172
7176
|
limitsCpu: CPU Limit
|
|
7173
7177
|
limitsMemory: Memory Limit
|
|
@@ -7319,12 +7323,89 @@ manager:
|
|
|
7319
7323
|
label: Node Templates
|
|
7320
7324
|
|
|
7321
7325
|
auth:
|
|
7326
|
+
roleTemplate: Role Templates
|
|
7322
7327
|
config:
|
|
7323
7328
|
label: Auth Provider
|
|
7324
7329
|
vncConsole:
|
|
7325
7330
|
error:
|
|
7326
7331
|
message: Web VNC console connection is disconnected
|
|
7327
7332
|
|
|
7333
|
+
gitPicker:
|
|
7334
|
+
github:
|
|
7335
|
+
label: GitHub
|
|
7336
|
+
tableHeaders:
|
|
7337
|
+
choose:
|
|
7338
|
+
label: Select
|
|
7339
|
+
sha:
|
|
7340
|
+
label: SHA
|
|
7341
|
+
author:
|
|
7342
|
+
label: Author
|
|
7343
|
+
unknown: Unknown
|
|
7344
|
+
message:
|
|
7345
|
+
label: Message
|
|
7346
|
+
date:
|
|
7347
|
+
label: Date
|
|
7348
|
+
username:
|
|
7349
|
+
label: Username / Organization
|
|
7350
|
+
inputLabel: Username / Organization
|
|
7351
|
+
tooltip: Username / Organization of the Git Repository
|
|
7352
|
+
branch:
|
|
7353
|
+
label: Branch
|
|
7354
|
+
inputLabel: Branch
|
|
7355
|
+
tooltip: Branch to deploy
|
|
7356
|
+
repo:
|
|
7357
|
+
label: Repository
|
|
7358
|
+
inputLabel: Repository
|
|
7359
|
+
tooltip: Branch to deploy from
|
|
7360
|
+
commits:
|
|
7361
|
+
label: Commits
|
|
7362
|
+
tooltip: Commits to deploy from
|
|
7363
|
+
commit:
|
|
7364
|
+
label: Commit
|
|
7365
|
+
inputLabel: Commit
|
|
7366
|
+
commitMessage:
|
|
7367
|
+
label: Commit Message
|
|
7368
|
+
errors:
|
|
7369
|
+
noAccount: No GitHub account or Organization found. Please review your query and try again.
|
|
7370
|
+
noBranch: No branch found. Please review your query and try again."
|
|
7371
|
+
gitlab:
|
|
7372
|
+
label: GitLab
|
|
7373
|
+
tableHeaders:
|
|
7374
|
+
choose:
|
|
7375
|
+
label: Select
|
|
7376
|
+
sha:
|
|
7377
|
+
label: SHA
|
|
7378
|
+
author:
|
|
7379
|
+
label: Author
|
|
7380
|
+
unknown: Unknown
|
|
7381
|
+
message:
|
|
7382
|
+
label: Message
|
|
7383
|
+
date:
|
|
7384
|
+
label: Date
|
|
7385
|
+
username:
|
|
7386
|
+
label: Username / Organization
|
|
7387
|
+
inputLabel: Username / Organization
|
|
7388
|
+
tooltip: Username / Organization of the Git Repository
|
|
7389
|
+
branch:
|
|
7390
|
+
label: Branch
|
|
7391
|
+
inputLabel: Branch
|
|
7392
|
+
tooltip: Branch to deploy
|
|
7393
|
+
repo:
|
|
7394
|
+
label: Repository
|
|
7395
|
+
inputLabel: Repository
|
|
7396
|
+
tooltip: Branch to deploy from
|
|
7397
|
+
commits:
|
|
7398
|
+
label: Commits
|
|
7399
|
+
tooltip: Commits to deploy from
|
|
7400
|
+
commit:
|
|
7401
|
+
label: Commit
|
|
7402
|
+
inputLabel: Commit
|
|
7403
|
+
commitMessage:
|
|
7404
|
+
label: Commit Message
|
|
7405
|
+
errors:
|
|
7406
|
+
noAccount: No GitLab account or Organization found. Please review your query and try again.
|
|
7407
|
+
noBranch: No branch found. Please review your query and try again."
|
|
7408
|
+
|
|
7328
7409
|
networkAttachmentDefinition:
|
|
7329
7410
|
tabs:
|
|
7330
7411
|
config: Config
|
|
@@ -117,6 +117,7 @@ locale:
|
|
|
117
117
|
none: (None)
|
|
118
118
|
|
|
119
119
|
nav:
|
|
120
|
+
harvesterDashboard: Harvester 仪表板
|
|
120
121
|
backToRancher: Cluster Manager
|
|
121
122
|
clusterTools: 集群工具
|
|
122
123
|
kubeconfig:
|
|
@@ -179,6 +180,7 @@ nav:
|
|
|
179
180
|
multiCluster: 全局应用
|
|
180
181
|
legacy: 旧版应用
|
|
181
182
|
configuration: 配置
|
|
183
|
+
hci: HCI
|
|
182
184
|
search:
|
|
183
185
|
placeholder: 输入关键词,搜索集群
|
|
184
186
|
noResults: 没有匹配的集群
|
|
@@ -1282,9 +1284,6 @@ cluster:
|
|
|
1282
1284
|
label: KubeconfigContent
|
|
1283
1285
|
placeholder: '命名空间/名称'
|
|
1284
1286
|
cluster: 导入的 Harvester 集群
|
|
1285
|
-
affinity:
|
|
1286
|
-
namespaces:
|
|
1287
|
-
placeholder: 例如:default,system,base
|
|
1288
1287
|
installGuestAgent: 安装访客代理
|
|
1289
1288
|
description:
|
|
1290
1289
|
label: 集群描述
|
|
@@ -4002,12 +4001,14 @@ plugins:
|
|
|
4002
4001
|
builtin: 内置角色
|
|
4003
4002
|
experimental: 实验功能
|
|
4004
4003
|
third-party: 第三方
|
|
4004
|
+
image: 镜像
|
|
4005
4005
|
installing: 正在安装...
|
|
4006
4006
|
uninstalling: 正在卸载...
|
|
4007
4007
|
descriptions:
|
|
4008
4008
|
experimental: 这是实验性扩展
|
|
4009
4009
|
third-party: 此扩展由第三方提供
|
|
4010
4010
|
built-in: 这是内置扩展
|
|
4011
|
+
image: 已手动加载此扩展镜像
|
|
4011
4012
|
error:
|
|
4012
4013
|
title: 加载扩展时出错
|
|
4013
4014
|
message: 无法加载扩展代码
|
|
@@ -4037,12 +4038,53 @@ plugins:
|
|
|
4037
4038
|
available: 没有可用的扩展
|
|
4038
4039
|
installed: 没有已安装的扩展
|
|
4039
4040
|
updates: 没有可用于已安装扩展的更新
|
|
4041
|
+
images: 未安装扩展镜像
|
|
4040
4042
|
loadError: 加载此扩展的代码时出错
|
|
4041
4043
|
helmError: "通过 Helm 安装扩展时出错"
|
|
4042
4044
|
manageRepos: 管理仓库
|
|
4045
|
+
manageCharts: 管理扩展 Chart
|
|
4046
|
+
manageCatalog:
|
|
4047
|
+
label: 管理扩展商店
|
|
4048
|
+
title: 扩展
|
|
4049
|
+
subtitle: 应用商店
|
|
4050
|
+
imageLoad:
|
|
4051
|
+
load: 导入扩展商店
|
|
4052
|
+
prompt: 扩展商店包含了打包在镜像中的扩展资产,导入将获取该镜像,并托管一个 Helm 仓库来作为自定义构建扩展的商店。
|
|
4053
|
+
fields:
|
|
4054
|
+
image:
|
|
4055
|
+
label: 商店镜像参考
|
|
4056
|
+
placeholder: "例如:hub.docker.io/example-org/my-image:latest"
|
|
4057
|
+
secrets:
|
|
4058
|
+
banner: "如果托管目录镜像的仓库需要拉取 Secret,则必须在以下命名空间中创建它们:<pre>cattle-ui-plugin-system</pre>"
|
|
4059
|
+
banner: 这将创建 Deployment、Service 和 Helm 仓库来服务扩展 Chart。
|
|
4060
|
+
imageVersion:
|
|
4061
|
+
title: 找不到镜像版本
|
|
4062
|
+
message: 无法通过 {image} 确定镜像版本,默认为 latest
|
|
4063
|
+
error:
|
|
4064
|
+
exists:
|
|
4065
|
+
deployment:
|
|
4066
|
+
title: 部署冲突
|
|
4067
|
+
message: 使用 {image} 镜像的容器已存在
|
|
4068
|
+
service:
|
|
4069
|
+
title: Service 冲突
|
|
4070
|
+
message: 名称为 {svc} 的 Service 已存在
|
|
4071
|
+
repo:
|
|
4072
|
+
title: Helm 仓库冲突
|
|
4073
|
+
message: 名称为 {repo} 的仓库已存在
|
|
4074
|
+
success:
|
|
4075
|
+
title: "导入的扩展商店来自:{name}"
|
|
4076
|
+
message: 已成功导入扩展商店镜像
|
|
4077
|
+
headers:
|
|
4078
|
+
image:
|
|
4079
|
+
name: 镜像
|
|
4080
|
+
label: Deployment 镜像
|
|
4081
|
+
cacheState:
|
|
4082
|
+
name: cacheState
|
|
4083
|
+
label: 缓存状态
|
|
4043
4084
|
tabs:
|
|
4044
4085
|
all: 全部
|
|
4045
4086
|
available: 可用
|
|
4087
|
+
images: 镜像
|
|
4046
4088
|
installed: 已安装
|
|
4047
4089
|
updates: 更新
|
|
4048
4090
|
title: 扩展
|
|
@@ -4065,6 +4107,7 @@ plugins:
|
|
|
4065
4107
|
label: 卸载
|
|
4066
4108
|
title: "卸载扩展 {name}"
|
|
4067
4109
|
prompt: "确定要卸载此扩展吗?"
|
|
4110
|
+
custom: "确定要卸载此扩展镜像吗?此镜像提供的扩展也将被删除。"
|
|
4068
4111
|
upgradeAvailable: 此扩展有可用的版本更新
|
|
4069
4112
|
reload: 扩展已更改 - 需要重新加载
|
|
4070
4113
|
safeMode:
|
|
@@ -4599,8 +4642,8 @@ resourceList:
|
|
|
4599
4642
|
create: 创建
|
|
4600
4643
|
createFromYaml: 使用 YAML 文件创建
|
|
4601
4644
|
createResource: "创建 {resourceName}"
|
|
4602
|
-
nsFiltering: "
|
|
4603
|
-
nsFilterToolTip: "
|
|
4645
|
+
nsFiltering: "请使用上面的过滤器选择一个或多个命名空间或项目。"
|
|
4646
|
+
nsFilterToolTip: "仅限于过滤项目和命名空间"
|
|
4604
4647
|
resourceLoadingIndicator:
|
|
4605
4648
|
loading: 正在加载
|
|
4606
4649
|
|
|
@@ -4811,20 +4854,13 @@ servicesPage:
|
|
|
4811
4854
|
title: 附加配置
|
|
4812
4855
|
ipam:
|
|
4813
4856
|
label: IPAM
|
|
4814
|
-
|
|
4815
|
-
label:
|
|
4816
|
-
|
|
4817
|
-
label:
|
|
4818
|
-
|
|
4819
|
-
|
|
4820
|
-
|
|
4821
|
-
description: 如果健康检查失败的数量达到失败阈值,后端服务器将停止转发流量。
|
|
4822
|
-
healthCheckPeriod:
|
|
4823
|
-
label: 健康检查周期
|
|
4824
|
-
healthCheckTimeout:
|
|
4825
|
-
label: 健康检查超时
|
|
4826
|
-
healthCheckEnabled:
|
|
4827
|
-
label: 健康检查
|
|
4857
|
+
useShareIP:
|
|
4858
|
+
label: 使用共享 IP
|
|
4859
|
+
useIpam:
|
|
4860
|
+
label: 使用 IPAM
|
|
4861
|
+
shareIP:
|
|
4862
|
+
label: 共享 IP LB
|
|
4863
|
+
|
|
4828
4864
|
ips:
|
|
4829
4865
|
define: 服务端口
|
|
4830
4866
|
clusterIpHelpText: 集群 IP 地址必须在为 API server 配置的 CIDR 范围内。
|
|
@@ -6035,7 +6071,7 @@ workload:
|
|
|
6035
6071
|
noExecute: 不执行
|
|
6036
6072
|
noSchedule: "不调度"
|
|
6037
6073
|
preferNoSchedule: 倾向于不调度
|
|
6038
|
-
labelKey:
|
|
6074
|
+
labelKey: 键
|
|
6039
6075
|
operator: 运算符
|
|
6040
6076
|
operatorOptions:
|
|
6041
6077
|
equal: =
|
|
@@ -6373,6 +6409,11 @@ typeLabel:
|
|
|
6373
6409
|
one { 集群成员 }
|
|
6374
6410
|
other { 集群成员 }
|
|
6375
6411
|
}
|
|
6412
|
+
projectroletemplatebinding: |-
|
|
6413
|
+
{count, plural,
|
|
6414
|
+
one { 项目成员 }
|
|
6415
|
+
other { 项目成员 }
|
|
6416
|
+
}
|
|
6376
6417
|
management.cattle.io.feature: |-
|
|
6377
6418
|
{count, plural,
|
|
6378
6419
|
one { 功能开关 }
|
|
@@ -7012,6 +7053,7 @@ performance:
|
|
|
7012
7053
|
启用后,资源会更快出现,但可能需要更长的时间来加载整个资源集。此设置仅适用于来自 Kubernetes API 的资源
|
|
7013
7054
|
checkboxLabel: 启用增量加载
|
|
7014
7055
|
inputLabel: 资源阈值
|
|
7056
|
+
incompatibleDescription: "增量加载与命名空间/项目过滤不兼容,无法同时启用。"
|
|
7015
7057
|
manualRefresh:
|
|
7016
7058
|
label: 手动刷新
|
|
7017
7059
|
setting: 你可以配置一个阈值,高于该阈值时则启用手动刷新。
|
|
@@ -7020,6 +7062,7 @@ performance:
|
|
|
7020
7062
|
启用后,列表数据不会自动更新,用户必须手动刷新列表视图。此设置仅适用于来自 Kubernetes API 的资源
|
|
7021
7063
|
checkboxLabel: 启用列表数据的手动刷新
|
|
7022
7064
|
inputLabel: 资源阈值
|
|
7065
|
+
incompatibleDescription: "手动刷新与命名空间/项目过滤不兼容,无法同时启用。"
|
|
7023
7066
|
websocketNotification:
|
|
7024
7067
|
label: WebSocket 通知
|
|
7025
7068
|
description: |-
|
|
@@ -7047,12 +7090,10 @@ performance:
|
|
|
7047
7090
|
description: 资源必须超过此数量才能考虑进行垃圾回收。
|
|
7048
7091
|
inputLabel: 资源数量
|
|
7049
7092
|
nsFiltering:
|
|
7050
|
-
label:
|
|
7051
|
-
description:
|
|
7052
|
-
checkboxLabel:
|
|
7053
|
-
|
|
7054
|
-
inputLabel: 资源阈值
|
|
7055
|
-
description: 需要按命名空间过滤的阈值
|
|
7093
|
+
label: 要求命名空间/项目过滤
|
|
7094
|
+
description: 用户需要选择命名空间和/或项目。这将限制查看列表时获取的资源数量,有助于在具有大量资源的系统中提高 UI 的响应速度。
|
|
7095
|
+
checkboxLabel: 启用要求命名空间/项目过滤
|
|
7096
|
+
incompatibleDescription: "\"要求命名空间/项目过滤\"与手动刷新和增量加载不兼容,无法同时启用。"
|
|
7056
7097
|
advancedWorker:
|
|
7057
7098
|
label: Websocket Web Worker
|
|
7058
7099
|
description: 推送到 UI 的资源更新来自 WebSocket,并在 UI 线程中处理。启用此选项可在单独的线程中处理 Web Worker 中的集群 WebSocket 更新。这有助于提高 UI 在资源经常变化的系统中的响应能力。
|
|
@@ -7147,6 +7188,7 @@ resourceQuota:
|
|
|
7147
7188
|
resourceType: 资源类型
|
|
7148
7189
|
helpText: 配置整个命名空间可用的资源量。
|
|
7149
7190
|
helpTextDetail: 整个命名空间可以使用的资源量。
|
|
7191
|
+
helpTextHarvester: VM 需要预留额外的内存。
|
|
7150
7192
|
configMaps: ConfigMaps
|
|
7151
7193
|
limitsCpu: CPU 限制
|
|
7152
7194
|
limitsMemory: 内存限制
|
package/chart/gatekeeper.vue
CHANGED
|
@@ -25,13 +25,13 @@ export default {
|
|
|
25
25
|
...mapGetters(['currentCluster']),
|
|
26
26
|
crdValues: {
|
|
27
27
|
get() {
|
|
28
|
-
const crdInfo = this.autoInstallInfo.find(info => info.chart.name.includes('crd'));
|
|
28
|
+
const crdInfo = this.autoInstallInfo.find((info) => info.chart.name.includes('crd'));
|
|
29
29
|
|
|
30
30
|
// values are defaults from the chart; allValues are defaults + anything set on previous install if this is an update/upgrade
|
|
31
31
|
return crdInfo ? crdInfo.allValues : null;
|
|
32
32
|
},
|
|
33
33
|
set(values) {
|
|
34
|
-
const crdInfo = this.autoInstallInfo.find(info => info.chart.name.includes('crd'));
|
|
34
|
+
const crdInfo = this.autoInstallInfo.find((info) => info.chart.name.includes('crd'));
|
|
35
35
|
|
|
36
36
|
this.$set(crdInfo, 'allValues', values);
|
|
37
37
|
}
|
|
@@ -47,9 +47,9 @@ export default {
|
|
|
47
47
|
|
|
48
48
|
return secrets
|
|
49
49
|
.filter(
|
|
50
|
-
sec => sec.metadata.namespace === DEFAULT_MONITORING_NAMESPACE
|
|
50
|
+
(sec) => sec.metadata.namespace === DEFAULT_MONITORING_NAMESPACE
|
|
51
51
|
)
|
|
52
|
-
.map(sec => ({ label: sec.metadata.name, value: sec.metadata.name }));
|
|
52
|
+
.map((sec) => ({ label: sec.metadata.name, value: sec.metadata.name }));
|
|
53
53
|
},
|
|
54
54
|
|
|
55
55
|
canUseExistingSecret() {
|
|
@@ -63,7 +63,7 @@ export default {
|
|
|
63
63
|
|
|
64
64
|
existingSecret() {
|
|
65
65
|
return this.secrets.find(
|
|
66
|
-
sec => sec?.metadata?.name ===
|
|
66
|
+
(sec) => sec?.metadata?.name ===
|
|
67
67
|
'alertmanager-rancher-monitoring-alertmanager' &&
|
|
68
68
|
sec?.metadata?.namespace === DEFAULT_MONITORING_NAMESPACE
|
|
69
69
|
);
|
|
@@ -62,7 +62,7 @@ export default {
|
|
|
62
62
|
});
|
|
63
63
|
|
|
64
64
|
await Promise.all(
|
|
65
|
-
Object.values(WORKLOAD_TYPES).map(type => this.$store.dispatch('cluster/findAll', { type })
|
|
65
|
+
Object.values(WORKLOAD_TYPES).map((type) => this.$store.dispatch('cluster/findAll', { type })
|
|
66
66
|
)
|
|
67
67
|
);
|
|
68
68
|
|
|
@@ -113,7 +113,7 @@ export default {
|
|
|
113
113
|
return this.currentCluster.status.provider.toLowerCase();
|
|
114
114
|
},
|
|
115
115
|
workloads() {
|
|
116
|
-
return Object.values(WORKLOAD_TYPES).flatMap(type => this.$store.getters['cluster/all'](type)
|
|
116
|
+
return Object.values(WORKLOAD_TYPES).flatMap((type) => this.$store.getters['cluster/all'](type)
|
|
117
117
|
);
|
|
118
118
|
},
|
|
119
119
|
},
|
|
@@ -88,7 +88,7 @@ export default {
|
|
|
88
88
|
workloads = workloads.filter((workload) => {
|
|
89
89
|
if (
|
|
90
90
|
!isEmpty(workload?.spec?.template?.spec?.containers) &&
|
|
91
|
-
(workload.spec.template.spec.containers.find(c => c.image.includes('quay.io/coreos/prometheus-operator') ||
|
|
91
|
+
(workload.spec.template.spec.containers.find((c) => c.image.includes('quay.io/coreos/prometheus-operator') ||
|
|
92
92
|
c.image.includes('rancher/coreos-prometheus-operator'))
|
|
93
93
|
)
|
|
94
94
|
) {
|
|
@@ -67,11 +67,11 @@ export default {
|
|
|
67
67
|
|
|
68
68
|
computed: {
|
|
69
69
|
defaultStorageClass() {
|
|
70
|
-
return this.storageClasses.filter(sc => sc.metadata.annotations[STORAGE.DEFAULT_STORAGE_CLASS] && sc.metadata.annotations[STORAGE.DEFAULT_STORAGE_CLASS] !== 'false' )[0] || '';
|
|
70
|
+
return this.storageClasses.filter((sc) => sc.metadata.annotations[STORAGE.DEFAULT_STORAGE_CLASS] && sc.metadata.annotations[STORAGE.DEFAULT_STORAGE_CLASS] !== 'false' )[0] || '';
|
|
71
71
|
},
|
|
72
72
|
|
|
73
73
|
availablePVs() {
|
|
74
|
-
return this.persistentVolumes.filter(pv => pv.status.phase.toLowerCase() !== 'bound');
|
|
74
|
+
return this.persistentVolumes.filter((pv) => pv.status.phase.toLowerCase() !== 'bound');
|
|
75
75
|
},
|
|
76
76
|
|
|
77
77
|
radioOptions() {
|
|
@@ -33,7 +33,7 @@ export default {
|
|
|
33
33
|
for ( const k of keyOptions ) {
|
|
34
34
|
const sk = simplify(k);
|
|
35
35
|
|
|
36
|
-
if ( normanSchema || likelyFields.includes(sk) || iffyFields.includes(sk) ) {
|
|
36
|
+
if ( normanSchema?.resourceFields || likelyFields.includes(sk) || iffyFields.includes(sk) ) {
|
|
37
37
|
keys.push(k);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -26,7 +26,7 @@ export default {
|
|
|
26
26
|
|
|
27
27
|
computed: {
|
|
28
28
|
clusterOptions() {
|
|
29
|
-
return this.clusters.filter(c => c.status?.provider === VIRTUAL_HARVESTER_PROVIDER).map( (cluster) => {
|
|
29
|
+
return this.clusters.filter((c) => c.status?.provider === VIRTUAL_HARVESTER_PROVIDER).map( (cluster) => {
|
|
30
30
|
return {
|
|
31
31
|
value: cluster.id,
|
|
32
32
|
label: cluster.nameDisplay
|
|
@@ -45,7 +45,7 @@ export default {
|
|
|
45
45
|
set(this.value, 'harvestercredentialConfig.clusterId', neu);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
const currentCluster = this.$store.getters['management/all'](MANAGEMENT.CLUSTER).find(x => x.id === neu);
|
|
48
|
+
const currentCluster = this.$store.getters['management/all'](MANAGEMENT.CLUSTER).find((x) => x.id === neu);
|
|
49
49
|
|
|
50
50
|
this.$nuxt.$loading.start();
|
|
51
51
|
|
package/components/AssignTo.vue
CHANGED
|
@@ -34,7 +34,7 @@ export default {
|
|
|
34
34
|
...mapGetters(['workspace']),
|
|
35
35
|
|
|
36
36
|
workspaceOptions() {
|
|
37
|
-
const out = this.allWorkspaces.map(x => x.metadata?.name).filter(x => !!x && x !== 'fleet-local');
|
|
37
|
+
const out = this.allWorkspaces.map((x) => x.metadata?.name).filter((x) => !!x && x !== 'fleet-local');
|
|
38
38
|
|
|
39
39
|
return out;
|
|
40
40
|
},
|
|
@@ -17,7 +17,7 @@ export default {
|
|
|
17
17
|
// The notification will always come from the csp-adapter component & there will be no more than one
|
|
18
18
|
// Backend will remove the notification when its no longer relevant
|
|
19
19
|
awsNotification() {
|
|
20
|
-
return this.notifications.find(notification => notification.componentName === 'csp-adapter');
|
|
20
|
+
return this.notifications.find((notification) => notification.componentName === 'csp-adapter');
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
};
|
package/components/BackLink.vue
CHANGED
|
@@ -16,6 +16,13 @@ export default {
|
|
|
16
16
|
>
|
|
17
17
|
<i class="icon icon-chevron-left" /> {{ t('generic.back') }}
|
|
18
18
|
</nuxt-link>
|
|
19
|
+
<nuxt-link
|
|
20
|
+
v-else
|
|
21
|
+
to="/"
|
|
22
|
+
class="back-link"
|
|
23
|
+
>
|
|
24
|
+
<i class="icon icon-chevron-left" /> {{ t('nav.home') }}
|
|
25
|
+
</nuxt-link>
|
|
19
26
|
</template>
|
|
20
27
|
|
|
21
28
|
<style lang="scss" scoped>
|
|
@@ -21,19 +21,19 @@ export default {
|
|
|
21
21
|
...mapGetters({ theme: 'prefs/theme' }),
|
|
22
22
|
|
|
23
23
|
brand() {
|
|
24
|
-
const setting = this.managementSettings.filter(setting => setting.id === SETTING.BRAND)[0] || {};
|
|
24
|
+
const setting = this.managementSettings.filter((setting) => setting.id === SETTING.BRAND)[0] || {};
|
|
25
25
|
|
|
26
26
|
return setting.value;
|
|
27
27
|
},
|
|
28
28
|
|
|
29
29
|
uiLogoLight() {
|
|
30
|
-
const setting = this.managementSettings.filter(setting => setting.id === SETTING.LOGO_LIGHT)[0] || {};
|
|
30
|
+
const setting = this.managementSettings.filter((setting) => setting.id === SETTING.LOGO_LIGHT)[0] || {};
|
|
31
31
|
|
|
32
32
|
return setting.value;
|
|
33
33
|
},
|
|
34
34
|
|
|
35
35
|
uiLogoDark() {
|
|
36
|
-
const setting = this.managementSettings.filter(setting => setting.id === SETTING.LOGO_DARK)[0] || {};
|
|
36
|
+
const setting = this.managementSettings.filter((setting) => setting.id === SETTING.LOGO_DARK)[0] || {};
|
|
37
37
|
|
|
38
38
|
return setting.value;
|
|
39
39
|
},
|
|
@@ -33,7 +33,7 @@ export default {
|
|
|
33
33
|
{{ cluster.badge.iconText }}
|
|
34
34
|
</div>
|
|
35
35
|
<!-- eslint-disable -->
|
|
36
|
-
<svg v-else-if="cluster.isLocal" class="cluster-local-logo" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
|
|
36
|
+
<svg v-else-if="cluster.isLocal && !cluster.isHarvester" class="cluster-local-logo" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve">
|
|
37
37
|
<g>
|
|
38
38
|
<g>
|
|
39
39
|
<path class="rancher-icon-fill" d="M26.0862026,44.4953918H8.6165142c-5.5818157,0-9.3979139-4.6252708-8.4802637-10.1311035l2.858391-17.210701
|
|
@@ -28,7 +28,7 @@ export default {
|
|
|
28
28
|
mixins: [Closeable],
|
|
29
29
|
|
|
30
30
|
async fetch() {
|
|
31
|
-
this.links = await fetchLinks(this.$store, this.hasSupport, this.isSupportPage, str => this.t(str));
|
|
31
|
+
this.links = await fetchLinks(this.$store, this.hasSupport, this.isSupportPage, (str) => this.t(str));
|
|
32
32
|
},
|
|
33
33
|
|
|
34
34
|
data() {
|
|
@@ -72,7 +72,7 @@ export default {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
if (this.links.defaults) {
|
|
75
|
-
all.push(...this.links.defaults.filter(link => link.enabled));
|
|
75
|
+
all.push(...this.links.defaults.filter((link) => link.enabled));
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
return all;
|
|
@@ -41,7 +41,7 @@ export default {
|
|
|
41
41
|
*/
|
|
42
42
|
numberFormatter: {
|
|
43
43
|
type: Function,
|
|
44
|
-
default: value => Number.isInteger(value) ? value : value.toFixed(2)
|
|
44
|
+
default: (value) => Number.isInteger(value) ? value : value.toFixed(2)
|
|
45
45
|
},
|
|
46
46
|
|
|
47
47
|
/**
|
|
@@ -106,7 +106,10 @@ export default {
|
|
|
106
106
|
{{ resourceName }}
|
|
107
107
|
</h4>
|
|
108
108
|
<span v-else>{{ t('node.detail.glance.consumptionGauge.used') }}</span>
|
|
109
|
-
<span
|
|
109
|
+
<span class="numbers-stats">
|
|
110
|
+
{{ t('node.detail.glance.consumptionGauge.amount', amountTemplateValues) }}
|
|
111
|
+
<span class="percentage"><i>/ </i>{{ formattedPercentage }}</span>
|
|
112
|
+
</span>
|
|
110
113
|
</slot>
|
|
111
114
|
</div>
|
|
112
115
|
<div class="mt-10">
|
|
@@ -125,8 +128,20 @@ export default {
|
|
|
125
128
|
flex-direction: row;
|
|
126
129
|
justify-content: space-between;
|
|
127
130
|
|
|
131
|
+
&-stats {
|
|
132
|
+
display: flex;
|
|
133
|
+
flex-direction: row;
|
|
134
|
+
align-items: center;
|
|
135
|
+
gap: 10px;
|
|
136
|
+
align-self: baseline;
|
|
137
|
+
|
|
138
|
+
}
|
|
139
|
+
|
|
128
140
|
.percentage {
|
|
129
141
|
font-weight: bold;
|
|
142
|
+
i {
|
|
143
|
+
margin-right: 10px;
|
|
144
|
+
}
|
|
130
145
|
}
|
|
131
146
|
}
|
|
132
147
|
}
|
|
@@ -184,7 +184,7 @@ export default {
|
|
|
184
184
|
const { validationPassed, showAsForm, steps } = this;
|
|
185
185
|
|
|
186
186
|
if (showAsForm && steps?.length) {
|
|
187
|
-
return validationPassed && this.steps.every(step => step.ready);
|
|
187
|
+
return validationPassed && this.steps.every((step) => step.ready);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
// Don't apply validation rules if the form is not shown.
|
|
@@ -288,7 +288,7 @@ export default {
|
|
|
288
288
|
closeError(index) {
|
|
289
289
|
const errors = this.errors.filter((_, i) => i !== index);
|
|
290
290
|
|
|
291
|
-
this.$emit('error', errors);
|
|
291
|
+
this.$emit('error', errors, this.errors[index]);
|
|
292
292
|
},
|
|
293
293
|
|
|
294
294
|
emitOrRoute() {
|
|
@@ -412,6 +412,7 @@ export default {
|
|
|
412
412
|
</p>
|
|
413
413
|
<form
|
|
414
414
|
:is="(isView? 'div' : 'form')"
|
|
415
|
+
data-testid="cru-form"
|
|
415
416
|
class="create-resource-container cru__form"
|
|
416
417
|
@submit.prevent
|
|
417
418
|
@keydown.enter="onPressEnter($event)"
|
|
@@ -26,6 +26,12 @@ export default {
|
|
|
26
26
|
type: Boolean,
|
|
27
27
|
default: true,
|
|
28
28
|
},
|
|
29
|
+
// change the grafana url prefix for local clusters in certain monitoring versions
|
|
30
|
+
// project monitoring (projectHelmCharts) supply a grafana url that never needs to be modified in this way
|
|
31
|
+
modifyPrefix: {
|
|
32
|
+
type: Boolean,
|
|
33
|
+
default: true
|
|
34
|
+
}
|
|
29
35
|
},
|
|
30
36
|
data() {
|
|
31
37
|
return {
|
|
@@ -74,6 +80,7 @@ export default {
|
|
|
74
80
|
:range="graphOptions.range"
|
|
75
81
|
:url="detailUrl"
|
|
76
82
|
:vars="vars"
|
|
83
|
+
:modify-prefix="modifyPrefix"
|
|
77
84
|
/>
|
|
78
85
|
<GrafanaDashboard
|
|
79
86
|
v-else
|
|
@@ -85,6 +92,7 @@ export default {
|
|
|
85
92
|
:range="graphOptions.range"
|
|
86
93
|
:url="summaryUrl"
|
|
87
94
|
:vars="vars"
|
|
95
|
+
:modify-prefix="modifyPrefix"
|
|
88
96
|
/>
|
|
89
97
|
</div>
|
|
90
98
|
</div>
|
package/components/DetailTop.vue
CHANGED
|
@@ -72,7 +72,7 @@ export default {
|
|
|
72
72
|
const items = [
|
|
73
73
|
...(this.moreDetails || []),
|
|
74
74
|
...(this.value?.details || []),
|
|
75
|
-
].filter(x => x.separator || (!!`${ x.content }` && x.content !== undefined && x.content !== null));
|
|
75
|
+
].filter((x) => x.separator || (!!`${ x.content }` && x.content !== undefined && x.content !== null));
|
|
76
76
|
|
|
77
77
|
const groups = [];
|
|
78
78
|
let currentGroup = [];
|