@rancher/shell 3.0.10 → 3.0.12-rc.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/assets/styles/base/_mixins.scss +31 -0
- package/assets/styles/base/_variables.scss +2 -0
- package/assets/styles/themes/_modern.scss +6 -5
- package/assets/translations/en-us.yaml +12 -9
- package/assets/translations/zh-hans.yaml +0 -3
- package/chart/__tests__/rancher-backup-index.test.ts +248 -0
- package/chart/rancher-backup/index.vue +41 -2
- package/components/BrandImage.vue +6 -5
- package/components/ConsumptionGauge.vue +12 -4
- package/components/DynamicContent/DynamicContentIcon.vue +3 -2
- package/components/EmptyProductPage.vue +76 -0
- package/components/ExplorerProjectsNamespaces.vue +1 -4
- package/components/LazyImage.vue +2 -1
- package/components/Resource/Detail/Card/Scaler.vue +4 -4
- package/components/Resource/Detail/CopyToClipboard.vue +1 -2
- package/components/Resource/Detail/Metadata/KeyValueRow.vue +9 -3
- package/components/Resource/Detail/TitleBar/__tests__/__snapshots__/index.test.ts.snap +31 -0
- package/components/Resource/Detail/TitleBar/__tests__/index.test.ts +45 -1
- package/components/Resource/Detail/TitleBar/index.vue +1 -1
- package/components/Resource/Detail/ViewOptions/__tests__/__snapshots__/index.test.ts.snap +9 -0
- package/components/Resource/Detail/ViewOptions/__tests__/index.test.ts +62 -0
- package/components/Resource/Detail/ViewOptions/index.vue +2 -1
- package/components/ResourceList/Masthead.vue +25 -2
- package/components/SideNav.vue +13 -0
- package/components/Tabbed/index.vue +6 -0
- package/components/__tests__/ConsumptionGauge.test.ts +31 -0
- package/components/__tests__/PromptModal.test.ts +2 -0
- package/components/fleet/FleetClusters.vue +1 -0
- package/components/fleet/__tests__/FleetClusters.test.ts +71 -0
- package/components/form/NodeScheduling.vue +17 -3
- package/components/form/PrivateRegistry.vue +69 -0
- package/components/form/ProjectMemberEditor.vue +0 -10
- package/components/form/__tests__/PrivateRegistry.test.ts +133 -0
- package/components/formatter/WorkloadHealthScale.vue +3 -1
- package/components/nav/Group.vue +26 -3
- package/components/nav/Header.vue +32 -7
- package/components/nav/TopLevelMenu.helper.ts +7 -79
- package/components/nav/TopLevelMenu.vue +15 -1
- package/components/nav/__tests__/TopLevelMenu.helper.test.ts +2 -53
- package/config/pagination-table-headers.js +8 -1
- package/config/private-label.js +2 -1
- package/config/product/apps.js +3 -1
- package/config/product/auth.js +1 -0
- package/config/product/backup.js +1 -0
- package/config/product/compliance.js +1 -1
- package/config/product/explorer.js +25 -6
- package/config/product/fleet.js +1 -0
- package/config/product/gatekeeper.js +1 -0
- package/config/product/istio.js +1 -0
- package/config/product/logging.js +1 -0
- package/config/product/longhorn.js +2 -1
- package/config/product/manager.js +1 -0
- package/config/product/monitoring.js +1 -0
- package/config/product/navlinks.js +1 -0
- package/config/product/neuvector.js +2 -1
- package/config/product/settings.js +1 -0
- package/config/product/uiplugins.js +1 -0
- package/core/__tests__/extension-manager-impl.test.js +187 -2
- package/core/__tests__/plugin-products-helpers.test.ts +454 -0
- package/core/__tests__/plugin-products.test.ts +3219 -0
- package/core/extension-manager-impl.js +34 -3
- package/core/plugin-helpers.ts +31 -0
- package/core/plugin-products-base.ts +375 -0
- package/core/plugin-products-extending.ts +44 -0
- package/core/plugin-products-helpers.ts +262 -0
- package/core/plugin-products-top-level.ts +66 -0
- package/core/plugin-products-type-guards.ts +33 -0
- package/core/plugin-products.ts +50 -0
- package/core/plugin-types.ts +222 -0
- package/core/plugin.ts +45 -10
- package/core/productDebugger.js +48 -0
- package/core/types.ts +95 -11
- package/detail/__tests__/__snapshots__/fleet.cattle.io.bundle.test.ts.snap +52 -0
- package/detail/__tests__/fleet.cattle.io.bundle.test.ts +171 -0
- package/detail/__tests__/node.test.ts +83 -0
- package/detail/fleet.cattle.io.bundle.vue +21 -34
- package/detail/management.cattle.io.oidcclient.vue +2 -1
- package/detail/node.vue +1 -0
- package/dialog/ExtensionCatalogInstallDialog.vue +1 -1
- package/dialog/InstallExtensionDialog.vue +6 -27
- package/dialog/UninstallExistingExtensionDialog.vue +141 -0
- package/dialog/UninstallExtensionDialog.vue +4 -26
- package/dialog/__tests__/UninstallExistingExtensionDialog.test.ts +114 -0
- package/edit/__tests__/fleet.cattle.io.gitrepo.test.ts +1 -0
- package/edit/catalog.cattle.io.clusterrepo.vue +17 -3
- package/edit/cloudcredential.vue +2 -1
- package/edit/monitoring.coreos.com.alertmanagerconfig/receiverConfig.vue +11 -6
- package/edit/provisioning.cattle.io.cluster/__tests__/Ingress.test.ts +176 -0
- package/edit/provisioning.cattle.io.cluster/index.vue +5 -4
- package/edit/provisioning.cattle.io.cluster/rke2.vue +4 -1
- package/edit/provisioning.cattle.io.cluster/shared.ts +4 -2
- package/edit/provisioning.cattle.io.cluster/tabs/Basics.vue +6 -0
- package/edit/provisioning.cattle.io.cluster/tabs/Ingress.vue +7 -2
- package/edit/secret/generic.vue +1 -0
- package/edit/secret/index.vue +2 -1
- package/edit/service.vue +2 -14
- package/list/management.cattle.io.feature.vue +7 -1
- package/list/provisioning.cattle.io.cluster.vue +0 -50
- package/list/workload.vue +11 -4
- package/mixins/brand.js +2 -1
- package/mixins/resource-fetch.js +12 -3
- package/models/catalog.cattle.io.clusterrepo.js +9 -0
- package/models/cluster.x-k8s.io.machinedeployment.js +8 -3
- package/models/management.cattle.io.authconfig.js +2 -1
- package/models/management.cattle.io.cluster.js +4 -3
- package/models/monitoring.coreos.com.receiver.js +11 -6
- package/models/pod.js +18 -0
- package/models/provisioning.cattle.io.cluster.js +2 -2
- package/models/workload.js +20 -2
- package/package.json +5 -6
- package/pages/c/_cluster/apps/charts/AppChartCardFooter.vue +0 -1
- package/pages/c/_cluster/apps/charts/index.vue +3 -8
- package/pages/c/_cluster/apps/charts/install.vue +8 -9
- package/pages/c/_cluster/istio/index.vue +4 -2
- package/pages/c/_cluster/longhorn/index.vue +2 -1
- package/pages/c/_cluster/monitoring/index.vue +2 -2
- package/pages/c/_cluster/neuvector/index.vue +2 -1
- package/pages/c/_cluster/settings/brand.vue +4 -4
- package/pages/c/_cluster/settings/performance.vue +0 -5
- package/pages/c/_cluster/uiplugins/PluginInfoPanel.vue +2 -1
- package/pages/c/_cluster/uiplugins/__tests__/index.test.ts +231 -13
- package/pages/c/_cluster/uiplugins/index.vue +145 -38
- package/plugins/dashboard-store/__tests__/resource-class.test.ts +1 -0
- package/plugins/dashboard-store/actions.js +3 -2
- package/plugins/dashboard-store/resource-class.js +62 -6
- package/plugins/plugin.js +16 -0
- package/plugins/steve/steve-pagination-utils.ts +8 -2
- package/plugins/steve/subscribe.js +29 -4
- package/rancher-components/RcButton/RcButton.vue +3 -3
- package/rancher-components/RcButtonSplit/RcButtonSplit.test.ts +253 -0
- package/rancher-components/RcButtonSplit/RcButtonSplit.vue +158 -0
- package/rancher-components/RcButtonSplit/index.ts +1 -0
- package/scripts/test-plugins-build.sh +4 -4
- package/scripts/typegen.sh +13 -1
- package/store/__tests__/type-map.test.ts +84 -24
- package/store/type-map.js +42 -3
- package/tsconfig.paths.json +1 -0
- package/types/resources/pod.ts +18 -0
- package/types/shell/index.d.ts +8506 -2908
- package/types/store/dashboard-store.types.ts +5 -0
- package/types/store/pagination.types.ts +6 -0
- package/utils/__tests__/require-asset.test.ts +98 -0
- package/utils/async.ts +1 -5
- package/utils/axios.js +1 -4
- package/utils/brand.ts +3 -1
- package/utils/dynamic-importer.js +3 -2
- package/utils/favicon.js +4 -3
- package/utils/pagination-utils.ts +1 -1
- package/utils/require-asset.ts +95 -0
- package/utils/uiplugins.ts +12 -16
- package/utils/validators/__tests__/private-registry.test.ts +76 -0
- package/utils/validators/private-registry.ts +28 -0
- package/vue.config.js +4 -3
- package/components/HarvesterServiceAddOnConfig.vue +0 -207
|
@@ -3,6 +3,11 @@ import { isEmpty } from '@shell/utils/object';
|
|
|
3
3
|
import { MONITORING } from '@shell/config/types';
|
|
4
4
|
import jsyaml from 'js-yaml';
|
|
5
5
|
import SteveModel from '@shell/plugins/steve/steve-class';
|
|
6
|
+
import slackLogo from '~shell/assets/images/vendor/slack.svg';
|
|
7
|
+
import emailLogo from '~shell/assets/images/vendor/email.svg';
|
|
8
|
+
import pagerdutyLogo from '~shell/assets/images/vendor/pagerduty.svg';
|
|
9
|
+
import webhookLogo from '~shell/assets/images/vendor/webhook.svg';
|
|
10
|
+
import customLogo from '~shell/assets/images/vendor/custom.svg';
|
|
6
11
|
|
|
7
12
|
// i18n-uses monitoringReceiver.slack.*, monitoringReceiver.email.*, monitoringReceiver.pagerduty.*
|
|
8
13
|
// i18n-uses monitoringReceiver.opsgenie.*, monitoringReceiver.webhook.*, monitoringReceiver.custom.*
|
|
@@ -13,14 +18,14 @@ export const RECEIVERS_TYPES = [
|
|
|
13
18
|
title: 'monitoringReceiver.slack.title',
|
|
14
19
|
info: 'monitoringReceiver.slack.info',
|
|
15
20
|
key: 'slack_configs',
|
|
16
|
-
logo:
|
|
21
|
+
logo: slackLogo
|
|
17
22
|
},
|
|
18
23
|
{
|
|
19
24
|
name: 'email',
|
|
20
25
|
label: 'monitoringReceiver.email.label',
|
|
21
26
|
title: 'monitoringReceiver.email.title',
|
|
22
27
|
key: 'email_configs',
|
|
23
|
-
logo:
|
|
28
|
+
logo: emailLogo
|
|
24
29
|
},
|
|
25
30
|
{
|
|
26
31
|
name: 'pagerduty',
|
|
@@ -28,21 +33,21 @@ export const RECEIVERS_TYPES = [
|
|
|
28
33
|
title: 'monitoringReceiver.pagerduty.title',
|
|
29
34
|
info: 'monitoringReceiver.pagerduty.info',
|
|
30
35
|
key: 'pagerduty_configs',
|
|
31
|
-
logo:
|
|
36
|
+
logo: pagerdutyLogo
|
|
32
37
|
},
|
|
33
38
|
{
|
|
34
39
|
name: 'opsgenie',
|
|
35
40
|
label: 'monitoringReceiver.opsgenie.label',
|
|
36
41
|
title: 'monitoringReceiver.opsgenie.title',
|
|
37
42
|
key: 'opsgenie_configs',
|
|
38
|
-
logo:
|
|
43
|
+
logo: emailLogo
|
|
39
44
|
},
|
|
40
45
|
{
|
|
41
46
|
name: 'webhook',
|
|
42
47
|
label: 'monitoringReceiver.webhook.label',
|
|
43
48
|
title: 'monitoringReceiver.webhook.title',
|
|
44
49
|
key: 'webhook_configs',
|
|
45
|
-
logo:
|
|
50
|
+
logo: webhookLogo,
|
|
46
51
|
banner: 'webhook.banner',
|
|
47
52
|
addButton: 'webhook.add'
|
|
48
53
|
},
|
|
@@ -52,7 +57,7 @@ export const RECEIVERS_TYPES = [
|
|
|
52
57
|
title: 'monitoringReceiver.custom.title',
|
|
53
58
|
info: 'monitoringReceiver.custom.info',
|
|
54
59
|
key: 'webhook_configs',
|
|
55
|
-
logo:
|
|
60
|
+
logo: customLogo
|
|
56
61
|
},
|
|
57
62
|
];
|
|
58
63
|
|
package/models/pod.js
CHANGED
|
@@ -4,6 +4,7 @@ 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
6
|
import { deleteProperty } from '@shell/utils/object';
|
|
7
|
+
import { POD_RESTARTS_REG_EX } from '@shell/types/resources/pod';
|
|
7
8
|
|
|
8
9
|
export const WORKLOAD_PRIORITY = {
|
|
9
10
|
[WORKLOAD_TYPES.DEPLOYMENT]: 1,
|
|
@@ -222,6 +223,9 @@ export default class Pod extends WorkloadService {
|
|
|
222
223
|
return this.$rootGetters['i18n/t']('resourceTable.groupLabel.node', { name: escapeHtml(name) });
|
|
223
224
|
}
|
|
224
225
|
|
|
226
|
+
/**
|
|
227
|
+
* How many times has the first container restarted
|
|
228
|
+
*/
|
|
225
229
|
get restartCount() {
|
|
226
230
|
if (this.status.containerStatuses) {
|
|
227
231
|
return this.status?.containerStatuses[0].restartCount || 0;
|
|
@@ -230,6 +234,20 @@ export default class Pod extends WorkloadService {
|
|
|
230
234
|
return 0;
|
|
231
235
|
}
|
|
232
236
|
|
|
237
|
+
/**
|
|
238
|
+
* How many times does native kube report this pod has restarted
|
|
239
|
+
*/
|
|
240
|
+
get restartsCount() {
|
|
241
|
+
return this.metadata?.fields?.[3]?.match(POD_RESTARTS_REG_EX)?.[1] || '';
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* When does native kube think the last pod restart happen?
|
|
246
|
+
*/
|
|
247
|
+
get restartsLaster() {
|
|
248
|
+
return this.metadata?.fields?.[3]?.match(POD_RESTARTS_REG_EX)?.[2] || '';
|
|
249
|
+
}
|
|
250
|
+
|
|
233
251
|
processSaveResponse(res) {
|
|
234
252
|
if (res._headers && res._headers.warning) {
|
|
235
253
|
const warnings = res._headers.warning.split('299') || [];
|
|
@@ -127,9 +127,9 @@ export default class ProvCluster extends SteveModel {
|
|
|
127
127
|
}
|
|
128
128
|
const ready = this.mgmt?.isReady;
|
|
129
129
|
|
|
130
|
-
const canEditRKE2cluster = this.isRke2 && ready && this.canUpdate
|
|
130
|
+
const canEditRKE2cluster = this.isRke2 && ready && this.canUpdate;
|
|
131
131
|
|
|
132
|
-
const canSnapshot = ready && this.isRke2 && this.canUpdate
|
|
132
|
+
const canSnapshot = ready && this.isRke2 && this.canUpdate;
|
|
133
133
|
|
|
134
134
|
const actions = [
|
|
135
135
|
// Note: Actions are not supported in the Steve API, so we check
|
package/models/workload.js
CHANGED
|
@@ -9,6 +9,7 @@ import WorkloadService from '@shell/models/workload.service';
|
|
|
9
9
|
import { matching } from '@shell/utils/selector-typed';
|
|
10
10
|
import { defineAsyncComponent, markRaw } from 'vue';
|
|
11
11
|
import { useResourceCardRow } from '@shell/components/Resource/Detail/Card/StateCard/composables';
|
|
12
|
+
import { colorForState as colorForStateFn, stateDisplay as stateDisplayFn } from '@shell/plugins/dashboard-store/resource-class';
|
|
12
13
|
|
|
13
14
|
export const defaultContainer = {
|
|
14
15
|
imagePullPolicy: 'Always',
|
|
@@ -622,12 +623,29 @@ export default class Workload extends WorkloadService {
|
|
|
622
623
|
|
|
623
624
|
calcPodGauges(pods) {
|
|
624
625
|
const out = { };
|
|
626
|
+
let refPods = pods;
|
|
625
627
|
|
|
626
|
-
if (
|
|
628
|
+
if (this.metadata.associatedData) {
|
|
629
|
+
refPods = [];
|
|
630
|
+
this.metadata.associatedData.forEach((w) => {
|
|
631
|
+
if (w.gvk.kind.toLowerCase() !== POD) {
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
return w.data.forEach((p) => {
|
|
636
|
+
refPods.push({
|
|
637
|
+
stateColor: colorForStateFn(p.state.name, p.state.error === 'true', p.state.transitioning === 'true'),
|
|
638
|
+
stateDisplay: stateDisplayFn(p.state.name),
|
|
639
|
+
});
|
|
640
|
+
});
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
if (!refPods) {
|
|
627
645
|
return out;
|
|
628
646
|
}
|
|
629
647
|
|
|
630
|
-
|
|
648
|
+
refPods.map((pod) => {
|
|
631
649
|
const { stateColor, stateDisplay } = pod;
|
|
632
650
|
|
|
633
651
|
if (out[stateDisplay]) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rancher/shell",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.12-rc.1",
|
|
4
4
|
"description": "Rancher Dashboard Shell",
|
|
5
5
|
"repository": "https://github.com/rancher/dashboard",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"add": "2.0.6",
|
|
54
54
|
"ansi_up": "5.0.0",
|
|
55
55
|
"axios-retry": "3.1.9",
|
|
56
|
-
"axios": "1.13.
|
|
56
|
+
"axios": "1.13.5",
|
|
57
57
|
"babel-eslint": "10.1.0",
|
|
58
58
|
"babel-plugin-module-resolver": "5.0.2",
|
|
59
59
|
"babel-preset-vue": "2.0.2",
|
|
@@ -76,7 +76,6 @@
|
|
|
76
76
|
"d3-selection": "3.0.0",
|
|
77
77
|
"d3": "7.3.0",
|
|
78
78
|
"dayjs": "1.11.18",
|
|
79
|
-
"defu": "6.1.4",
|
|
80
79
|
"diff2html": "3.4.24",
|
|
81
80
|
"dompurify": "3.2.5",
|
|
82
81
|
"element-matches": "^0.1.2",
|
|
@@ -109,9 +108,9 @@
|
|
|
109
108
|
"js-yaml": "4.1.1",
|
|
110
109
|
"jsdiff": "1.1.1",
|
|
111
110
|
"jsonpath-plus": "10.3.0",
|
|
112
|
-
"jsrsasign": "11.
|
|
111
|
+
"jsrsasign": "11.1.1",
|
|
113
112
|
"jszip": "3.10.1",
|
|
114
|
-
"lodash": "4.
|
|
113
|
+
"lodash": "4.18.1",
|
|
115
114
|
"marked": "4.0.17",
|
|
116
115
|
"node-polyfill-webpack-plugin": "3.0.0",
|
|
117
116
|
"nodemon": "2.0.22",
|
|
@@ -148,7 +147,7 @@
|
|
|
148
147
|
"xterm-addon-web-links": "0.9.0",
|
|
149
148
|
"xterm-addon-webgl": "0.16.0",
|
|
150
149
|
"xterm": "5.2.1",
|
|
151
|
-
"yarn": "1.22.
|
|
150
|
+
"yarn": "1.22.22"
|
|
152
151
|
},
|
|
153
152
|
"resolutions": {
|
|
154
153
|
"d3-color": "3.1.0",
|
|
@@ -624,7 +624,6 @@ export default {
|
|
|
624
624
|
<RichTranslation
|
|
625
625
|
k="catalog.charts.appCollectionRepoMissing"
|
|
626
626
|
tag="div"
|
|
627
|
-
:raw="true"
|
|
628
627
|
>
|
|
629
628
|
<template #repoCreate="{ content }">
|
|
630
629
|
<router-link
|
|
@@ -661,10 +660,7 @@ export default {
|
|
|
661
660
|
{{ t('catalog.charts.noCharts.title') }}
|
|
662
661
|
</h1>
|
|
663
662
|
<div class="empty-state-tips">
|
|
664
|
-
<RichTranslation
|
|
665
|
-
k="catalog.charts.noCharts.message"
|
|
666
|
-
:raw="true"
|
|
667
|
-
>
|
|
663
|
+
<RichTranslation k="catalog.charts.noCharts.message">
|
|
668
664
|
<template #resetAllFilters="{ content }">
|
|
669
665
|
<a
|
|
670
666
|
tabindex="0"
|
|
@@ -684,8 +680,7 @@ export default {
|
|
|
684
680
|
</RichTranslation>
|
|
685
681
|
<RichTranslation
|
|
686
682
|
k="catalog.charts.noCharts.docsMessage"
|
|
687
|
-
tag="
|
|
688
|
-
:raw="true"
|
|
683
|
+
tag="span"
|
|
689
684
|
>
|
|
690
685
|
<template #docsUrl="{ content }">
|
|
691
686
|
<a
|
|
@@ -891,7 +886,7 @@ export default {
|
|
|
891
886
|
|
|
892
887
|
.charts-empty-state {
|
|
893
888
|
width: 100%;
|
|
894
|
-
padding: 72px
|
|
889
|
+
padding: 72px 72px;
|
|
895
890
|
text-align: center;
|
|
896
891
|
|
|
897
892
|
.empty-state-title {
|
|
@@ -379,7 +379,7 @@ export default {
|
|
|
379
379
|
/* Look for annotation to say this app is a legacy migrated app (we look in either place for now) */
|
|
380
380
|
this.migratedApp = (this.existing?.spec?.chart?.metadata?.annotations?.[CATALOG_ANNOTATIONS.MIGRATED] === 'true');
|
|
381
381
|
|
|
382
|
-
if (this.repo
|
|
382
|
+
if (this.repo?.isSuseAppCollection) {
|
|
383
383
|
let defaultSelectedSecret = await this.$store.getters['cluster/byId'](SECRET, `cattle-system/${ this.repo.spec.clientSecret.name }`);
|
|
384
384
|
|
|
385
385
|
if (!defaultSelectedSecret) {
|
|
@@ -823,7 +823,7 @@ export default {
|
|
|
823
823
|
}
|
|
824
824
|
}
|
|
825
825
|
|
|
826
|
-
if (this.repo
|
|
826
|
+
if (this.repo?.isSuseAppCollection) {
|
|
827
827
|
await this.initializeDataForNamespaceChanges();
|
|
828
828
|
}
|
|
829
829
|
},
|
|
@@ -938,7 +938,7 @@ export default {
|
|
|
938
938
|
|
|
939
939
|
async initializeDataForNamespaceChanges() {
|
|
940
940
|
// Skip the flow if the data still not fetched, it will trigger after fetching manually
|
|
941
|
-
if (
|
|
941
|
+
if (this.appCoDataFetched) {
|
|
942
942
|
try {
|
|
943
943
|
this.defaultImagePullSecret = await this.$store.dispatch('cluster/find', { type: SECRET, id: `${ this.targetNamespace }/${ this.repo.spec.clientSecret.name }-image-pull-secret` });
|
|
944
944
|
} catch (e) {
|
|
@@ -1028,7 +1028,7 @@ export default {
|
|
|
1028
1028
|
},
|
|
1029
1029
|
|
|
1030
1030
|
async setImagePullSecretData() {
|
|
1031
|
-
if (this.selectedSecret && this.repo
|
|
1031
|
+
if (this.selectedSecret && this.repo?.isSuseAppCollection && this.dontUseDefaultOption !== null) {
|
|
1032
1032
|
if (!this.dontUseDefaultOption && this.defaultImagePullSecret) {
|
|
1033
1033
|
// If the default option is used and the default secret already exists, use it
|
|
1034
1034
|
this.selectedImagePullSecret = this.defaultImagePullSecret.name;
|
|
@@ -1159,7 +1159,7 @@ export default {
|
|
|
1159
1159
|
|
|
1160
1160
|
// Create namespace if it doesn't exist (before hooks run)
|
|
1161
1161
|
// And only if it is SUSE APP Collection, overall should just do the same flow
|
|
1162
|
-
if (!isUpgrade && this.isNamespaceNew && this.repo
|
|
1162
|
+
if (!isUpgrade && this.isNamespaceNew && this.repo?.isSuseAppCollection) {
|
|
1163
1163
|
await this.createNamespaceIfNeeded();
|
|
1164
1164
|
}
|
|
1165
1165
|
|
|
@@ -1355,7 +1355,7 @@ export default {
|
|
|
1355
1355
|
...migratedAnnotations,
|
|
1356
1356
|
[CATALOG_ANNOTATIONS.SOURCE_REPO_TYPE]: this.chart.repoType,
|
|
1357
1357
|
[CATALOG_ANNOTATIONS.SOURCE_REPO_NAME]: this.chart.repoName,
|
|
1358
|
-
...(this.repo
|
|
1358
|
+
...(this.repo?.isSuseAppCollection ? { [CATALOG_ANNOTATIONS.SUSE_APP_COLLECTION]: 'true' } : {}),
|
|
1359
1359
|
},
|
|
1360
1360
|
values,
|
|
1361
1361
|
};
|
|
@@ -1497,7 +1497,7 @@ export default {
|
|
|
1497
1497
|
},
|
|
1498
1498
|
|
|
1499
1499
|
async createImagePullSecret() {
|
|
1500
|
-
if (!this.repo
|
|
1500
|
+
if (!this.repo?.isSuseAppCollection) {
|
|
1501
1501
|
return;
|
|
1502
1502
|
}
|
|
1503
1503
|
|
|
@@ -1655,7 +1655,6 @@ export default {
|
|
|
1655
1655
|
</div>
|
|
1656
1656
|
</div>
|
|
1657
1657
|
<NameNsDescription
|
|
1658
|
-
v-if="showNameEditor"
|
|
1659
1658
|
v-model:value="value"
|
|
1660
1659
|
:description-hidden="true"
|
|
1661
1660
|
:mode="mode"
|
|
@@ -1686,7 +1685,7 @@ export default {
|
|
|
1686
1685
|
</template>
|
|
1687
1686
|
</NameNsDescription>
|
|
1688
1687
|
<div
|
|
1689
|
-
v-if="repo
|
|
1688
|
+
v-if="repo?.isSuseAppCollection"
|
|
1690
1689
|
class="mb-20"
|
|
1691
1690
|
>
|
|
1692
1691
|
<Banner
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import { mapGetters } from 'vuex';
|
|
3
3
|
import { SERVICE } from '@shell/config/types';
|
|
4
4
|
import Loading from '@shell/components/Loading';
|
|
5
|
+
import kialiSvg from '~shell/assets/images/vendor/kiali.svg';
|
|
6
|
+
import jaegerSvg from '~shell/assets/images/vendor/jaeger.svg';
|
|
5
7
|
export default {
|
|
6
8
|
components: { Loading },
|
|
7
9
|
|
|
@@ -23,7 +25,7 @@ export default {
|
|
|
23
25
|
|
|
24
26
|
kialiLogo() {
|
|
25
27
|
// @TODO move to theme css
|
|
26
|
-
return
|
|
28
|
+
return kialiSvg;
|
|
27
29
|
},
|
|
28
30
|
|
|
29
31
|
kialiUrl() {
|
|
@@ -31,7 +33,7 @@ export default {
|
|
|
31
33
|
},
|
|
32
34
|
|
|
33
35
|
jaegerLogo() {
|
|
34
|
-
return
|
|
36
|
+
return jaegerSvg;
|
|
35
37
|
},
|
|
36
38
|
|
|
37
39
|
jaegerUrl() {
|
|
@@ -3,6 +3,7 @@ import { mapGetters } from 'vuex';
|
|
|
3
3
|
import { SERVICE } from '@shell/config/types';
|
|
4
4
|
import IconMessage from '@shell/components/IconMessage';
|
|
5
5
|
import LazyImage from '@shell/components/LazyImage';
|
|
6
|
+
import longhornSvg from '~shell/assets/images/vendor/longhorn.svg';
|
|
6
7
|
import Loading from '@shell/components/Loading';
|
|
7
8
|
|
|
8
9
|
export default {
|
|
@@ -24,7 +25,7 @@ export default {
|
|
|
24
25
|
|
|
25
26
|
data() {
|
|
26
27
|
return {
|
|
27
|
-
longhornImgSrc:
|
|
28
|
+
longhornImgSrc: longhornSvg,
|
|
28
29
|
uiServices: null
|
|
29
30
|
};
|
|
30
31
|
},
|
|
@@ -9,6 +9,8 @@ import LazyImage from '@shell/components/LazyImage';
|
|
|
9
9
|
import SimpleBox from '@shell/components/SimpleBox';
|
|
10
10
|
import { canViewAlertManagerLink, canViewGrafanaLink, canViewPrometheusLink } from '@shell/utils/monitoring';
|
|
11
11
|
import Loading from '@shell/components/Loading';
|
|
12
|
+
import grafanaSrc from '~shell/assets/images/vendor/grafana.svg';
|
|
13
|
+
import prometheusSrc from '~shell/assets/images/vendor/prometheus.svg';
|
|
12
14
|
|
|
13
15
|
export default {
|
|
14
16
|
components: {
|
|
@@ -23,8 +25,6 @@ export default {
|
|
|
23
25
|
},
|
|
24
26
|
|
|
25
27
|
data() {
|
|
26
|
-
const grafanaSrc = require('~shell/assets/images/vendor/grafana.svg');
|
|
27
|
-
const prometheusSrc = require('~shell/assets/images/vendor/prometheus.svg');
|
|
28
28
|
const currentCluster = this.$store.getters['currentCluster'];
|
|
29
29
|
|
|
30
30
|
return {
|
|
@@ -4,6 +4,7 @@ import { NEU_VECTOR_NAMESPACE } from '@shell/config/product/neuvector';
|
|
|
4
4
|
|
|
5
5
|
import LazyImage from '@shell/components/LazyImage';
|
|
6
6
|
import Loading from '@shell/components/Loading';
|
|
7
|
+
import neuvectorSvg from '~shell/assets/images/vendor/neuvector.svg';
|
|
7
8
|
|
|
8
9
|
export default {
|
|
9
10
|
components: { LazyImage, Loading },
|
|
@@ -11,7 +12,7 @@ export default {
|
|
|
11
12
|
data() {
|
|
12
13
|
return {
|
|
13
14
|
externalLinks: [],
|
|
14
|
-
neuvectorImgSrc:
|
|
15
|
+
neuvectorImgSrc: neuvectorSvg,
|
|
15
16
|
};
|
|
16
17
|
},
|
|
17
18
|
|
|
@@ -440,14 +440,14 @@ export default {
|
|
|
440
440
|
/>
|
|
441
441
|
</div>
|
|
442
442
|
<SimpleBox
|
|
443
|
-
v-if="uiLoginBackgroundLight
|
|
443
|
+
v-if="uiLoginBackgroundLight"
|
|
444
444
|
class="theme-light mb-10"
|
|
445
445
|
>
|
|
446
446
|
<label class="text-muted">{{ t('branding.loginBackground.lightPreview') }}</label>
|
|
447
447
|
<img
|
|
448
448
|
class="img-preview"
|
|
449
449
|
data-testid="branding-login-background-light-preview"
|
|
450
|
-
:src="uiLoginBackgroundLight
|
|
450
|
+
:src="uiLoginBackgroundLight"
|
|
451
451
|
>
|
|
452
452
|
</SimpleBox>
|
|
453
453
|
</div>
|
|
@@ -465,14 +465,14 @@ export default {
|
|
|
465
465
|
/>
|
|
466
466
|
</div>
|
|
467
467
|
<SimpleBox
|
|
468
|
-
v-if="uiLoginBackgroundDark
|
|
468
|
+
v-if="uiLoginBackgroundDark"
|
|
469
469
|
class="theme-dark mb-10"
|
|
470
470
|
>
|
|
471
471
|
<label class="text-muted">{{ t('branding.loginBackground.darkPreview') }}</label>
|
|
472
472
|
<img
|
|
473
473
|
class="img-preview"
|
|
474
474
|
data-testid="branding-login-background-dark-preview"
|
|
475
|
-
:src="uiLoginBackgroundDark
|
|
475
|
+
:src="uiLoginBackgroundDark"
|
|
476
476
|
>
|
|
477
477
|
</SimpleBox>
|
|
478
478
|
</div>
|
|
@@ -237,11 +237,6 @@ export default {
|
|
|
237
237
|
{{ t('performance.serverPagination.label') }}
|
|
238
238
|
</h2>
|
|
239
239
|
<p>{{ t('performance.serverPagination.description') }}</p>
|
|
240
|
-
<Banner
|
|
241
|
-
color="warning"
|
|
242
|
-
>
|
|
243
|
-
<div v-clean-html="t(`performance.serverPagination.featureFlag`, { ffUrl }, true)" />
|
|
244
|
-
</Banner>
|
|
245
240
|
<Collapse
|
|
246
241
|
:title="t('performance.serverPagination.applicable')"
|
|
247
242
|
:open="steveCacheEnabled && ssPApplicableTypesOpen"
|
|
@@ -3,6 +3,7 @@ import { mapGetters } from 'vuex';
|
|
|
3
3
|
import ChartReadme from '@shell/components/ChartReadme';
|
|
4
4
|
import LazyImage from '@shell/components/LazyImage';
|
|
5
5
|
import { MANAGEMENT } from '@shell/config/types';
|
|
6
|
+
import genericPluginSvg from '~shell/assets/images/generic-plugin.svg';
|
|
6
7
|
import { SETTING } from '@shell/config/settings';
|
|
7
8
|
import { useWatcherBasedSetupFocusTrapWithDestroyIncluded } from '@shell/composables/focusTrap';
|
|
8
9
|
import { getPluginChartVersionLabel, getPluginChartVersion } from '@shell/utils/uiplugins';
|
|
@@ -36,7 +37,7 @@ export default {
|
|
|
36
37
|
infoVersion: undefined,
|
|
37
38
|
versionInfo: undefined,
|
|
38
39
|
versionError: undefined,
|
|
39
|
-
defaultIcon:
|
|
40
|
+
defaultIcon: genericPluginSvg,
|
|
40
41
|
headerBannerSize: 0,
|
|
41
42
|
isActive: false
|
|
42
43
|
};
|