@rancher/shell 0.5.3 → 1.2.1
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/.DS_Store +0 -0
- package/assets/images/providers/aks-black.svg +28 -0
- package/assets/images/providers/aks.svg +31 -0
- package/assets/styles/global/_labeled-input.scss +1 -0
- package/assets/styles/global/_layout.scss +0 -99
- package/assets/translations/en-us.yaml +76 -74
- package/assets/translations/zh-hans.yaml +25 -23
- package/babel.config.js +1 -7
- package/chart/gatekeeper.vue +11 -2
- package/chart/istio.vue +10 -1
- package/chart/logging/index.vue +11 -2
- package/chart/monitoring/alerting/index.vue +21 -7
- package/chart/monitoring/grafana/index.vue +2 -57
- package/chart/monitoring/index.vue +26 -52
- package/chart/monitoring/prometheus/index.vue +43 -37
- package/chart/rancher-backup/index.vue +10 -3
- package/cloud-credential/azure.vue +17 -4
- package/components/AsyncButton.vue +0 -9
- package/components/Carousel.vue +0 -1
- package/components/ChartPsp.vue +76 -0
- package/components/ClusterIconMenu.vue +9 -24
- package/components/CodeMirror.vue +16 -75
- package/components/CopyCode.vue +2 -6
- package/components/CopyToClipboard.vue +1 -2
- package/components/CopyToClipboardText.vue +9 -14
- package/components/CruResource.vue +0 -1
- package/components/EtcdInfoBanner.vue +5 -5
- package/components/ExplorerProjectsNamespaces.vue +1 -25
- package/components/FixedBanner.vue +0 -1
- package/components/IconOrSvg.vue +1 -1
- package/components/Markdown.vue +12 -16
- package/components/Questions/index.vue +1 -1
- package/components/ResourceDetail/Masthead.vue +9 -25
- package/components/ResourceDetail/index.vue +4 -1
- package/components/ResourceList/Masthead.vue +18 -1
- package/components/ResourceTable.vue +2 -14
- package/components/ResourceYaml.vue +5 -34
- package/components/SideNav.vue +65 -43
- package/components/SortableTable/THead.vue +9 -7
- package/components/SortableTable/index.vue +2 -1
- package/components/StatusTable.vue +1 -5
- package/components/TabTitle.vue +84 -0
- package/components/Tabbed/index.vue +0 -12
- package/components/YamlEditor.vue +0 -1
- package/components/__tests__/ChartPsp.test.ts +75 -0
- package/components/__tests__/CopyCode.test.ts +4 -5
- package/components/fleet/FleetBundles.vue +11 -5
- package/components/fleet/FleetRepos.vue +27 -62
- package/components/fleet/FleetResources.vue +1 -6
- package/components/fleet/FleetStatus.vue +3 -3
- package/components/fleet/FleetSummary.vue +30 -35
- package/components/form/ArrayList.vue +8 -1
- package/components/form/ArrayListSelect.vue +9 -9
- package/components/form/BannerSettings.vue +0 -3
- package/components/form/FileSelector.vue +0 -1
- package/components/form/KeyValue.vue +0 -2
- package/components/form/LabeledSelect.vue +0 -4
- package/components/form/Password.vue +1 -3
- package/components/form/Select.vue +1 -1
- package/components/form/SelectOrCreateAuthSecret.vue +4 -4
- package/components/form/__tests__/KeyValue.test.ts +1 -1
- package/components/formatter/Checked.vue +3 -11
- package/components/formatter/ClusterProvider.vue +18 -1
- package/components/formatter/FleetSummaryGraph.vue +11 -23
- package/components/formatter/LiveDate.vue +16 -0
- package/components/formatter/LiveDuration.vue +1 -1
- package/components/formatter/PercentageBar.vue +1 -1
- package/components/formatter/WorkloadDetailEndpoints.vue +22 -12
- package/components/formatter/__tests__/ClusterProvider.test.ts +28 -0
- package/components/nav/Group.vue +2 -2
- package/components/nav/Header.vue +2 -2
- package/components/nav/Jump.vue +9 -19
- package/components/nav/TopLevelMenu.vue +18 -66
- package/components/nav/Type.vue +7 -16
- package/components/nav/WindowManager/ContainerLogs.vue +19 -120
- package/components/nav/WindowManager/ContainerShell.vue +1 -6
- package/components/nav/WindowManager/index.vue +10 -11
- package/components/nav/__tests__/TopLevelMenu.test.ts +1 -34
- package/components/nav/__tests__/Type.test.ts +1 -31
- package/components/nuxt/nuxt-child.js +78 -14
- package/components/nuxt/nuxt.js +1 -1
- package/components/user.retention/user-retention-header.vue +34 -0
- package/composables/useI18n.ts +26 -0
- package/composables/useStore.ts +16 -0
- package/config/harvester-manager-types.js +0 -2
- package/config/home-links.js +32 -2
- package/config/private-label.js +0 -22
- package/config/product/explorer.js +4 -4
- package/config/product/fleet.js +1 -6
- package/config/product/legacy.js +1 -84
- package/config/product/manager.js +15 -8
- package/config/query-params.js +0 -1
- package/config/router.js +368 -385
- package/config/settings.ts +9 -2
- package/config/store.js +1 -1
- package/config/system-namespaces.js +0 -3
- package/config/table-headers.js +27 -47
- package/config/types.js +5 -0
- package/config/uiplugins.js +1 -1
- package/core/plugin-helpers.js +5 -3
- package/core/plugin-routes.ts +114 -56
- package/core/plugin.ts +10 -16
- package/core/plugins-loader.js +9 -7
- package/core/plugins.js +3 -0
- package/core/types-provisioning.ts +0 -7
- package/creators/app/init +0 -19
- package/detail/fleet.cattle.io.bundle.vue +1 -1
- package/detail/fleet.cattle.io.cluster.vue +1 -11
- package/detail/node.vue +0 -42
- package/detail/pod.vue +1 -68
- package/detail/provisioning.cattle.io.cluster.vue +8 -25
- package/detail/workload/index.vue +1 -15
- package/dialog/ScaleMachineDownDialog.vue +17 -34
- package/edit/auth/googleoauth.vue +5 -1
- package/edit/catalog.cattle.io.clusterrepo.vue +7 -20
- package/edit/cloudcredential.vue +0 -2
- package/edit/fleet.cattle.io.gitrepo.vue +4 -3
- package/edit/management.cattle.io.project.vue +52 -1
- package/edit/management.cattle.io.setting.vue +2 -32
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/opsgenie.vue +1 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/pagerduty.vue +2 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +1 -1
- package/edit/monitoring.coreos.com.prometheusrule/AlertingRule.vue +3 -12
- package/edit/monitoring.coreos.com.prometheusrule/GroupRules.vue +1 -2
- package/edit/networking.k8s.io.networkpolicy/__tests__/PolicyRuleTarget.spec.ts +1 -1
- package/edit/provisioning.cattle.io.cluster/{tabs/Basics.vue → Basics.vue} +125 -106
- package/edit/provisioning.cattle.io.cluster/{tabs/MachinePool.vue → MachinePool.vue} +7 -1
- package/edit/provisioning.cattle.io.cluster/SelectCredential.vue +7 -15
- package/edit/provisioning.cattle.io.cluster/__tests__/Basics.tests.ts +237 -0
- package/edit/provisioning.cattle.io.cluster/__tests__/{CustomCommand.test.ts → CustomCommand.tests.ts} +0 -6
- package/edit/provisioning.cattle.io.cluster/__tests__/DrainOptions.test.ts +1 -1
- package/edit/provisioning.cattle.io.cluster/__tests__/rke2.test.ts +1 -7
- package/edit/provisioning.cattle.io.cluster/import.vue +2 -2
- package/edit/provisioning.cattle.io.cluster/index.vue +40 -109
- package/edit/provisioning.cattle.io.cluster/rke2.vue +689 -152
- package/edit/service.vue +0 -12
- package/edit/token.vue +0 -1
- package/edit/workload/Upgrading.vue +2 -3
- package/edit/workload/index.vue +1 -2
- package/edit/workload/mixins/workload.js +1 -1
- package/initialize/App.js +71 -25
- package/initialize/client.js +162 -21
- package/initialize/index.js +124 -47
- package/initialize/layouts.ts +26 -0
- package/{components/templates → layouts}/blank.vue +1 -1
- package/{components/templates → layouts}/default.vue +98 -8
- package/{components/templates → layouts}/error.vue +19 -10
- package/{components/templates → layouts}/home.vue +1 -4
- package/{components/templates → layouts}/plain.vue +1 -4
- package/{components/templates → layouts}/standalone.vue +1 -1
- package/{components/templates → layouts}/unauthenticated.vue +1 -1
- package/list/catalog.cattle.io.app.vue +0 -1
- package/list/management.cattle.io.feature.vue +7 -1
- package/list/management.cattle.io.setting.vue +0 -1
- package/list/management.cattle.io.user.vue +25 -1
- package/list/node.vue +0 -1
- package/machine-config/__tests__/vmwarevsphere.test.ts +161 -56
- package/machine-config/azure.vue +37 -21
- package/machine-config/vmwarevsphere.vue +47 -42
- package/middleware/authenticated.js +19 -14
- package/mixins/auth-config.js +7 -2
- package/mixins/brand.js +41 -29
- package/mixins/fetch.server.js +73 -0
- package/mixins/labeled-form-element.ts +1 -6
- package/models/__tests__/management.cattle.io.node.ts +0 -85
- package/models/__tests__/namespace.test.ts +9 -49
- package/models/cluster/node.js +4 -4
- package/models/cluster.x-k8s.io.machine.js +1 -1
- package/models/cluster.x-k8s.io.machinedeployment.js +0 -14
- package/models/fleet.cattle.io.cluster.js +0 -4
- package/models/fleet.cattle.io.gitrepo.js +13 -56
- package/models/management.cattle.io.cluster.js +3 -11
- package/models/management.cattle.io.kontainerdriver.js +0 -1
- package/models/management.cattle.io.node.js +14 -18
- package/models/management.cattle.io.nodepool.js +0 -17
- package/models/management.cattle.io.project.js +36 -0
- package/models/management.cattle.io.setting.js +7 -11
- package/models/management.cattle.io.user.js +65 -0
- package/models/namespace.js +1 -1
- package/models/pod.js +0 -20
- package/models/provisioning.cattle.io.cluster.js +9 -91
- package/models/secret.js +18 -126
- package/models/storage.k8s.io.storageclass.js +1 -1
- package/models/workload.js +0 -16
- package/models/workload.service.js +0 -18
- package/package.json +10 -12
- package/pages/about.vue +1 -0
- package/pages/account/create-key.vue +1 -0
- package/pages/account/index.vue +1 -0
- package/pages/auth/login.vue +1 -0
- package/pages/auth/logout.vue +2 -0
- package/pages/auth/setup.vue +4 -37
- package/pages/auth/verify.vue +8 -14
- package/pages/c/_cluster/apps/charts/__tests__/install.helper.test.ts +17 -2
- package/pages/c/_cluster/apps/charts/index.vue +58 -64
- package/pages/c/_cluster/apps/charts/install.helpers.js +13 -2
- package/pages/c/_cluster/apps/charts/install.vue +5 -5
- package/pages/c/_cluster/apps/index.vue +2 -0
- package/pages/c/_cluster/auth/index.vue +2 -0
- package/pages/c/_cluster/auth/user.retention/index.vue +384 -0
- package/pages/c/_cluster/ecm/index.vue +2 -0
- package/pages/c/_cluster/explorer/index.vue +53 -56
- package/pages/c/_cluster/explorer/tools/index.vue +3 -171
- package/pages/c/_cluster/fleet/index.vue +1 -1
- package/pages/c/_cluster/index.vue +2 -0
- package/pages/c/_cluster/manager/pages/_page.vue +5 -4
- package/pages/c/_cluster/monitoring/index.vue +1 -17
- package/pages/c/_cluster/settings/DefaultLinksEditor.vue +1 -1
- package/pages/c/_cluster/settings/banners.vue +2 -0
- package/pages/c/_cluster/settings/brand.vue +2 -3
- package/pages/c/_cluster/settings/index.vue +2 -0
- package/pages/c/_cluster/settings/links.vue +3 -2
- package/pages/c/_cluster/settings/performance.vue +1 -0
- package/pages/c/_cluster/uiplugins/CatalogList/CatalogLoadDialog.vue +1 -2
- package/pages/c/_cluster/uiplugins/CatalogList/index.vue +46 -10
- package/pages/c/_cluster/uiplugins/index.vue +2 -0
- package/pages/c/index.vue +9 -0
- package/pages/diagnostic.vue +2 -1
- package/pages/fail-whale.vue +1 -0
- package/pages/prefs.vue +1 -0
- package/pages/rio/mesh.vue +508 -0
- package/pages/support/index.vue +8 -2
- package/pkg/auto-import.js +1 -1
- package/plugins/axios.js +36 -0
- package/plugins/back-button.js +5 -3
- package/plugins/clean-html-directive.js +19 -1
- package/plugins/clean-tooltip-directive.js +1 -1
- package/plugins/codemirror-loader.js +1 -1
- package/plugins/codemirror.js +0 -41
- package/plugins/dashboard-store/__tests__/{mutations.test.ts → mutations.spec.ts} +1 -1
- package/plugins/dashboard-store/actions.js +17 -16
- package/plugins/dashboard-store/classify.js +18 -1
- package/plugins/dashboard-store/getters.js +7 -70
- package/plugins/dashboard-store/index.js +12 -0
- package/plugins/dashboard-store/mutations.js +4 -0
- package/plugins/dashboard-store/resource-class.js +20 -65
- package/plugins/i18n.js +1 -1
- package/plugins/steve/__tests__/getters.spec.ts +48 -26
- package/plugins/steve/__tests__/subscribe.spec.ts +106 -0
- package/plugins/steve/actions.js +37 -3
- package/plugins/steve/getters.js +24 -7
- package/plugins/steve/mutations.js +5 -2
- package/plugins/steve/norman-class.js +0 -19
- package/plugins/steve/steve-class.js +0 -22
- package/plugins/steve/subscribe.js +34 -13
- package/plugins/transitions.js +4 -0
- package/plugins/vue-clipboard2.js +4 -0
- package/rancher-components/Accordion/Accordion.vue +3 -2
- package/rancher-components/BadgeState/BadgeState.vue +3 -3
- package/rancher-components/Banner/Banner.test.ts +1 -5
- package/rancher-components/Banner/Banner.vue +2 -2
- package/rancher-components/Card/Card.vue +4 -4
- package/rancher-components/Form/Checkbox/Checkbox.vue +4 -3
- package/rancher-components/Form/LabeledInput/LabeledInput.test.ts +1 -1
- package/rancher-components/Form/LabeledInput/LabeledInput.vue +55 -24
- package/rancher-components/Form/Radio/RadioButton.test.ts +1 -3
- package/rancher-components/Form/Radio/RadioButton.vue +13 -7
- package/rancher-components/Form/Radio/RadioGroup.vue +4 -3
- package/rancher-components/Form/TextArea/TextAreaAutoGrow.vue +7 -5
- package/rancher-components/Form/ToggleSwitch/ToggleSwitch.vue +7 -4
- package/rancher-components/LabeledTooltip/LabeledTooltip.vue +9 -4
- package/rancher-components/StringList/StringList.vue +8 -8
- package/rancher-components/components/Accordion/Accordion.vue +3 -2
- package/rancher-components/components/BadgeState/BadgeState.test.ts +12 -0
- package/rancher-components/components/Form/LabeledInput/LabeledInput.test.ts +2 -19
- package/rancher-components/components/Form/LabeledInput/LabeledInput.vue +14 -11
- package/rancher-components/components/Form/TextArea/TextAreaAutoGrow.vue +1 -1
- package/rancher-components/components/StringList/StringList.test.ts +0 -270
- package/rancher-components/components/StringList/StringList.vue +18 -57
- package/scripts/extension/bundle +7 -19
- package/scripts/extension/helm/scripts/package +3 -11
- package/scripts/extension/parse-tag-name +4 -4
- package/scripts/extension/publish +9 -20
- package/scripts/publish-shell.sh +1 -11
- package/scripts/test-plugins-build.sh +9 -85
- package/store/catalog.js +1 -1
- package/store/features.js +0 -1
- package/store/i18n.js +0 -11
- package/store/index.js +13 -11
- package/store/prefs.js +38 -33
- package/store/type-map.js +82 -157
- package/tsconfig.default.json +46 -0
- package/tsconfig.json +9 -35
- package/types/shell/index.d.ts +407 -468
- package/utils/axios.js +19 -0
- package/utils/create-yaml.js +1 -5
- package/utils/custom-validators.js +2 -0
- package/utils/error.js +1 -16
- package/utils/monitoring.js +2 -37
- package/utils/nuxt.js +39 -18
- package/utils/object.js +0 -24
- package/utils/router.scrollBehavior.js +14 -12
- package/utils/socket.js +1 -0
- package/utils/time.js +1 -1
- package/utils/title.ts +3 -0
- package/utils/url.ts +1 -1
- package/utils/validators/formRules/__tests__/index.test.ts +4 -49
- package/utils/validators/formRules/index.ts +9 -12
- package/utils/validators/setting.js +10 -6
- package/vue.config.js +3 -24
- package/chart/monitoring/steps/uninstall-v1.vue +0 -135
- package/components/Certificates.vue +0 -164
- package/components/__tests__/CodeMirror.spec.ts +0 -99
- package/components/fleet/__tests__/FleetSummary.test.ts +0 -316
- package/components/formatter/FleetClusterSummaryGraph.vue +0 -27
- package/components/formatter/__tests__/Checked.test.ts +0 -19
- package/components/formatter/__tests__/WorkloadDetailEndpoints.test.ts +0 -81
- package/components/nav/WindowManager/__tests__/ContainerLogs.test.ts +0 -186
- package/composables/useCompactInput.ts +0 -20
- package/composables/useLabeledFormElement.ts +0 -138
- package/creators/app/files/.gitlab-ci.yml +0 -14
- package/detail/__tests__/provisioning.cattle.io.cluster.test.ts +0 -77
- package/edit/__tests__/service.test.ts +0 -89
- package/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +0 -112
- package/edit/provisioning.cattle.io.cluster/__tests__/Basics.test.ts +0 -473
- package/edit/provisioning.cattle.io.cluster/__tests__/index.test.ts +0 -73
- package/edit/provisioning.cattle.io.cluster/__tests__/utils/cluster.ts +0 -386
- package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +0 -137
- package/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +0 -157
- package/edit/provisioning.cattle.io.cluster/tabs/etcd/index.vue +0 -135
- package/edit/provisioning.cattle.io.cluster/tabs/networking/index.vue +0 -189
- package/edit/provisioning.cattle.io.cluster/tabs/registries/index.vue +0 -147
- package/edit/provisioning.cattle.io.cluster/tabs/upgrade/index.vue +0 -76
- package/mixins/v1-workload-metrics.js +0 -43
- package/models/__tests__/management.cattle.io.cluster.test.ts +0 -23
- package/models/__tests__/management.cattle.io.nodepool.ts +0 -83
- package/models/__tests__/provisioning.cattle.io.cluster.test.ts +0 -241
- package/models/__tests__/secret.test.ts +0 -37
- package/models/__tests__/storage.k8s.io.storageclass.test.ts +0 -22
- package/models/__tests__/workload.test.ts +0 -91
- package/plugins/clean-html.js +0 -53
- package/plugins/dashboard-store/__tests__/resource-class.test.ts +0 -49
- package/plugins/dashboard-store/__tests__/utils/store-mocks.ts +0 -7
- package/plugins/index.js +0 -11
- package/plugins/steve/__tests__/resource-utils.test.ts +0 -159
- package/plugins/steve/__tests__/steve-class.spec.ts +0 -59
- package/plugins/steve/__tests__/utils/steve-mocks.ts +0 -31
- package/plugins/steve/resource-utils.ts +0 -38
- package/scripts/.gitlab/workflows/build-extension-catalog.gitlab-ci.yml +0 -50
- package/server/har-file.js +0 -183
- package/store/__tests__/type-map.test.ts +0 -1122
- package/tsconfig.paths.json +0 -18
- package/utils/azure.js +0 -24
- package/utils/clipboard.js +0 -5
- /package/components/form/__tests__/{NameNsDescription.test.ts → NameNsDescription.ts} +0 -0
- /package/edit/networking.k8s.io.networkpolicy/__tests__/utils/{selectors.test.ts → selectors.ts} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/networking/ACE.vue → ACE.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/AgentConfiguration.vue → AgentConfiguration.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/upgrade/DrainOptions.vue → DrainOptions.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/MemberRoles.vue → MemberRoles.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/registries/RegistryConfigs.vue → RegistryConfigs.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/registries/RegistryMirrors.vue → RegistryMirrors.vue} +0 -0
- /package/edit/provisioning.cattle.io.cluster/{tabs/etcd/S3Config.vue → S3Config.vue} +0 -0
- /package/plugins/dashboard-store/__tests__/{actions.test.ts → actions.spec.ts} +0 -0
- /package/plugins/dashboard-store/__tests__/{getters.test.ts → getters.spec.ts} +0 -0
- /package/rancher-components/BadgeState/{BadgeState.spec.ts → BadgeState.test.ts} +0 -0
package/models/pod.js
CHANGED
|
@@ -3,7 +3,6 @@ import { colorForState, stateDisplay } from '@shell/plugins/dashboard-store/reso
|
|
|
3
3
|
import { NODE, WORKLOAD_TYPES } from '@shell/config/types';
|
|
4
4
|
import { escapeHtml, shortenedImage } from '@shell/utils/string';
|
|
5
5
|
import WorkloadService from '@shell/models/workload.service';
|
|
6
|
-
import { deleteProperty } from '@shell/utils/object';
|
|
7
6
|
|
|
8
7
|
export const WORKLOAD_PRIORITY = {
|
|
9
8
|
[WORKLOAD_TYPES.DEPLOYMENT]: 1,
|
|
@@ -257,23 +256,4 @@ export default class Pod extends WorkloadService {
|
|
|
257
256
|
return Promise.reject(e);
|
|
258
257
|
});
|
|
259
258
|
}
|
|
260
|
-
|
|
261
|
-
cleanForSave(data) {
|
|
262
|
-
const val = super.cleanForSave(data);
|
|
263
|
-
|
|
264
|
-
// remove fields from containers
|
|
265
|
-
val.spec?.containers?.forEach((container) => {
|
|
266
|
-
this.cleanContainerForSave(container);
|
|
267
|
-
});
|
|
268
|
-
|
|
269
|
-
// remove fields from initContainers
|
|
270
|
-
val.spec?.initContainers?.forEach((container) => {
|
|
271
|
-
this.cleanContainerForSave(container);
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
// This is probably added by generic workload components that shouldn't be added to pods
|
|
275
|
-
deleteProperty(val, 'spec.selector');
|
|
276
|
-
|
|
277
|
-
return val;
|
|
278
|
-
}
|
|
279
259
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
CAPI, MANAGEMENT,
|
|
2
|
+
CAPI, MANAGEMENT, NORMAN, SNAPSHOT, HCI
|
|
3
3
|
} from '@shell/config/types';
|
|
4
4
|
import SteveModel from '@shell/plugins/steve/steve-class';
|
|
5
5
|
import { findBy } from '@shell/utils/array';
|
|
@@ -180,16 +180,6 @@ export default class ProvCluster extends SteveModel {
|
|
|
180
180
|
return out;
|
|
181
181
|
}
|
|
182
182
|
|
|
183
|
-
async findNormanCluster() {
|
|
184
|
-
const name = this.status?.clusterName;
|
|
185
|
-
|
|
186
|
-
if ( !name ) {
|
|
187
|
-
return null;
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
return await this.$dispatch('rancher/find', { type: NORMAN.CLUSTER, id: name }, { root: true });
|
|
191
|
-
}
|
|
192
|
-
|
|
193
183
|
explore() {
|
|
194
184
|
const location = {
|
|
195
185
|
name: 'c-cluster',
|
|
@@ -249,39 +239,10 @@ export default class ProvCluster extends SteveModel {
|
|
|
249
239
|
return providers.includes(this.provisioner);
|
|
250
240
|
}
|
|
251
241
|
|
|
252
|
-
get isPrivateHostedProvider() {
|
|
253
|
-
if (this.isHostedKubernetesProvider && this.mgmt && this.provisioner) {
|
|
254
|
-
switch (this.provisioner.toLowerCase()) {
|
|
255
|
-
case 'gke':
|
|
256
|
-
return this.mgmt.spec?.gkeConfig?.privateClusterConfig?.enablePrivateEndpoint;
|
|
257
|
-
case 'eks':
|
|
258
|
-
return this.mgmt.spec?.eksConfig?.privateAccess;
|
|
259
|
-
case 'aks':
|
|
260
|
-
return this.mgmt.spec?.aksConfig?.privateCluster;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
return false;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
get isLocal() {
|
|
268
|
-
return this.mgmt?.isLocal;
|
|
269
|
-
}
|
|
270
|
-
|
|
271
242
|
get isImported() {
|
|
272
243
|
// As of Rancher v2.6.7, this returns false for imported K3s clusters,
|
|
273
244
|
// in which this.provisioner is `k3s`.
|
|
274
|
-
|
|
275
|
-
const isImportedProvisioner = this.provisioner === 'imported';
|
|
276
|
-
const isImportedSpecialCases = this.mgmt?.providerForEmberParam === 'import' ||
|
|
277
|
-
// when imported cluster is GKE
|
|
278
|
-
!!this.mgmt?.spec?.gkeConfig?.imported ||
|
|
279
|
-
// or AKS
|
|
280
|
-
!!this.mgmt?.spec?.aksConfig?.imported ||
|
|
281
|
-
// or EKS
|
|
282
|
-
!!this.mgmt?.spec?.eksConfig?.imported;
|
|
283
|
-
|
|
284
|
-
return !this.isLocal && (isImportedProvisioner || (!this.isRke2 && !this.mgmt?.machineProvider && isImportedSpecialCases));
|
|
245
|
+
return this.provisioner === 'imported';
|
|
285
246
|
}
|
|
286
247
|
|
|
287
248
|
get isCustom() {
|
|
@@ -301,6 +262,8 @@ export default class ProvCluster extends SteveModel {
|
|
|
301
262
|
}
|
|
302
263
|
|
|
303
264
|
get isImportedK3s() {
|
|
265
|
+
// As of Rancher v2.6.7, this returns false for imported K3s clusters,
|
|
266
|
+
// in which this.provisioner is `k3s`.
|
|
304
267
|
return this.isImported && this.isK3s;
|
|
305
268
|
}
|
|
306
269
|
|
|
@@ -309,7 +272,7 @@ export default class ProvCluster extends SteveModel {
|
|
|
309
272
|
}
|
|
310
273
|
|
|
311
274
|
get isK3s() {
|
|
312
|
-
return this.mgmt?.status
|
|
275
|
+
return this.mgmt?.status?.provider === 'k3s';
|
|
313
276
|
}
|
|
314
277
|
|
|
315
278
|
get isRke2() {
|
|
@@ -317,7 +280,7 @@ export default class ProvCluster extends SteveModel {
|
|
|
317
280
|
}
|
|
318
281
|
|
|
319
282
|
get isRke1() {
|
|
320
|
-
return !!this.mgmt?.spec?.rancherKubernetesEngineConfig
|
|
283
|
+
return !!this.mgmt?.spec?.rancherKubernetesEngineConfig;
|
|
321
284
|
}
|
|
322
285
|
|
|
323
286
|
get isHarvester() {
|
|
@@ -852,11 +815,11 @@ export default class ProvCluster extends SteveModel {
|
|
|
852
815
|
get agentConfig() {
|
|
853
816
|
// The one we want is the first one with no selector.
|
|
854
817
|
// If there are multiple with no selector, that will fall under the unsupported message below.
|
|
855
|
-
return this.spec.rkeConfig.machineSelectorConfig.find((x) => !x.machineLabelSelector)
|
|
818
|
+
return this.spec.rkeConfig.machineSelectorConfig.find((x) => !x.machineLabelSelector).config;
|
|
856
819
|
}
|
|
857
820
|
|
|
858
821
|
get cloudProvider() {
|
|
859
|
-
return this.agentConfig
|
|
822
|
+
return this.agentConfig['cloud-provider-name'];
|
|
860
823
|
}
|
|
861
824
|
|
|
862
825
|
get canClone() {
|
|
@@ -906,51 +869,6 @@ export default class ProvCluster extends SteveModel {
|
|
|
906
869
|
}
|
|
907
870
|
|
|
908
871
|
get hasError() {
|
|
909
|
-
|
|
910
|
-
// but this is wrong as an error might exist but it might not be meaningful in the context of readiness of a cluster
|
|
911
|
-
// which is what this 'hasError' is used for.
|
|
912
|
-
// We now check if there's a ready condition after an error, which helps dictate the readiness of a cluster
|
|
913
|
-
// Based on the findings in https://github.com/rancher/dashboard/issues/10043
|
|
914
|
-
if (this.status?.conditions && this.status?.conditions.length) {
|
|
915
|
-
// if there are errors, we compare with how recent the "Ready" condition is compared to that error, otherwise we just move on
|
|
916
|
-
if (this.status?.conditions.some((c) => c.error === true)) {
|
|
917
|
-
// there's no ready condition and has an error, mark it
|
|
918
|
-
if (!this.status?.conditions.some((c) => c.type === 'Ready')) {
|
|
919
|
-
return true;
|
|
920
|
-
}
|
|
921
|
-
|
|
922
|
-
const filteredConditions = this.status?.conditions.filter((c) => c.error === true || c.type === 'Ready');
|
|
923
|
-
const mostRecentCondition = filteredConditions.reduce((a, b) => ((a.lastUpdateTime > b.lastUpdateTime) ? a : b));
|
|
924
|
-
|
|
925
|
-
return mostRecentCondition.error;
|
|
926
|
-
}
|
|
927
|
-
}
|
|
928
|
-
|
|
929
|
-
return false;
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
get namespaceLocation() {
|
|
933
|
-
const localCluster = this.$rootGetters['management/byId'](MANAGEMENT.CLUSTER, LOCAL_CLUSTER);
|
|
934
|
-
|
|
935
|
-
if (localCluster) {
|
|
936
|
-
return {
|
|
937
|
-
name: 'c-cluster-product-resource-id',
|
|
938
|
-
params: {
|
|
939
|
-
cluster: localCluster.id,
|
|
940
|
-
product: this.$rootGetters['productId'],
|
|
941
|
-
resource: NAMESPACE,
|
|
942
|
-
id: this.namespace
|
|
943
|
-
}
|
|
944
|
-
};
|
|
945
|
-
}
|
|
946
|
-
|
|
947
|
-
return null;
|
|
948
|
-
}
|
|
949
|
-
|
|
950
|
-
// JSON Paths that should be folded in the YAML editor by default
|
|
951
|
-
get yamlFolding() {
|
|
952
|
-
return [
|
|
953
|
-
'spec.rkeConfig.machinePools.dynamicSchemaSpec',
|
|
954
|
-
];
|
|
872
|
+
return this.status?.conditions?.some((condition) => condition.error === true);
|
|
955
873
|
}
|
|
956
874
|
}
|
package/models/secret.js
CHANGED
|
@@ -6,10 +6,6 @@ import { SERVICE_ACCOUNT } from '@shell/config/types';
|
|
|
6
6
|
import { set } from '@shell/utils/object';
|
|
7
7
|
import { NAME as MANAGER } from '@shell/config/product/manager';
|
|
8
8
|
import SteveModel from '@shell/plugins/steve/steve-class';
|
|
9
|
-
import { colorForState, stateDisplay, STATES_ENUM } from '@shell/plugins/dashboard-store/resource-class';
|
|
10
|
-
import { diffFrom } from '@shell/utils/time';
|
|
11
|
-
import day from 'dayjs';
|
|
12
|
-
import { steveCleanForDownload } from '@shell/plugins/steve/resource-utils';
|
|
13
9
|
|
|
14
10
|
export const TYPES = {
|
|
15
11
|
OPAQUE: 'Opaque',
|
|
@@ -27,12 +23,7 @@ export const TYPES = {
|
|
|
27
23
|
RKE_AUTH_CONFIG: 'rke.cattle.io/auth-config'
|
|
28
24
|
};
|
|
29
25
|
|
|
30
|
-
/** Class a cert as expiring if in eight days */
|
|
31
|
-
const certExpiringPeriod = 1000 * 60 * 60 * 24 * 8;
|
|
32
|
-
|
|
33
26
|
export default class Secret extends SteveModel {
|
|
34
|
-
_cachedCertInfo;
|
|
35
|
-
|
|
36
27
|
get hasSensitiveData() {
|
|
37
28
|
return true;
|
|
38
29
|
}
|
|
@@ -55,7 +46,7 @@ export default class Secret extends SteveModel {
|
|
|
55
46
|
if (annotations[CERTMANAGER.ISSUER]) {
|
|
56
47
|
return annotations[CERTMANAGER.ISSUER];
|
|
57
48
|
} else if (this.isCertificate) {
|
|
58
|
-
return this.
|
|
49
|
+
return this.certInfo?.issuer;
|
|
59
50
|
} else {
|
|
60
51
|
return null;
|
|
61
52
|
}
|
|
@@ -63,7 +54,7 @@ export default class Secret extends SteveModel {
|
|
|
63
54
|
|
|
64
55
|
get notAfter() {
|
|
65
56
|
if (this.isCertificate) {
|
|
66
|
-
return this.
|
|
57
|
+
return this.certInfo?.notAfter;
|
|
67
58
|
} else {
|
|
68
59
|
return null;
|
|
69
60
|
}
|
|
@@ -71,7 +62,7 @@ export default class Secret extends SteveModel {
|
|
|
71
62
|
|
|
72
63
|
get cn() {
|
|
73
64
|
if (this.isCertificate) {
|
|
74
|
-
return this.
|
|
65
|
+
return this.certInfo?.cn;
|
|
75
66
|
}
|
|
76
67
|
|
|
77
68
|
return null;
|
|
@@ -89,13 +80,14 @@ export default class Secret extends SteveModel {
|
|
|
89
80
|
// use text-warning' or 'text-error' if cert is expiring within 8 days or is expired
|
|
90
81
|
get dateClass() {
|
|
91
82
|
if (this.isCertificate) {
|
|
92
|
-
|
|
93
|
-
|
|
83
|
+
const eightDays = 691200000;
|
|
84
|
+
|
|
85
|
+
if (this.timeTilExpiration > eightDays ) {
|
|
86
|
+
return '';
|
|
87
|
+
} else if (this.timeTilExpiration > 0) {
|
|
94
88
|
return 'text-warning';
|
|
95
|
-
|
|
89
|
+
} else {
|
|
96
90
|
return 'text-error';
|
|
97
|
-
default:
|
|
98
|
-
return '';
|
|
99
91
|
}
|
|
100
92
|
}
|
|
101
93
|
|
|
@@ -256,7 +248,7 @@ export default class Secret extends SteveModel {
|
|
|
256
248
|
// parse TLS certs and return issuer, notAfter, cn, sans
|
|
257
249
|
get certInfo() {
|
|
258
250
|
const pem = base64Decode(this.data['tls.crt']);
|
|
259
|
-
let issuer,
|
|
251
|
+
let issuer, notAfter, cn, sans, x;
|
|
260
252
|
const END_MARKER = '-----END CERTIFICATE-----';
|
|
261
253
|
|
|
262
254
|
if (pem) {
|
|
@@ -274,7 +266,6 @@ export default class Secret extends SteveModel {
|
|
|
274
266
|
const issuerString = x.getIssuerString();
|
|
275
267
|
|
|
276
268
|
issuer = issuerString.slice(issuerString.indexOf('CN=') + 3);
|
|
277
|
-
notBefore = r.zulutodate(x.getNotBefore());
|
|
278
269
|
notAfter = r.zulutodate(x.getNotAfter());
|
|
279
270
|
|
|
280
271
|
const cnString = x.getSubjectString();
|
|
@@ -290,39 +281,25 @@ export default class Secret extends SteveModel {
|
|
|
290
281
|
sans = [];
|
|
291
282
|
}
|
|
292
283
|
|
|
293
|
-
|
|
294
|
-
issuer,
|
|
284
|
+
return {
|
|
285
|
+
issuer, notAfter, cn, sans
|
|
295
286
|
};
|
|
296
|
-
|
|
297
|
-
return certInfo;
|
|
298
287
|
}
|
|
299
288
|
|
|
300
289
|
return null;
|
|
301
290
|
}
|
|
302
291
|
|
|
303
|
-
get cachedCertInfo() {
|
|
304
|
-
if (!this._cachedCertInfo) {
|
|
305
|
-
this._cachedCertInfo = this.certInfo;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
return this._cachedCertInfo;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
292
|
// use for + n more name display
|
|
312
293
|
get unrepeatedSans() {
|
|
313
294
|
if (this._type === TYPES.TLS ) {
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
const commonBases = certInfo?.sans
|
|
318
|
-
.filter((name) => name.indexOf('*.') === 0 || name.indexOf('www.') === 0)
|
|
319
|
-
.map((name) => name.substr(name.indexOf('.')));
|
|
320
|
-
const displaySans = removeObjects(certInfo?.sans, commonBases);
|
|
295
|
+
if (this.certInfo?.sans?.filter) {
|
|
296
|
+
const commonBases = this.certInfo?.sans.filter((name) => name.indexOf('*.') === 0 || name.indexOf('www.') === 0).map((name) => name.substr(name.indexOf('.')));
|
|
297
|
+
const displaySans = removeObjects(this.certInfo?.sans, commonBases);
|
|
321
298
|
|
|
322
299
|
return displaySans;
|
|
323
300
|
}
|
|
324
301
|
|
|
325
|
-
return certInfo?.sans
|
|
302
|
+
return this.certInfo?.sans || [];
|
|
326
303
|
}
|
|
327
304
|
|
|
328
305
|
return null;
|
|
@@ -330,28 +307,16 @@ export default class Secret extends SteveModel {
|
|
|
330
307
|
|
|
331
308
|
get timeTilExpiration() {
|
|
332
309
|
if (this._type === TYPES.TLS) {
|
|
333
|
-
const
|
|
334
|
-
|
|
335
|
-
if (!certInfo?.notAfter) {
|
|
336
|
-
return null;
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
const expiration = certInfo.notAfter;
|
|
310
|
+
const expiration = this.certInfo.notAfter;
|
|
340
311
|
const timeThen = expiration.valueOf();
|
|
341
312
|
const timeNow = Date.now();
|
|
342
313
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
return timeTilExpiration < 0 ? 0 : timeTilExpiration;
|
|
314
|
+
return timeThen - timeNow;
|
|
346
315
|
}
|
|
347
316
|
|
|
348
317
|
return null;
|
|
349
318
|
}
|
|
350
319
|
|
|
351
|
-
get timeTilExpirationDate() {
|
|
352
|
-
return this.timeTilExpiration > 0 ? this.cachedCertInfo?.notAfter?.valueOf() : null;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
320
|
get decodedData() {
|
|
356
321
|
const out = {};
|
|
357
322
|
|
|
@@ -392,77 +357,4 @@ export default class Secret extends SteveModel {
|
|
|
392
357
|
return 'c-cluster-product-resource';
|
|
393
358
|
}
|
|
394
359
|
}
|
|
395
|
-
|
|
396
|
-
get certLifetime() {
|
|
397
|
-
if (this._type === TYPES.TLS) {
|
|
398
|
-
const certInfo = this.cachedCertInfo;
|
|
399
|
-
|
|
400
|
-
if (certInfo) {
|
|
401
|
-
return diffFrom(day(certInfo.notBefore), day(certInfo.notAfter), (key, args) => this.t(key, args)).string;
|
|
402
|
-
}
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
return null;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
/**
|
|
409
|
-
* Get the model `state` for secrets of type cert
|
|
410
|
-
*/
|
|
411
|
-
get certState() {
|
|
412
|
-
if (this._type !== TYPES.TLS) {
|
|
413
|
-
return undefined;
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
if (typeof this.timeTilExpiration !== 'number' || this.timeTilExpiration > certExpiringPeriod ) {
|
|
417
|
-
return '';
|
|
418
|
-
} else if (this.timeTilExpiration > 0) {
|
|
419
|
-
return STATES_ENUM.EXPIRING;
|
|
420
|
-
} else {
|
|
421
|
-
return STATES_ENUM.EXPIRED;
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
/**
|
|
426
|
-
* Get the model `state display` for secrets of type cert
|
|
427
|
-
*/
|
|
428
|
-
get certStateDisplay() {
|
|
429
|
-
if (this._type !== TYPES.TLS) {
|
|
430
|
-
return undefined;
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
return stateDisplay(this.certState);
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
/**
|
|
437
|
-
* Get the model `state background` for secrets of type cert
|
|
438
|
-
*/
|
|
439
|
-
get certStateBackground() {
|
|
440
|
-
if (this._type !== TYPES.TLS) {
|
|
441
|
-
return undefined;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
const color = colorForState(this.certState);
|
|
445
|
-
|
|
446
|
-
return color.replace('text-', 'bg-');
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
cleanForSave(data, forNew) {
|
|
450
|
-
const val = super.cleanForSave(data, forNew);
|
|
451
|
-
|
|
452
|
-
// Secrets on create with _type will return validation error
|
|
453
|
-
// Secrets on edit without _type will return http error
|
|
454
|
-
if (forNew) {
|
|
455
|
-
delete val._type;
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
return val;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
async cleanForDownload(yaml) {
|
|
462
|
-
// secret resource contains the type attribute
|
|
463
|
-
// ref: https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/secret-v1/
|
|
464
|
-
// ref: https://kubernetes.io/docs/concepts/configuration/secret/#secret-types
|
|
465
|
-
|
|
466
|
-
return steveCleanForDownload(yaml, { rootKeys: ['id', 'links', 'actions'] });
|
|
467
|
-
}
|
|
468
360
|
}
|
|
@@ -84,7 +84,7 @@ export const PROVISIONER_OPTIONS = [
|
|
|
84
84
|
export default class extends SteveModel {
|
|
85
85
|
get provisionerDisplay() {
|
|
86
86
|
const option = PROVISIONER_OPTIONS.find((o) => o.value === this.provisioner);
|
|
87
|
-
const fallback = `${ this.provisioner } ${ this.t('persistentVolume.csi.suffix') }`;
|
|
87
|
+
const fallback = `${ this.provisioner } ${ this.t('persistentVolume.csi.drivers.suffix') }`;
|
|
88
88
|
|
|
89
89
|
return option ? this.t(option.labelKey) : this.$rootGetters['i18n/withFallback'](`persistentVolume.csi.drivers.${ this.provisioner.replaceAll('.', '-') }`, null, fallback);
|
|
90
90
|
}
|
package/models/workload.js
CHANGED
|
@@ -649,20 +649,4 @@ export default class Workload extends WorkloadService {
|
|
|
649
649
|
|
|
650
650
|
return matching(allInNamespace, selector);
|
|
651
651
|
}
|
|
652
|
-
|
|
653
|
-
cleanForSave(data) {
|
|
654
|
-
const val = super.cleanForSave(data);
|
|
655
|
-
|
|
656
|
-
// remove fields from containers
|
|
657
|
-
val.spec?.template?.spec?.containers?.forEach((container) => {
|
|
658
|
-
this.cleanContainerForSave(container);
|
|
659
|
-
});
|
|
660
|
-
|
|
661
|
-
// remove fields from initContainers
|
|
662
|
-
val.spec?.template?.spec?.initContainers?.forEach((container) => {
|
|
663
|
-
this.cleanContainerForSave(container);
|
|
664
|
-
});
|
|
665
|
-
|
|
666
|
-
return val;
|
|
667
|
-
}
|
|
668
652
|
}
|
|
@@ -320,22 +320,4 @@ export default class WorkloadService extends SteveModel {
|
|
|
320
320
|
|
|
321
321
|
return { toSave, toRemove };
|
|
322
322
|
}
|
|
323
|
-
|
|
324
|
-
cleanForSave(data) {
|
|
325
|
-
const val = super.cleanForSave(data);
|
|
326
|
-
|
|
327
|
-
delete val.__active;
|
|
328
|
-
delete val.type;
|
|
329
|
-
|
|
330
|
-
return val;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
cleanContainerForSave(container) {
|
|
334
|
-
delete container.__active;
|
|
335
|
-
delete container.active;
|
|
336
|
-
delete container._init;
|
|
337
|
-
delete container.error;
|
|
338
|
-
|
|
339
|
-
return container;
|
|
340
|
-
}
|
|
341
323
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rancher/shell",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "Rancher Dashboard Shell",
|
|
5
5
|
"repository": "https://github.com/rancherlabs/dashboard",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -41,7 +41,6 @@
|
|
|
41
41
|
"@nuxtjs/eslint-config-typescript": "6.0.1",
|
|
42
42
|
"@nuxtjs/webpack-profile": "0.1.0",
|
|
43
43
|
"@popperjs/core": "2.4.4",
|
|
44
|
-
"@types/is-url": "1.2.30",
|
|
45
44
|
"@types/node": "16.4.3",
|
|
46
45
|
"@typescript-eslint/eslint-plugin": "4.33.0",
|
|
47
46
|
"@typescript-eslint/parser": "4.33.0",
|
|
@@ -116,11 +115,11 @@
|
|
|
116
115
|
"start-server-and-test": "1.13.1",
|
|
117
116
|
"style-loader": "1.2.1",
|
|
118
117
|
"ts-node": "8.10.2",
|
|
119
|
-
"typescript": "4.
|
|
118
|
+
"typescript": "4.1.6",
|
|
120
119
|
"url-parse": "1.5.10",
|
|
121
120
|
"v-tooltip": "2.0.3",
|
|
122
121
|
"vue": "2.7.14",
|
|
123
|
-
"
|
|
122
|
+
"vue-clipboard2": "0.3.1",
|
|
124
123
|
"vue-codemirror": "4.0.6",
|
|
125
124
|
"vue-js-modal": "1.3.35",
|
|
126
125
|
"vue-resize": "0.4.5",
|
|
@@ -129,16 +128,16 @@
|
|
|
129
128
|
"vue-shortkey": "3.1.7",
|
|
130
129
|
"vue-template-compiler": "2.7.14",
|
|
131
130
|
"vue-virtual-scroll-list": "^2.3.4",
|
|
131
|
+
"vue2-transitions": "0.3.0",
|
|
132
132
|
"vuedraggable": "2.24.3",
|
|
133
133
|
"vuex": "3.6.2",
|
|
134
134
|
"webpack-bundle-analyzer": "4.5.0",
|
|
135
135
|
"webpack-virtual-modules": "0.4.3",
|
|
136
|
-
"xterm": "5.
|
|
137
|
-
"xterm-addon-
|
|
138
|
-
"xterm-addon-
|
|
139
|
-
"xterm-addon-
|
|
140
|
-
"xterm-addon-
|
|
141
|
-
"xterm-addon-webgl": "0.16.0",
|
|
136
|
+
"xterm": "5.0.0",
|
|
137
|
+
"xterm-addon-fit": "0.6.0",
|
|
138
|
+
"xterm-addon-search": "0.10.0",
|
|
139
|
+
"xterm-addon-web-links": "0.7.0",
|
|
140
|
+
"xterm-addon-webgl": "0.13.0",
|
|
142
141
|
"worker-loader": "3.0.8",
|
|
143
142
|
"yarn": "1.22.18"
|
|
144
143
|
},
|
|
@@ -151,8 +150,7 @@
|
|
|
151
150
|
"qs": ">=6.7.3",
|
|
152
151
|
"nth-check": ">=2.0.1",
|
|
153
152
|
"follow-redirects": ">=1.14.7",
|
|
154
|
-
"merge": ">=2.1.1"
|
|
155
|
-
"semver": ">=7.5.2"
|
|
153
|
+
"merge": ">=2.1.1"
|
|
156
154
|
},
|
|
157
155
|
"nyc": {
|
|
158
156
|
"extension": [
|
package/pages/about.vue
CHANGED
package/pages/account/index.vue
CHANGED
|
@@ -15,6 +15,7 @@ import CopyToClipboardText from '@shell/components/CopyToClipboardText';
|
|
|
15
15
|
const API_ENDPOINT = '/v3';
|
|
16
16
|
|
|
17
17
|
export default {
|
|
18
|
+
layout: 'plain',
|
|
18
19
|
components: {
|
|
19
20
|
CopyToClipboardText, BackLink, Banner, PromptChangePassword, Loading, ResourceTable, Principal
|
|
20
21
|
},
|
package/pages/auth/login.vue
CHANGED