@rancher/shell 3.0.12-rc.1 → 3.0.12-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/apis/impl/apis.ts +6 -0
- package/apis/index.ts +26 -0
- package/apis/intf/resources-api/cluster-api.ts +18 -0
- package/apis/intf/resources-api/mgmt-api.ts +15 -0
- package/apis/intf/resources-api/resource-base.ts +107 -0
- package/apis/intf/resources-api/resource-constants.ts +147 -0
- package/apis/intf/resources-api/resources-api.ts +143 -0
- package/apis/intf/resources.ts +49 -0
- package/apis/intf/{modal.ts → shell-api/modal.ts} +21 -26
- package/apis/intf/shell-api/proxy.ts +216 -0
- package/apis/intf/{slide-in.ts → shell-api/slide-in.ts} +4 -3
- package/apis/intf/{system.ts → shell-api/system.ts} +4 -1
- package/apis/intf/shell.ts +12 -6
- package/apis/resources/__tests__/resources-api-class.test.ts +550 -0
- package/apis/resources/index.ts +22 -0
- package/apis/resources/resources-api-class.ts +187 -0
- package/apis/shell/__tests__/proxy.test.ts +369 -0
- package/apis/shell/index.ts +8 -1
- package/apis/shell/modal.ts +4 -1
- package/apis/shell/notifications.ts +9 -6
- package/apis/shell/proxy.ts +256 -0
- package/apis/shell/slide-in.ts +4 -1
- package/apis/vue-shim.d.ts +2 -1
- package/assets/data/aws-regions.json +4 -0
- package/assets/fonts/lato/LatoLatin-Black.woff +0 -0
- package/assets/fonts/lato/LatoLatin-Black.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-BlackItalic.woff +0 -0
- package/assets/fonts/lato/LatoLatin-BlackItalic.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-Bold.woff +0 -0
- package/assets/fonts/lato/LatoLatin-Bold.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-BoldItalic.woff +0 -0
- package/assets/fonts/lato/LatoLatin-BoldItalic.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-Heavy.woff +0 -0
- package/assets/fonts/lato/LatoLatin-Heavy.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-HeavyItalic.woff +0 -0
- package/assets/fonts/lato/LatoLatin-HeavyItalic.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-Italic.woff +0 -0
- package/assets/fonts/lato/LatoLatin-Italic.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-Light.woff +0 -0
- package/assets/fonts/lato/LatoLatin-Light.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-LightItalic.woff +0 -0
- package/assets/fonts/lato/LatoLatin-LightItalic.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-Medium.woff +0 -0
- package/assets/fonts/lato/LatoLatin-Medium.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-MediumItalic.woff +0 -0
- package/assets/fonts/lato/LatoLatin-MediumItalic.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-Regular.woff +0 -0
- package/assets/fonts/lato/LatoLatin-Regular.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-Semibold.woff +0 -0
- package/assets/fonts/lato/LatoLatin-Semibold.woff2 +0 -0
- package/assets/fonts/lato/LatoLatin-SemiboldItalic.woff +0 -0
- package/assets/fonts/lato/LatoLatin-SemiboldItalic.woff2 +0 -0
- package/assets/images/providers/entraid-black.svg +4 -0
- package/assets/images/providers/entraid.svg +9 -0
- package/assets/images/vendor/entraid.svg +9 -0
- package/assets/styles/app.scss +0 -1
- package/assets/styles/base/_variables.scss +2 -0
- package/assets/styles/fonts/_fontstack.scss +132 -8
- package/assets/translations/en-us.yaml +41 -22
- package/assets/translations/zh-hans.yaml +4 -8
- package/chart/__tests__/S3.test.ts +10 -3
- package/chart/monitoring/index.vue +10 -1
- package/components/ActionDropdownShell.vue +2 -1
- package/components/CountBox.vue +20 -0
- package/components/CreateDriver.vue +0 -12
- package/components/CruResourceFooter.vue +9 -5
- package/components/DetailText.vue +12 -3
- package/components/ExplorerProjectsNamespaces.vue +1 -1
- package/components/InstallHelmCharts.vue +2 -2
- package/components/LandingPagePreference.vue +14 -5
- package/components/Resource/Detail/Metadata/IdentifyingInformation/index.vue +15 -1
- package/components/Resource/Detail/Metadata/index.vue +6 -0
- package/components/Resource/Detail/ResourcePopover/index.vue +12 -1
- package/components/Resource/Detail/SpacedRow.vue +3 -1
- package/components/Resource/Detail/TitleBar/index.vue +10 -11
- package/components/ResourceList/Masthead.vue +12 -8
- package/components/SelectIconGrid.vue +5 -10
- package/components/SingleClusterInfo.vue +1 -0
- package/components/SortableTable/__tests__/sorting.test.ts +126 -0
- package/components/SortableTable/index.vue +6 -9
- package/components/SortableTable/selection.js +23 -5
- package/components/SortableTable/sorting.js +6 -3
- package/components/Wizard.vue +14 -13
- package/components/__tests__/CountBox.test.ts +72 -0
- package/components/__tests__/DetailText.test.ts +113 -0
- package/components/fleet/FleetBundles.vue +100 -12
- package/components/fleet/FleetClusterTargets/index.vue +54 -15
- package/components/fleet/__tests__/FleetClusterTargets.test.ts +149 -115
- package/components/fleet/__tests__/FleetClusters.test.ts +12 -12
- package/components/form/InputWithSelect.vue +18 -10
- package/components/form/KeyValue.vue +17 -1
- package/components/form/LabeledSelect.vue +101 -26
- package/components/form/NameNsDescription.vue +11 -0
- package/components/form/Security.vue +6 -2
- package/components/form/Select.vue +73 -56
- package/components/form/ServiceNameSelect.vue +13 -11
- package/components/form/WorkloadPorts.vue +2 -7
- package/components/form/__tests__/KeyValue.test.ts +66 -0
- package/components/form/__tests__/NodeScheduling.test.ts +9 -0
- package/components/form/__tests__/Security.test.ts +76 -0
- package/components/form/labeled-select-utils/useLabeledSelectPagination.ts +138 -0
- package/components/formatter/Autoscaler.vue +4 -4
- package/components/formatter/ClusterKubeVersion.vue +27 -0
- package/components/formatter/ClusterLink.vue +1 -7
- package/components/formatter/ClusterProvider.vue +6 -10
- package/components/formatter/FleetSummaryGraph.vue +0 -3
- package/components/formatter/MachineSummaryGraph.vue +1 -1
- package/components/formatter/PodsUsage.vue +2 -2
- package/components/formatter/__tests__/Autoscaler.test.ts +19 -22
- package/components/formatter/__tests__/FleetSummaryGraph.test.ts +216 -0
- package/components/formatter/__tests__/PodsUsage.test.ts +6 -10
- package/components/nav/Group.vue +7 -6
- package/components/nav/Header.vue +24 -3
- package/components/nav/NamespaceFilter.vue +2 -2
- package/components/nav/NotificationCenter/Notification.vue +4 -1
- package/components/nav/NotificationCenter/NotificationHeader.vue +20 -8
- package/components/nav/NotificationCenter/__tests__/NotificationHeader.test.ts +80 -0
- package/components/nav/TopLevelMenu.helper.ts +15 -3
- package/components/nav/TopLevelMenu.vue +16 -5
- package/components/nav/Type.vue +8 -7
- package/components/nav/WindowManager/index.vue +2 -1
- package/components/nav/WorkspaceSwitcher.vue +13 -0
- package/components/nav/__tests__/Group.test.ts +67 -0
- package/components/nav/__tests__/Header.test.ts +235 -0
- package/components/nav/__tests__/TopLevelMenu.test.ts +145 -21
- package/components/nav/__tests__/Type.test.ts +20 -3
- package/components/templates/default.vue +34 -4
- package/components/templates/home.vue +30 -25
- package/components/templates/plain.vue +31 -26
- package/components/templates/standalone.vue +17 -0
- package/composables/useFormValidation.ts +93 -0
- package/composables/useLabeledFormElement.ts +10 -2
- package/composables/useLabeledSelect.ts +60 -0
- package/composables/useUserRetentionValidation.ts +1 -49
- package/composables/useVeeValidateField.test.ts +159 -0
- package/composables/useVeeValidateField.ts +67 -0
- package/config/cookies.js +0 -1
- package/config/labels-annotations.js +1 -0
- package/config/pagination-table-headers.js +18 -1
- package/config/product/manager.js +82 -21
- package/config/query-params.js +1 -0
- package/config/router/routes.js +6 -8
- package/config/table-headers.js +20 -1
- package/config/types.js +2 -1
- package/core/__tests__/plugin-products.test.ts +1505 -30
- package/core/plugin-products-base.ts +137 -20
- package/core/plugin-products-helpers.ts +5 -4
- package/core/plugin-products.ts +4 -0
- package/core/plugin-types.ts +129 -4
- package/core/plugin.ts +15 -7
- package/core/productDebugger.js +9 -4
- package/core/types-provisioning.ts +43 -30
- package/core/types.ts +58 -19
- package/detail/__tests__/management.cattle.io.fleetworkspace.test.ts +128 -0
- package/detail/__tests__/pod.test.ts +41 -0
- package/detail/harvesterhci.io.management.cluster.vue +6 -2
- package/detail/management.cattle.io.fleetworkspace.vue +49 -0
- package/detail/pod.vue +1 -1
- package/detail/provisioning.cattle.io.cluster.vue +4 -10
- package/edit/__tests__/fleet.cattle.io.helmop.test.ts +9 -0
- package/edit/__tests__/kontainerDriver.test.ts +0 -13
- package/edit/__tests__/nodeDriver.test.ts +5 -11
- package/edit/__tests__/resources.cattle.io.restore.test.ts +9 -0
- package/edit/auditlog.cattle.io.auditpolicy/__tests__/__snapshots__/General.test.ts.snap +6 -0
- package/edit/auth/__tests__/azuread.test.ts +217 -34
- package/edit/auth/__tests__/oidc.test.ts +54 -0
- package/edit/auth/azuread.vue +123 -15
- package/edit/auth/oidc.vue +10 -2
- package/edit/kontainerDriver.vue +1 -2
- package/edit/networking.k8s.io.ingress/DefaultBackend.vue +13 -4
- package/edit/networking.k8s.io.ingress/RulePath.vue +8 -4
- package/edit/networking.k8s.io.ingress/index.vue +75 -20
- package/edit/nodeDriver.vue +0 -2
- package/edit/provisioning.cattle.io.cluster/AgentEnv.vue +1 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/AgentEnv.test.ts +25 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/MachinePool.test.ts +104 -0
- package/edit/provisioning.cattle.io.cluster/index.vue +81 -106
- package/edit/provisioning.cattle.io.cluster/rke2.vue +8 -4
- package/edit/provisioning.cattle.io.cluster/tabs/MachinePool.vue +11 -0
- package/edit/provisioning.cattle.io.cluster/tabs/registries/RegistryConfigs.vue +37 -4
- package/edit/provisioning.cattle.io.cluster/tabs/registries/__tests__/RegistryConfigs.test.ts +132 -7
- package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +2 -1
- package/edit/secret/__tests__/ssh.test.ts +5 -6
- package/edit/secret/basic.vue +31 -0
- package/edit/secret/index.vue +68 -17
- package/edit/secret/registry.vue +38 -0
- package/edit/secret/ssh.vue +29 -0
- package/edit/secret/tls.vue +30 -0
- package/edit/service.vue +4 -4
- package/edit/workload/Upgrading.vue +3 -3
- package/edit/workload/__tests__/Upgrading.test.ts +6 -9
- package/edit/workload/mixins/workload.js +2 -1
- package/initialize/App.vue +29 -2
- package/initialize/install-plugins.js +0 -2
- package/list/__tests__/management.cattle.io.feature.test.ts +105 -0
- package/list/catalog.cattle.io.app.vue +25 -5
- package/list/fleet.cattle.io.bundle.vue +7 -104
- package/list/fleet.cattle.io.clusterregistrationtoken.vue +20 -0
- package/list/management.cattle.io.feature.vue +1 -1
- package/list/management.cattle.io.fleetworkspace.vue +8 -0
- package/list/provisioning.cattle.io.cluster.vue +262 -180
- package/list/utils/management.cattle.io.cluster.utils.ts +128 -0
- package/machine-config/amazonec2.vue +1 -0
- package/mixins/__tests__/chart.test.ts +112 -0
- package/mixins/brand.js +2 -1
- package/mixins/chart.js +50 -15
- package/mixins/resource-fetch-api-pagination.js +41 -5
- package/models/__tests__/catalog.cattle.io.app.test.ts +15 -1
- package/models/__tests__/catalog.cattle.io.clusterrepo.test.ts +84 -0
- package/models/__tests__/chart.test.ts +99 -6
- package/models/__tests__/ext.cattle.io.kubeconfig.test.ts +67 -67
- package/models/__tests__/management.cattle.io.cluster.test.ts +1 -1
- package/models/__tests__/management.cattle.io.feature.test.ts +131 -0
- package/models/__tests__/management.cattle.io.node.ts +6 -5
- package/models/__tests__/management.cattle.io.nodepool.ts +5 -4
- package/models/__tests__/monitoring.coreos.com.alertmanagerconfig.test.ts +98 -0
- package/models/__tests__/provisioning.cattle.io.cluster.test.ts +32 -11
- package/models/base-cluster.x-k8s.io.js +26 -0
- package/models/catalog.cattle.io.app.js +21 -17
- package/models/catalog.cattle.io.clusterrepo.js +39 -11
- package/models/chart.js +33 -19
- package/models/cluster.js +1 -1
- package/models/cluster.x-k8s.io.machine.js +4 -22
- package/models/cluster.x-k8s.io.machinedeployment.js +2 -20
- package/models/cluster.x-k8s.io.machineset.js +2 -20
- package/models/compliance.cattle.io.clusterscan.js +130 -2
- package/models/ext.cattle.io.kubeconfig.ts +4 -7
- package/models/fleet-application.js +4 -2
- package/models/fleet.cattle.io.bundle.js +1 -1
- package/models/kontainerdriver.js +11 -0
- package/models/management.cattle.io.authconfig.js +5 -1
- package/models/management.cattle.io.cluster.js +402 -78
- package/models/management.cattle.io.feature.js +3 -3
- package/models/management.cattle.io.kontainerdriver.js +1 -26
- package/models/management.cattle.io.node.js +6 -4
- package/models/management.cattle.io.nodepool.js +1 -1
- package/models/monitoring.coreos.com.alertmanagerconfig.js +31 -17
- package/models/networking.k8s.io.ingress.js +12 -4
- package/models/nodedriver.js +7 -0
- package/models/provisioning.cattle.io.cluster.js +47 -330
- package/models/rke.cattle.io.etcdsnapshot.js +1 -2
- package/package.json +20 -37
- package/pages/__tests__/readme.test.ts +49 -0
- package/pages/auth/setup.vue +2 -3
- package/pages/c/_cluster/apps/charts/__tests__/chart.test.ts +265 -0
- package/pages/c/_cluster/apps/charts/__tests__/index.test.ts +55 -0
- package/pages/c/_cluster/apps/charts/__tests__/install.test.ts +53 -0
- package/pages/c/_cluster/apps/charts/chart.vue +275 -39
- package/pages/c/_cluster/apps/charts/index.vue +2 -2
- package/pages/c/_cluster/apps/charts/install.vue +18 -10
- package/pages/c/_cluster/auth/user.retention/index.vue +55 -22
- package/pages/c/_cluster/explorer/__tests__/index.test.ts +23 -25
- package/pages/c/_cluster/explorer/index.vue +5 -49
- package/pages/c/_cluster/istio/__tests__/istio.index.test.ts +194 -0
- package/pages/c/_cluster/istio/index.vue +21 -6
- package/pages/c/_cluster/manager/drivers/kontainerDriver/index.vue +5 -7
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +40 -2
- package/pages/c/_cluster/uiplugins/__tests__/PluginInfoPanel.test.ts +61 -0
- package/pages/c/_cluster/uiplugins/__tests__/index.test.ts +735 -13
- package/pages/c/_cluster/uiplugins/index.vue +226 -222
- package/pages/diagnostic.vue +13 -17
- package/pages/fail-whale.vue +18 -0
- package/pages/home.vue +77 -260
- package/pages/readme.vue +88 -0
- package/plugins/dashboard-store/__tests__/resource-class.test.ts +88 -0
- package/plugins/dashboard-store/actions.js +40 -18
- package/plugins/dashboard-store/resource-class.js +5 -2
- package/plugins/steve/__tests__/subscribe.spec.ts +6 -3
- package/plugins/steve/steve-pagination-utils.ts +11 -3
- package/plugins/steve/subscribe.js +35 -5
- package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +211 -1
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +37 -4
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +1 -1
- package/rancher-components/RcButton/RcButton.test.ts +37 -1
- package/rancher-components/RcButton/RcButton.vue +38 -8
- package/rancher-components/RcDropdown/RcDropdownTrigger.vue +10 -8
- package/scripts/test-plugins-build.sh +5 -2
- package/server/server-middleware.js +2 -2
- package/static/humans.txt +1 -0
- package/static/robots.txt +34 -0
- package/static/welcome-cow.svg +18 -0
- package/store/__tests__/catalog.test.ts +276 -12
- package/store/__tests__/type-map.test.ts +556 -1
- package/store/action-menu.js +8 -3
- package/store/auth.js +1 -4
- package/store/aws.js +27 -16
- package/store/catalog.js +87 -11
- package/store/digitalocean.js +20 -38
- package/store/index.js +2 -0
- package/store/linode.js +25 -40
- package/store/pnap.js +1 -0
- package/store/type-map.js +111 -29
- package/tsconfig.paths.json +8 -8
- package/types/kube/kube-api.ts +14 -1
- package/types/rancher/steve.api.ts +12 -12
- package/types/resources/settings.d.ts +2 -1
- package/types/shell/index.d.ts +128 -24
- package/types/store/dashboard-store.types.ts +108 -11
- package/types/store/pagination.types.ts +6 -3
- package/utils/__tests__/alertmanagerconfig.test.ts +117 -0
- package/utils/__tests__/async.test.ts +87 -0
- package/utils/__tests__/aws.test.ts +140 -0
- package/utils/__tests__/banners.test.ts +176 -0
- package/utils/__tests__/chart.test.ts +64 -1
- package/utils/__tests__/color.test.ts +226 -0
- package/utils/__tests__/duration.test.ts +140 -0
- package/utils/__tests__/fleet.test.ts +340 -0
- package/utils/__tests__/git.test.ts +270 -0
- package/utils/__tests__/inactivity.test.ts +316 -0
- package/utils/__tests__/ingress.test.ts +553 -0
- package/utils/__tests__/kube.test.ts +68 -0
- package/utils/__tests__/namespace-filter.test.ts +109 -0
- package/utils/__tests__/object.test.ts +77 -0
- package/utils/__tests__/pagination-utils.test.ts +361 -0
- package/utils/__tests__/parse-externalid.test.ts +137 -0
- package/utils/__tests__/perf-setting.utils.test.ts +98 -0
- package/utils/__tests__/poller-sequential.test.ts +177 -0
- package/utils/__tests__/poller.test.ts +170 -0
- package/utils/__tests__/promise.test.ts +346 -0
- package/utils/__tests__/settings.test.ts +140 -0
- package/utils/__tests__/sort-utils.test.ts +301 -0
- package/utils/__tests__/string-utils.test.ts +798 -0
- package/utils/__tests__/string.test.ts +23 -1
- package/utils/__tests__/style.test.ts +154 -0
- package/utils/__tests__/svg-filter.test.ts +184 -0
- package/utils/__tests__/time.test.ts +14 -1
- package/utils/__tests__/units.test.ts +417 -0
- package/utils/__tests__/url.test.ts +246 -0
- package/utils/__tests__/versions.test.ts +128 -0
- package/utils/__tests__/xccdf.test.ts +391 -0
- package/utils/chart.js +36 -0
- package/utils/fleet.ts +13 -3
- package/utils/gatekeeper/__tests__/util.test.ts +174 -0
- package/utils/gc/__tests__/gc-interval.test.ts +119 -0
- package/utils/gc/__tests__/gc-root-store.test.ts +225 -0
- package/utils/gc/__tests__/gc-route-changed.test.ts +96 -0
- package/utils/gc/__tests__/gc.test.ts +487 -0
- package/utils/ingress.ts +9 -1
- package/utils/object.js +33 -2
- package/utils/pagination-utils.ts +2 -1
- package/utils/string.js +25 -2
- package/utils/time.ts +5 -0
- package/utils/uiplugins.ts +5 -5
- package/utils/validators/__tests__/cluster-name.test.ts +110 -0
- package/utils/validators/__tests__/cron-schedule.test.ts +79 -0
- package/utils/validators/__tests__/index.test.ts +481 -0
- package/utils/validators/__tests__/kubernetes-name.test.ts +163 -0
- package/utils/validators/__tests__/misc-validators.test.ts +246 -0
- package/utils/validators/__tests__/pod-affinity.test.ts +382 -0
- package/utils/validators/__tests__/prometheusrule.test.ts +211 -0
- package/utils/validators/__tests__/role-template.test.ts +149 -0
- package/utils/validators/__tests__/service.test.ts +283 -0
- package/utils/validators/__tests__/setting.test.js +32 -0
- package/utils/validators/formRules/__tests__/index.test.ts +50 -0
- package/utils/validators/formRules/index.ts +5 -5
- package/utils/validators/machine-pool.ts +1 -1
- package/utils/validators/setting.js +18 -3
- package/utils/xccdf.ts +418 -0
- package/vue.config.js +0 -9
- package/assets/fonts/lato/lato-v17-latin-700.woff +0 -0
- package/assets/fonts/lato/lato-v17-latin-700.woff2 +0 -0
- package/assets/fonts/lato/lato-v17-latin-regular.woff +0 -0
- package/assets/fonts/lato/lato-v17-latin-regular.woff2 +0 -0
- package/assets/images/providers/azuread-black.svg +0 -22
- package/assets/images/providers/azuread.svg +0 -25
- package/assets/images/vendor/azuread.svg +0 -18
- package/assets/styles/fonts/_dots.scss +0 -18
- package/components/EmberPage.vue +0 -622
- package/components/EmberPageView.vue +0 -39
- package/components/form/labeled-select-utils/labeled-select-pagination.ts +0 -116
- package/mixins/labeled-form-element.ts +0 -225
- package/pages/c/_cluster/explorer/tools/pages/_page.vue +0 -28
- package/pages/c/_cluster/manager/pages/_page.vue +0 -22
- package/pages/c/_cluster/mcapps/pages/_page.vue +0 -22
- package/plugins/ember-cookie.js +0 -17
- package/utils/ember-page.js +0 -30
|
@@ -132,6 +132,7 @@ generic:
|
|
|
132
132
|
deprecated: Deprecated
|
|
133
133
|
upgradeable: Upgradeable
|
|
134
134
|
installed: Installed
|
|
135
|
+
installedMultiple: Installed (multiple)
|
|
135
136
|
featured: Featured
|
|
136
137
|
shortFeatured: Feat
|
|
137
138
|
category: Category
|
|
@@ -184,6 +185,7 @@ locale:
|
|
|
184
185
|
none: (None)
|
|
185
186
|
|
|
186
187
|
nav:
|
|
188
|
+
skipToContent: Skip to main content
|
|
187
189
|
ariaLabel:
|
|
188
190
|
clusterIconKeyCombo: Cluster keyboard shortcut combination icon
|
|
189
191
|
localClusterIcon: Local Cluster icon
|
|
@@ -498,7 +500,7 @@ authConfig:
|
|
|
498
500
|
unrestricted: Allow any valid user
|
|
499
501
|
allowedPrincipalIds:
|
|
500
502
|
title: Authorized Users & Groups
|
|
501
|
-
associatedWarning: 'The {provider} account that is used to enable the external provider will be granted
|
|
503
|
+
associatedWarning: 'The {provider} account that is used to enable the external provider will be granted permissions equal to the currently logged in Rancher user. See <a href="{docsBase}/how-to-guides/new-user-guides/authentication-permissions-and-global-configuration/authentication-config#external-authentication-configuration-and-principal-users" target="_blank" rel="noopener noreferrer nofollow">External Authentication Configuration and Principal Users</a> to understand why.'
|
|
502
504
|
githubapp:
|
|
503
505
|
clientId:
|
|
504
506
|
label: Client ID
|
|
@@ -712,7 +714,7 @@ authConfig:
|
|
|
712
714
|
azuread:
|
|
713
715
|
tenantId:
|
|
714
716
|
label: Tenant ID
|
|
715
|
-
tooltip: From the
|
|
717
|
+
tooltip: From the Microsoft Entra admin center
|
|
716
718
|
placeholder: A long UUID string
|
|
717
719
|
applicationId:
|
|
718
720
|
label: Application ID
|
|
@@ -732,6 +734,9 @@ authConfig:
|
|
|
732
734
|
label: Token Endpoint
|
|
733
735
|
authEndpoint:
|
|
734
736
|
label: Auth Endpoint
|
|
737
|
+
endSessionEndpoint:
|
|
738
|
+
title: End Session Endpoint
|
|
739
|
+
tooltip: Azure AD URL used for logging a user out of their session (e.g. https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/logout)
|
|
735
740
|
groupMembershipFilter:
|
|
736
741
|
label: Group Membership Filter
|
|
737
742
|
enable: Limit users by group membership
|
|
@@ -739,17 +744,17 @@ authConfig:
|
|
|
739
744
|
externalHelp: See the OData filter expression documentation for more information.
|
|
740
745
|
externalHelpLink: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/webservices/use-filter-expressions-in-odata-uris#filter-expressions
|
|
741
746
|
reply:
|
|
742
|
-
info: '
|
|
747
|
+
info: 'Microsoft Entra ID requires a whitelisted URL for your Rancher server before beginning this setup. Please ensure that the following URL is set in the Reply URL section of your Microsoft Entra admin center. Please note that it may take up to 5 minutes for the whitelisted URL to propagate.'
|
|
743
748
|
label: Reply URL
|
|
744
749
|
ariaLabel: Copy Reply URL to clipboard
|
|
745
750
|
updateEndpoint:
|
|
746
751
|
button: Update Endpoint
|
|
747
752
|
banner:
|
|
748
|
-
message: '
|
|
753
|
+
message: 'Microsoft Entra ID Authentication must be updated: it is using the Azure AD Graph API, which was deprecated at the end of 2022.'
|
|
749
754
|
linkText: 'Update it here.'
|
|
750
755
|
modal:
|
|
751
756
|
title: Are you sure? This update is irreversible.
|
|
752
|
-
body: '<p><b>You may need to make some additional changes</b>. Please ensure the
|
|
757
|
+
body: '<p><b>You may need to make some additional changes</b>. Please ensure the Microsoft Entra ID app has the Directory.Read.All <b>Application</b> permission added to Microsoft Graph.<br> If any endpoints were customized while configuring Microsoft Entra ID authentication in Rancher, they will not be automatically updated. </p>'
|
|
753
758
|
oidc:
|
|
754
759
|
endSessionEndpoint:
|
|
755
760
|
title: End Session Endpoint
|
|
@@ -806,6 +811,9 @@ authConfig:
|
|
|
806
811
|
groupSearch:
|
|
807
812
|
label: Enable group search
|
|
808
813
|
tooltip: Allows users with appropriate permissions to search and view all groups within the OIDC provider's realm. This can be useful for administrators who need to assign global roles to groups that they are not currently a member of.
|
|
814
|
+
clientAuthenticatedSearch:
|
|
815
|
+
label: Enable client authenticated search
|
|
816
|
+
tooltip: Use the OIDC Client Credentials to authenticate to Keycloak when searching for users or groups. This will bypass user-based RBAC within the realm
|
|
809
817
|
stateBanner:
|
|
810
818
|
disabled: 'The {provider} authentication provider is currently disabled.'
|
|
811
819
|
enabled: 'The {provider} authentication provider is currently enabled.'
|
|
@@ -1138,7 +1146,6 @@ catalog:
|
|
|
1138
1146
|
label: Chart Versions
|
|
1139
1147
|
showMore: Show More
|
|
1140
1148
|
showLess: Show Less
|
|
1141
|
-
missingVersionDate: No date available for this chart version
|
|
1142
1149
|
home: Homepage
|
|
1143
1150
|
repository: Repository Page
|
|
1144
1151
|
maintainers: Maintainers
|
|
@@ -1152,12 +1159,18 @@ catalog:
|
|
|
1152
1159
|
deprecatedWarning: '{chartName} has been marked as deprecated. Use caution when installing this helm chart as it might be removed in the future.'
|
|
1153
1160
|
experimentalWarning: '{chartName} has been marked as experimental. Use caution when installing this helm chart as it might not function as expected.'
|
|
1154
1161
|
deprecatedAndExperimentalWarning: '{chartName} has been marked as deprecated and experimental. Use caution when installing this helm chart as it might be removed in the future and might not function as expected.'
|
|
1162
|
+
viewReadmeSeparately:
|
|
1163
|
+
label: View separately
|
|
1164
|
+
tooltip: Open the readme in a new tab
|
|
1165
|
+
installedAppsSelector:
|
|
1166
|
+
ariaLabel: Select installed app instance
|
|
1155
1167
|
chartButton:
|
|
1156
1168
|
action:
|
|
1157
1169
|
install: Install this version
|
|
1158
1170
|
edit: Edit the current version
|
|
1159
1171
|
upgrade: Upgrade to this version
|
|
1160
1172
|
downgrade: Downgrade to this version
|
|
1173
|
+
installNew: Install as a new instance
|
|
1161
1174
|
charts:
|
|
1162
1175
|
browseAriaLabel: Show only charts grid
|
|
1163
1176
|
iconAlt: Icon for {app} card/grid item
|
|
@@ -1183,15 +1196,11 @@ catalog:
|
|
|
1183
1196
|
all: All Operating Systems
|
|
1184
1197
|
linux: Linux
|
|
1185
1198
|
windows: Windows
|
|
1186
|
-
search: Search the
|
|
1187
|
-
deprecatedChartsFilter:
|
|
1188
|
-
label: Show deprecated apps
|
|
1199
|
+
search: Search the catalog...
|
|
1189
1200
|
addNewRepo:
|
|
1190
1201
|
label: Add new
|
|
1191
1202
|
ariaLabel: Add a new repository
|
|
1192
1203
|
appChartCard:
|
|
1193
|
-
subHeaderItem:
|
|
1194
|
-
missingVersionDate: Last updated date is not available for this chart
|
|
1195
1204
|
footerItem:
|
|
1196
1205
|
ariaLabel: 'Apply {filter} filter'
|
|
1197
1206
|
statusFilterCautions:
|
|
@@ -1435,6 +1444,8 @@ catalog:
|
|
|
1435
1444
|
refreshInterval:
|
|
1436
1445
|
label: Refresh Interval
|
|
1437
1446
|
placeholder: 'default: {hours}'
|
|
1447
|
+
error:
|
|
1448
|
+
refresh: Error refreshing repository
|
|
1438
1449
|
tools:
|
|
1439
1450
|
iconAlt: Icon for {app} Cluster Tool
|
|
1440
1451
|
header: Cluster Tools
|
|
@@ -1506,9 +1517,12 @@ compliance:
|
|
|
1506
1517
|
=1 { Any scheduled scans using this profile will no longer work. }
|
|
1507
1518
|
other { Any scheduled scans using either of these profiles will no longer work. }
|
|
1508
1519
|
}
|
|
1509
|
-
downloadAllReports: Download All Saved Reports
|
|
1510
|
-
|
|
1511
|
-
|
|
1520
|
+
downloadAllReports: Download All Saved Reports (CSV)
|
|
1521
|
+
downloadAllReportsXCCDF: Download All Saved Reports (XCCDF)
|
|
1522
|
+
downloadLatestReport: Download Latest Report (CSV)
|
|
1523
|
+
downloadLatestReportXCCDF: Download Latest Report (XCCDF)
|
|
1524
|
+
downloadReport: Download Report (CSV)
|
|
1525
|
+
downloadReportXCCDF: Download Report (XCCDF)
|
|
1512
1526
|
maxKubernetesVersion: Maximum allowed Kubernetes version
|
|
1513
1527
|
minKubernetesVersion: Minimum required Kubernetes version
|
|
1514
1528
|
noProfiles: There are no valid ClusterScanProfiles for this cluster type to select.
|
|
@@ -1517,6 +1531,8 @@ compliance:
|
|
|
1517
1531
|
reports: Reports
|
|
1518
1532
|
retention: Retention Count
|
|
1519
1533
|
scan:
|
|
1534
|
+
errorNoParsedNodes: No nodes were parsed from the scan results, so no report can be generated.
|
|
1535
|
+
errorDownload: Error downloading file
|
|
1520
1536
|
description: Description
|
|
1521
1537
|
fail: Fail
|
|
1522
1538
|
lastScanTime: Last Scan Time
|
|
@@ -2333,7 +2349,9 @@ cluster:
|
|
|
2333
2349
|
etcdControlPlaneWarning: We don't recommend using Autoscaler with machine pools that have the etcd or Control Plane roles. You can modify the yaml if you want to override the current value.
|
|
2334
2350
|
name:
|
|
2335
2351
|
label: Pool Name
|
|
2352
|
+
notNamed: (Not Named)
|
|
2336
2353
|
placeholder: A random one will be generated by default
|
|
2354
|
+
unique: Pool names should be unique
|
|
2337
2355
|
nodeTotals:
|
|
2338
2356
|
label:
|
|
2339
2357
|
controlPlane: '{count} Control Plane'
|
|
@@ -2386,7 +2404,7 @@ cluster:
|
|
|
2386
2404
|
label: Auto Replace
|
|
2387
2405
|
toolTip: If greater than 0, nodes that are unreachable for this duration will be automatically deleted and replaced.
|
|
2388
2406
|
unit: "Seconds"
|
|
2389
|
-
managementTimeout: The
|
|
2407
|
+
managementTimeout: The {type} {name} to become available. It's possible the cluster was created. We suggest checking the clusters page before trying to create another.
|
|
2390
2408
|
memberRoles:
|
|
2391
2409
|
removeMessage: 'Note: Removing a user will not remove their project permissions'
|
|
2392
2410
|
addClusterMember:
|
|
@@ -2836,8 +2854,8 @@ providers:
|
|
|
2836
2854
|
drivers:
|
|
2837
2855
|
kontainer:
|
|
2838
2856
|
title: Cluster Drivers
|
|
2839
|
-
|
|
2840
|
-
|
|
2857
|
+
emberRemovalMessage: 'Support for UI Plugins (based on Ember) for cluster and node drivers was deprecated in Rancher 2.11.0 and has been removed in 2.15.0. If you still need one of these plugins, it will need to be migrated to the new <a href="https://extensions.rancher.io/extensions/next/provisioning/hosted-provider/overview" target="_blank" rel="noopener noreferrer nofollow">UI Extensions framework</a>.'
|
|
2858
|
+
emberRemovalTooltip: 'Support for UI Plugins (based on Ember) for cluster and node drivers was deprecated in Rancher 2.11.0 and has been removed in 2.15.0. If you still need this plugin, it will need to be migrated to the new UI Extensions framework.'
|
|
2841
2859
|
node:
|
|
2842
2860
|
title: Node Drivers
|
|
2843
2861
|
add:
|
|
@@ -5446,6 +5464,7 @@ inactivity:
|
|
|
5446
5464
|
# Rancher Extensions
|
|
5447
5465
|
plugins:
|
|
5448
5466
|
altIcon: Icon for {extension} extension card
|
|
5467
|
+
deprecatedExtension: This extension is deprecated and may soon be removed from the catalog.
|
|
5449
5468
|
incompatiblePrimeOnly: "The latest version of this extension ({ version }) needs Rancher Prime in order to be installed."
|
|
5450
5469
|
incompatibleRancherVersion: "The latest version of this extension ({ version }) is not compatible with the current Rancher version ({ required })."
|
|
5451
5470
|
incompatibleKubeVersion: "The latest version of this extension ({ version }) is not compatible with the current Kube version ({ required })."
|
|
@@ -6176,6 +6195,7 @@ resourceTable:
|
|
|
6176
6195
|
cluster: Group by Cluster
|
|
6177
6196
|
device: Group by Device
|
|
6178
6197
|
pool: Group by Pool
|
|
6198
|
+
workspace: Group by Workspace
|
|
6179
6199
|
groupLabel:
|
|
6180
6200
|
cluster: "<span>Cluster:</span> {name}"
|
|
6181
6201
|
notInACluster: Not in a Cluster
|
|
@@ -7975,7 +7995,7 @@ model:
|
|
|
7975
7995
|
local: Local
|
|
7976
7996
|
multiple: Multiple
|
|
7977
7997
|
activedirectory: ActiveDirectory
|
|
7978
|
-
azuread:
|
|
7998
|
+
azuread: Microsoft Entra ID
|
|
7979
7999
|
github: GitHub
|
|
7980
8000
|
githubapp: GitHub App
|
|
7981
8001
|
keycloak: Keycloak
|
|
@@ -8780,6 +8800,9 @@ registryConfig:
|
|
|
8780
8800
|
toolTip: 'When an image needs to be pulled from the given registry hostname, this information will be used to verify the identity of the registry and authenticate to it.'
|
|
8781
8801
|
addLabel: Add Registry
|
|
8782
8802
|
description: "Define the TLS and credential configuration for each registry hostname and mirror."
|
|
8803
|
+
caBundle:
|
|
8804
|
+
tooltip: Accepts a CA PEM certificate or a base64 encoded CA PEM.
|
|
8805
|
+
validationError: Invalid CA cert bundle. Must be a CA PEM certificate or a base64 encoded CA PEM.
|
|
8783
8806
|
|
|
8784
8807
|
##############################
|
|
8785
8808
|
### Advanced Settings
|
|
@@ -9174,10 +9197,6 @@ support:
|
|
|
9174
9197
|
title: Innovate with Freedom
|
|
9175
9198
|
text: Take advantage of our certified compatibility with a wide range of Kubernetes providers, operating systems, and open source software.
|
|
9176
9199
|
|
|
9177
|
-
embedding:
|
|
9178
|
-
retry: Retry
|
|
9179
|
-
unavailable: Cluster Manager UI is not available
|
|
9180
|
-
|
|
9181
9200
|
serverUpgrade:
|
|
9182
9201
|
title: "{vendor} Server Changed"
|
|
9183
9202
|
message: "The page reloaded because the version of {vendor} running on your server changed."
|
|
@@ -531,16 +531,16 @@ authConfig:
|
|
|
531
531
|
tokenEndpoint: Token 端点
|
|
532
532
|
authEndpoint: Auth 端点
|
|
533
533
|
reply:
|
|
534
|
-
info: '在开始设置之前,
|
|
534
|
+
info: '在开始设置之前,Microsoft Entra ID 需要 Rancher Server 的白名单 URL。请确保在 Microsoft Entra 管理中心的回复 URL 中设置了以下 URL。请注意,白名单 URL 可能需要 5 分钟才能生效。'
|
|
535
535
|
label: 回复 URL
|
|
536
536
|
updateEndpoint:
|
|
537
537
|
button: 更新端点
|
|
538
538
|
banner:
|
|
539
|
-
message: '必须更新
|
|
539
|
+
message: '必须更新 Microsoft Entra ID 身份认证:它使用了 Azure AD Graph API,该 API 已于 2022 年底弃用。'
|
|
540
540
|
linkText: '在此处进行更新。'
|
|
541
541
|
modal:
|
|
542
542
|
title: 是否确认?此更新是不可逆的。
|
|
543
|
-
body: '<p><b>你可能需要进行额外的更改</b>。请确保
|
|
543
|
+
body: '<p><b>你可能需要进行额外的更改</b>。请确保 Microsoft Entra ID 应用已将 Directory.Read.All <b>Application</b> 权限添加到 Microsoft Graph。<br> 如果在 Rancher 中配置 Microsoft Entra ID 身份认证时自定义了端点,这些端点将不会自动更新。</p>'
|
|
544
544
|
oidc:
|
|
545
545
|
oidc: 配置 OIDC 账号
|
|
546
546
|
keycloakoidc: 配置 Keycloak OIDC 账号
|
|
@@ -6269,7 +6269,7 @@ model:
|
|
|
6269
6269
|
local: 本地
|
|
6270
6270
|
multiple: Multiple
|
|
6271
6271
|
activedirectory: Active Directory
|
|
6272
|
-
azuread:
|
|
6272
|
+
azuread: Microsoft Entra ID
|
|
6273
6273
|
github: GitHub
|
|
6274
6274
|
keycloak: Keycloak
|
|
6275
6275
|
ldap: LDAP
|
|
@@ -7307,10 +7307,6 @@ support:
|
|
|
7307
7307
|
title: 自由创新
|
|
7308
7308
|
text: 基于我们与众多 Kubernetes 供应商、操作系统和开源软件认证的兼容性,实现自主创新。
|
|
7309
7309
|
|
|
7310
|
-
embedding:
|
|
7311
|
-
retry: 重试
|
|
7312
|
-
unavailable: Cluster Manager UI 不可用
|
|
7313
|
-
|
|
7314
7310
|
legacy:
|
|
7315
7311
|
alerts: 告警
|
|
7316
7312
|
apps: 应用
|
|
@@ -3,7 +3,7 @@ import { nextTick } from 'vue';
|
|
|
3
3
|
import { mount } from '@vue/test-utils';
|
|
4
4
|
|
|
5
5
|
import S3 from '@shell/chart/rancher-backup/S3';
|
|
6
|
-
import
|
|
6
|
+
import { createStore } from 'vuex';
|
|
7
7
|
|
|
8
8
|
describe('rancher-backup: S3', () => {
|
|
9
9
|
const mockStore = {
|
|
@@ -16,8 +16,15 @@ describe('rancher-backup: S3', () => {
|
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
18
|
const wrapper = mount(S3, {
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
global: { mocks: { $store: mockStore, $fetchState: { pending: false } } },
|
|
20
|
+
provide: {
|
|
21
|
+
store: createStore({
|
|
22
|
+
getters: {
|
|
23
|
+
'cluster/paginationEnabled': () => () => false,
|
|
24
|
+
currentStore: () => 'cluster'
|
|
25
|
+
}
|
|
26
|
+
})
|
|
27
|
+
},
|
|
21
28
|
});
|
|
22
29
|
|
|
23
30
|
it('should emit invalid when form is not filled', () => {
|
|
@@ -17,6 +17,7 @@ import Tabbed from '@shell/components/Tabbed';
|
|
|
17
17
|
import { allHash } from '@shell/utils/promise';
|
|
18
18
|
import { STORAGE_CLASS, PVC, SECRET, WORKLOAD_TYPES } from '@shell/config/types';
|
|
19
19
|
import { CATTLE_MONITORING_NAMESPACE } from '@shell/utils/monitoring';
|
|
20
|
+
import { CATALOG as CATALOG_ANNOTATIONS } from '@shell/config/labels-annotations';
|
|
20
21
|
|
|
21
22
|
export default {
|
|
22
23
|
emits: ['register-before-hook', 'input'],
|
|
@@ -50,6 +51,12 @@ export default {
|
|
|
50
51
|
return {};
|
|
51
52
|
},
|
|
52
53
|
},
|
|
54
|
+
|
|
55
|
+
// The selected chart version object, passed from install.vue
|
|
56
|
+
version: {
|
|
57
|
+
type: Object,
|
|
58
|
+
default: null,
|
|
59
|
+
},
|
|
53
60
|
},
|
|
54
61
|
|
|
55
62
|
async fetch() {
|
|
@@ -92,7 +99,9 @@ export default {
|
|
|
92
99
|
|
|
93
100
|
const hash = await allHash(hashPromises);
|
|
94
101
|
|
|
95
|
-
|
|
102
|
+
const ns = this.version?.annotations?.[CATALOG_ANNOTATIONS.NAMESPACE] || this.chart.targetNamespace;
|
|
103
|
+
|
|
104
|
+
this.targetNamespace = hash.namespaces[ns] || false;
|
|
96
105
|
|
|
97
106
|
if (!isEmpty(hash.storageClasses)) {
|
|
98
107
|
this.storageClasses = hash.storageClasses;
|
|
@@ -35,6 +35,7 @@ const setBulkActionOfInterest = (act: HiddenAction | null, event: 'mouseover' |
|
|
|
35
35
|
>
|
|
36
36
|
<rc-dropdown-trigger
|
|
37
37
|
class="bulk-actions-dropdown"
|
|
38
|
+
size="large"
|
|
38
39
|
:disabled="disabled"
|
|
39
40
|
>
|
|
40
41
|
<template #before>
|
|
@@ -42,7 +43,7 @@ const setBulkActionOfInterest = (act: HiddenAction | null, event: 'mouseover' |
|
|
|
42
43
|
</template>
|
|
43
44
|
<span>{{ t('sortableTable.bulkActions.collapsed.label') }}</span>
|
|
44
45
|
<template #after>
|
|
45
|
-
<i class="
|
|
46
|
+
<i class="icon icon-chevron-down" />
|
|
46
47
|
</template>
|
|
47
48
|
</rc-dropdown-trigger>
|
|
48
49
|
<template #dropdownCollection>
|
package/components/CountBox.vue
CHANGED
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
export default {
|
|
4
4
|
name: 'CountBox',
|
|
5
5
|
|
|
6
|
+
emits: ['click'],
|
|
7
|
+
|
|
6
8
|
props: {
|
|
7
9
|
name: {
|
|
8
10
|
type: String,
|
|
@@ -19,6 +21,10 @@ export default {
|
|
|
19
21
|
compact: {
|
|
20
22
|
type: Boolean,
|
|
21
23
|
default: false
|
|
24
|
+
},
|
|
25
|
+
clickable: {
|
|
26
|
+
type: Boolean,
|
|
27
|
+
default: false
|
|
22
28
|
}
|
|
23
29
|
},
|
|
24
30
|
computed: {
|
|
@@ -34,6 +40,12 @@ export default {
|
|
|
34
40
|
methods: {
|
|
35
41
|
customizePrimaryColorOpacity(opacity) {
|
|
36
42
|
return `rgba(var(${ this.primaryColorVar }), ${ opacity })`;
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
handleClick() {
|
|
46
|
+
if (this.clickable) {
|
|
47
|
+
this.$emit('click');
|
|
48
|
+
}
|
|
37
49
|
}
|
|
38
50
|
}
|
|
39
51
|
};
|
|
@@ -42,7 +54,9 @@ export default {
|
|
|
42
54
|
<template>
|
|
43
55
|
<div
|
|
44
56
|
class="count-container"
|
|
57
|
+
:class="{ 'clickable': clickable }"
|
|
45
58
|
:style="sideStyle"
|
|
59
|
+
@click="handleClick"
|
|
46
60
|
>
|
|
47
61
|
<div
|
|
48
62
|
class="count"
|
|
@@ -61,6 +75,12 @@ export default {
|
|
|
61
75
|
</template>
|
|
62
76
|
|
|
63
77
|
<style lang="scss" scoped>
|
|
78
|
+
.count-container {
|
|
79
|
+
&.clickable {
|
|
80
|
+
cursor: pointer;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
64
84
|
.count {
|
|
65
85
|
$padding: 10px;
|
|
66
86
|
|
|
@@ -22,7 +22,6 @@ export default {
|
|
|
22
22
|
rules: {
|
|
23
23
|
default: () => ({
|
|
24
24
|
url: [],
|
|
25
|
-
uiUrl: [],
|
|
26
25
|
checksum: [],
|
|
27
26
|
whitelistDomains: []
|
|
28
27
|
}),
|
|
@@ -56,17 +55,6 @@ export default {
|
|
|
56
55
|
:data-testid="'driver-create-checksum-field'"
|
|
57
56
|
/>
|
|
58
57
|
</div>
|
|
59
|
-
<div class="row mb-20">
|
|
60
|
-
<LabeledInput
|
|
61
|
-
v-model:value.trim="value.uiUrl"
|
|
62
|
-
:label="t('drivers.add.customUiUrl.label')"
|
|
63
|
-
:tooltip="t('drivers.add.customUiUrl.tooltip', null, true)"
|
|
64
|
-
:placeholder="t('drivers.add.customUiUrl.placeholder', null, true)"
|
|
65
|
-
:mode="mode"
|
|
66
|
-
:rules="rules.uiUrl"
|
|
67
|
-
:data-testid="'driver-create-uiurl-field'"
|
|
68
|
-
/>
|
|
69
|
-
</div>
|
|
70
58
|
<div class="col span-6">
|
|
71
59
|
<ArrayList
|
|
72
60
|
v-model:value="value.whitelistDomains"
|
|
@@ -3,13 +3,16 @@ import { mapGetters } from 'vuex';
|
|
|
3
3
|
|
|
4
4
|
import AsyncButton from '@shell/components/AsyncButton';
|
|
5
5
|
import ResourceCancelModal from '@shell/components/ResourceCancelModal';
|
|
6
|
+
import { RcButton } from '@components/RcButton';
|
|
6
7
|
import { _VIEW } from '@shell/config/query-params';
|
|
7
8
|
|
|
8
9
|
export default {
|
|
9
10
|
emits: ['cancel-confirmed', 'finish'],
|
|
10
11
|
|
|
11
|
-
components: {
|
|
12
|
-
|
|
12
|
+
components: {
|
|
13
|
+
AsyncButton, RcButton, ResourceCancelModal
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
13
16
|
mode: {
|
|
14
17
|
type: String,
|
|
15
18
|
default: 'create',
|
|
@@ -84,16 +87,17 @@ export default {
|
|
|
84
87
|
<div class="cru-resource-footer">
|
|
85
88
|
<slot name="footer-prefix" />
|
|
86
89
|
<slot name="cancel">
|
|
87
|
-
<
|
|
90
|
+
<RcButton
|
|
88
91
|
v-if="!isView && showCancel"
|
|
89
92
|
id="cru-cancel"
|
|
90
93
|
:data-testid="componentTestid + '-cancel'"
|
|
91
94
|
type="button"
|
|
92
|
-
|
|
95
|
+
variant="secondary"
|
|
96
|
+
size="large"
|
|
93
97
|
@click="confirmCancelRequired ? checkCancel(true) : $emit('cancel-confirmed', true)"
|
|
94
98
|
>
|
|
95
99
|
<t k="generic.cancel" />
|
|
96
|
-
</
|
|
100
|
+
</RcButton>
|
|
97
101
|
</slot>
|
|
98
102
|
<slot :checkCancel="checkCancel">
|
|
99
103
|
<AsyncButton
|
|
@@ -187,10 +187,9 @@ export default {
|
|
|
187
187
|
>{{ body }}</span>
|
|
188
188
|
|
|
189
189
|
<CodeMirror
|
|
190
|
-
v-else-if="jsonStr"
|
|
190
|
+
v-else-if="jsonStr && !concealed"
|
|
191
191
|
:options="{mode:{name:'javascript', json:true}, lineNumbers:false, foldGutter:false, readOnly:true}"
|
|
192
192
|
:value="jsonStr"
|
|
193
|
-
:class="{'conceal': concealed}"
|
|
194
193
|
aria-live="polite"
|
|
195
194
|
/>
|
|
196
195
|
|
|
@@ -199,9 +198,16 @@ export default {
|
|
|
199
198
|
:class="{'conceal-wrapper': concealed}"
|
|
200
199
|
>
|
|
201
200
|
<span
|
|
201
|
+
v-if="concealed"
|
|
202
|
+
data-testid="detail-top_html"
|
|
203
|
+
class="conceal"
|
|
204
|
+
aria-live="polite"
|
|
205
|
+
/>
|
|
206
|
+
<span
|
|
207
|
+
v-else
|
|
202
208
|
v-clean-html="bodyHtml"
|
|
203
209
|
data-testid="detail-top_html"
|
|
204
|
-
:class="{'
|
|
210
|
+
:class="{'monospace': monospace && !isBinary}"
|
|
205
211
|
aria-live="polite"
|
|
206
212
|
/>
|
|
207
213
|
</div>
|
|
@@ -270,6 +276,9 @@ export default {
|
|
|
270
276
|
.conceal {
|
|
271
277
|
white-space: nowrap;
|
|
272
278
|
display: block;
|
|
279
|
+
&::before {
|
|
280
|
+
content: '••••••••••••••••••••••••';
|
|
281
|
+
}
|
|
273
282
|
}
|
|
274
283
|
|
|
275
284
|
.action-group {
|
|
@@ -295,7 +295,7 @@ export default {
|
|
|
295
295
|
return this.$store.getters['i18n/t']('resourceTable.groupLabel.notInAProject');
|
|
296
296
|
},
|
|
297
297
|
showCreateNsButton() {
|
|
298
|
-
return this.groupPreference !== 'namespace';
|
|
298
|
+
return this.groupPreference !== 'namespace' && this.isNamespaceCreatable;
|
|
299
299
|
},
|
|
300
300
|
projectGroupBy() {
|
|
301
301
|
return this.groupPreference === 'none' ? null : 'groupById';
|
|
@@ -248,7 +248,7 @@ export default {
|
|
|
248
248
|
|
|
249
249
|
};
|
|
250
250
|
|
|
251
|
-
this.installCmd.namespace = this.targetNamespace || this.chart?.targetNamespace || 'default';
|
|
251
|
+
this.installCmd.namespace = this.targetNamespace || this.versionInfo?.chart?.annotations?.[CATALOG_ANNOTATIONS.NAMESPACE] || this.chart?.targetNamespace || 'default';
|
|
252
252
|
}
|
|
253
253
|
},
|
|
254
254
|
|
|
@@ -360,7 +360,7 @@ export default {
|
|
|
360
360
|
this.canInstallChart = false;
|
|
361
361
|
} else {
|
|
362
362
|
try {
|
|
363
|
-
const app = await this.$store.dispatch(`${ this.store }/find`, { type: CATALOG.APP, id: `${ this.targetNamespace || this.chart?.targetNamespace || 'default' }/${ this.chartName }` });
|
|
363
|
+
const app = await this.$store.dispatch(`${ this.store }/find`, { type: CATALOG.APP, id: `${ this.targetNamespace || this.versionInfo?.chart?.annotations?.[CATALOG_ANNOTATIONS.NAMESPACE] || this.chart?.targetNamespace || 'default' }/${ this.chartName }` });
|
|
364
364
|
|
|
365
365
|
if (app) {
|
|
366
366
|
this.installedVersion = app?.spec?.chart?.metadata?.appVersion;
|
|
@@ -14,10 +14,6 @@ export default {
|
|
|
14
14
|
Select,
|
|
15
15
|
},
|
|
16
16
|
|
|
17
|
-
async fetch() {
|
|
18
|
-
this.clusters = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.CLUSTER });
|
|
19
|
-
},
|
|
20
|
-
|
|
21
17
|
data() {
|
|
22
18
|
// Store the route as it was on page load (before the user may have changed it)
|
|
23
19
|
const customRoute = this.$store.getters['prefs/get'](AFTER_LOGIN_ROUTE);
|
|
@@ -90,13 +86,25 @@ export default {
|
|
|
90
86
|
},
|
|
91
87
|
|
|
92
88
|
methods: {
|
|
93
|
-
updateLoginRoute(neu) {
|
|
89
|
+
async updateLoginRoute(neu) {
|
|
94
90
|
if (neu) {
|
|
95
91
|
this.afterLoginRoute = neu;
|
|
96
92
|
} else {
|
|
93
|
+
this.clusters = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.CLUSTER });
|
|
97
94
|
this.afterLoginRoute = this.routeFromDropdown?.value || this.routeDropdownOptions[0]?.value;
|
|
98
95
|
}
|
|
99
96
|
},
|
|
97
|
+
},
|
|
98
|
+
|
|
99
|
+
watch: {
|
|
100
|
+
afterLoginRoute: {
|
|
101
|
+
async handler(neu) {
|
|
102
|
+
if (typeof neu === 'object') {
|
|
103
|
+
this.clusters = await this.$store.dispatch('management/findAll', { type: MANAGEMENT.CLUSTER });
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
immediate: true
|
|
107
|
+
},
|
|
100
108
|
}
|
|
101
109
|
};
|
|
102
110
|
</script>
|
|
@@ -129,6 +137,7 @@ export default {
|
|
|
129
137
|
/>
|
|
130
138
|
<Select
|
|
131
139
|
v-model:value="routeFromDropdown"
|
|
140
|
+
:loading="clusters.length < 1"
|
|
132
141
|
:aria-label="t('landing.landingPrefs.ariaLabelTakeMeToCluster')"
|
|
133
142
|
:searchable="true"
|
|
134
143
|
:disabled="afterLoginRoute === 'home' || afterLoginRoute === 'last-visited'"
|
|
@@ -103,12 +103,26 @@ const getRowValueId = (row:Row): string => `value-${ row.label }:${ row.value }`
|
|
|
103
103
|
flex-direction: column;
|
|
104
104
|
|
|
105
105
|
.row {
|
|
106
|
+
gap: 8px;
|
|
107
|
+
|
|
108
|
+
// Hide clearfix pseudo-elements inherited from the global .row class
|
|
109
|
+
&::before, &::after {
|
|
110
|
+
display: none;
|
|
111
|
+
}
|
|
112
|
+
|
|
106
113
|
&:not(:last-of-type) {
|
|
107
114
|
margin-bottom: 8px;
|
|
108
115
|
}
|
|
109
116
|
|
|
110
117
|
.full-custom-value {
|
|
111
118
|
flex: 1;
|
|
119
|
+
min-width: 0;
|
|
120
|
+
|
|
121
|
+
// Override inline-block on .popover-card-target so it respects the
|
|
122
|
+
// parent's width constraint instead of sizing to its content
|
|
123
|
+
:deep(.popover-card-target) {
|
|
124
|
+
width: 100%;
|
|
125
|
+
}
|
|
112
126
|
}
|
|
113
127
|
|
|
114
128
|
.value {
|
|
@@ -128,7 +142,7 @@ const getRowValueId = (row:Row): string => `value-${ row.label }:${ row.value }`
|
|
|
128
142
|
|
|
129
143
|
.label {
|
|
130
144
|
width: 30%;
|
|
131
|
-
min-width:
|
|
145
|
+
min-width: min-content;
|
|
132
146
|
}
|
|
133
147
|
|
|
134
148
|
.status {
|
|
@@ -82,6 +82,12 @@ const showBothEmpty = computed(() => labels.length === 0 && annotations.length =
|
|
|
82
82
|
|
|
83
83
|
<style lang="scss" scoped>
|
|
84
84
|
.metadata {
|
|
85
|
+
.identifying-info {
|
|
86
|
+
// Allow the grid cell to shrink below its content size without
|
|
87
|
+
// using overflow:hidden, which would clip the namespace popover
|
|
88
|
+
min-width: 0;
|
|
89
|
+
}
|
|
90
|
+
|
|
85
91
|
.labels-and-annotations-empty {
|
|
86
92
|
grid-column: span 2;
|
|
87
93
|
}
|
|
@@ -115,11 +115,22 @@ const actionInvoked = () => {
|
|
|
115
115
|
|
|
116
116
|
.display {
|
|
117
117
|
display: inline-flex;
|
|
118
|
+
align-items: center;
|
|
119
|
+
max-width: 100%;
|
|
120
|
+
|
|
121
|
+
// Truncate the link text instead of wrapping to a second line
|
|
122
|
+
a {
|
|
123
|
+
overflow: hidden;
|
|
124
|
+
text-overflow: ellipsis;
|
|
125
|
+
white-space: nowrap;
|
|
126
|
+
min-width: 0;
|
|
127
|
+
}
|
|
118
128
|
}
|
|
119
129
|
|
|
120
130
|
.rc-status-indicator {
|
|
131
|
+
// Keep the status dot from collapsing when the link text is long
|
|
132
|
+
flex-shrink: 0;
|
|
121
133
|
margin-right: 12px;
|
|
122
|
-
margin-top: 4px;
|
|
123
134
|
height: initial;
|
|
124
135
|
line-height: initial;
|
|
125
136
|
}
|
|
@@ -7,9 +7,11 @@
|
|
|
7
7
|
<style lang="scss" scoped>
|
|
8
8
|
.spaced-row {
|
|
9
9
|
display: grid;
|
|
10
|
-
grid-template-columns: repeat(3, minmax(0, 1fr))
|
|
10
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
11
11
|
grid-auto-flow: dense;
|
|
12
12
|
grid-gap: 24px;
|
|
13
13
|
justify-content: space-evenly;
|
|
14
|
+
// Match the title bar floor so sections scroll together
|
|
15
|
+
min-width: $resource-detail-min-width;
|
|
14
16
|
}
|
|
15
17
|
</style>
|