@rancher/shell 3.0.0-rc.6 → 3.0.0-rc.7
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/chart/monitoring/alerting/index.vue +4 -20
- package/chart/monitoring/grafana/index.vue +3 -3
- package/chart/monitoring/prometheus/index.vue +7 -14
- package/components/ResourceDetail/index.vue +5 -1
- package/components/form/PodAffinity.vue +1 -1
- package/components/nav/Header.vue +9 -5
- package/core/types.ts +1 -1
- package/edit/auth/googleoauth.vue +2 -2
- package/edit/auth/ldap/config.vue +2 -2
- package/edit/auth/oidc.vue +2 -2
- package/edit/autoscaling.horizontalpodautoscaler/metrics-row.vue +4 -5
- package/edit/monitoring.coreos.com.alertmanagerconfig/auth.vue +1 -5
- package/edit/monitoring.coreos.com.alertmanagerconfig/types/slack.vue +1 -5
- package/edit/monitoring.coreos.com.receiver/types/slack.vue +1 -5
- package/edit/service.vue +6 -15
- package/mixins/create-edit-view/impl.js +2 -0
- package/mixins/labeled-form-element.ts +2 -0
- package/mixins/vue-select-overrides.js +1 -0
- package/package.json +1 -1
- package/types/shell/index.d.ts +5 -2
- package/utils/v-sphere.ts +17 -3
- package/vue.config.js +2 -0
|
@@ -81,27 +81,15 @@ export default {
|
|
|
81
81
|
watch: {
|
|
82
82
|
filteredSecrets(newValue) {
|
|
83
83
|
if (isEmpty(newValue)) {
|
|
84
|
-
this
|
|
85
|
-
this.value.alertmanager.alertmanagerSpec,
|
|
86
|
-
'useExistingSecret',
|
|
87
|
-
false
|
|
88
|
-
);
|
|
84
|
+
this.value.alertmanager.alertmanagerSpec.useExistingSecret = false;
|
|
89
85
|
}
|
|
90
86
|
|
|
91
87
|
const { existingSecret } = this;
|
|
92
88
|
|
|
93
89
|
if (existingSecret) {
|
|
94
90
|
this.$nextTick(() => {
|
|
95
|
-
this
|
|
96
|
-
|
|
97
|
-
'useExistingSecret',
|
|
98
|
-
true
|
|
99
|
-
);
|
|
100
|
-
this.$set(
|
|
101
|
-
this.value.alertmanager.alertmanagerSpec,
|
|
102
|
-
'configSecret',
|
|
103
|
-
existingSecret.metadata.name
|
|
104
|
-
);
|
|
91
|
+
this.value.alertmanager.alertmanagerSpec.useExistingSecret = true;
|
|
92
|
+
this.value.alertmanager.alertmanagerSpec.configSecret = existingSecret.metadata.name;
|
|
105
93
|
});
|
|
106
94
|
}
|
|
107
95
|
},
|
|
@@ -110,11 +98,7 @@ export default {
|
|
|
110
98
|
|
|
111
99
|
if (useExistingSecret) {
|
|
112
100
|
if (existingSecret?.metadata?.name) {
|
|
113
|
-
this
|
|
114
|
-
this.value.alertmanager.alertmanagerSpec,
|
|
115
|
-
'configSecret',
|
|
116
|
-
existingSecret.metadata.name
|
|
117
|
-
);
|
|
101
|
+
this.value.alertmanager.alertmanagerSpec.configSecret = existingSecret.metadata.name;
|
|
118
102
|
}
|
|
119
103
|
} else {
|
|
120
104
|
this.value.alertmanager.alertmanagerSpec['configSecret'] = '';
|
|
@@ -249,7 +249,7 @@ export default {
|
|
|
249
249
|
:mode="mode"
|
|
250
250
|
:options="pvcs"
|
|
251
251
|
:label="t('monitoring.grafana.storage.existingClaim')"
|
|
252
|
-
@updateName="(name) =>
|
|
252
|
+
@updateName="(name) => value.grafana.persistence.existingClaim = name"
|
|
253
253
|
/>
|
|
254
254
|
</div>
|
|
255
255
|
</div>
|
|
@@ -271,7 +271,7 @@ export default {
|
|
|
271
271
|
:mode="mode"
|
|
272
272
|
:options="storageClasses"
|
|
273
273
|
:label="t('monitoring.prometheus.storage.className')"
|
|
274
|
-
@updateName="(name) =>
|
|
274
|
+
@updateName="(name) => value.grafana.persistence.storageClassName = name"
|
|
275
275
|
/>
|
|
276
276
|
</div>
|
|
277
277
|
</div>
|
|
@@ -338,7 +338,7 @@ export default {
|
|
|
338
338
|
:mode="mode"
|
|
339
339
|
:options="storageClasses"
|
|
340
340
|
:label="t('monitoring.prometheus.storage.className')"
|
|
341
|
-
@updateName="(name) =>
|
|
341
|
+
@updateName="(name) => value.grafana.persistence.storageClassName = name"
|
|
342
342
|
/>
|
|
343
343
|
</div>
|
|
344
344
|
</div>
|
|
@@ -123,21 +123,14 @@ export default {
|
|
|
123
123
|
watch: {
|
|
124
124
|
enablePersistentStorage(enabled) {
|
|
125
125
|
if (!!enabled) {
|
|
126
|
-
this
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
spec: {
|
|
131
|
-
accessModes: ['ReadWriteOnce'],
|
|
132
|
-
resources: { requests: { storage: '50Gi' } },
|
|
133
|
-
}
|
|
126
|
+
this.value.prometheus.prometheusSpec.storageSpec.volumeClaimTemplate = {
|
|
127
|
+
spec: {
|
|
128
|
+
accessModes: ['ReadWriteOnce'],
|
|
129
|
+
resources: { requests: { storage: '50Gi' } },
|
|
134
130
|
}
|
|
135
|
-
|
|
131
|
+
};
|
|
136
132
|
} else {
|
|
137
|
-
this
|
|
138
|
-
this.value.prometheus.prometheusSpec.storageSpec,
|
|
139
|
-
'volumeClaimTemplate'
|
|
140
|
-
);
|
|
133
|
+
delete this.value.prometheus.prometheusSpec.storageSpec['volumeClaimTemplate'];
|
|
141
134
|
}
|
|
142
135
|
},
|
|
143
136
|
},
|
|
@@ -328,7 +321,7 @@ export default {
|
|
|
328
321
|
:options="storageClasses"
|
|
329
322
|
:value="value.prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.storageClassName"
|
|
330
323
|
:label="t('monitoring.prometheus.storage.className')"
|
|
331
|
-
@updateName="(name) =>
|
|
324
|
+
@updateName="(name) => value.prometheus.prometheusSpec.storageSpec.volumeClaimTemplate.spec.storageClassName = name"
|
|
332
325
|
/>
|
|
333
326
|
</div>
|
|
334
327
|
</div>
|
|
@@ -332,7 +332,11 @@ export default {
|
|
|
332
332
|
|
|
333
333
|
const queryDiff = Object.keys(diff(neu, old));
|
|
334
334
|
|
|
335
|
-
if (
|
|
335
|
+
if (Object.keys(neu).length <= 0) {
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
if (queryDiff.includes(MODE) || queryDiff.includes(AS)) {
|
|
336
340
|
this.$fetch();
|
|
337
341
|
}
|
|
338
342
|
},
|
|
@@ -379,7 +379,7 @@ export default {
|
|
|
379
379
|
:value="props.row.value._anti ?t('workload.scheduling.affinity.antiAffinityOption') :t('workload.scheduling.affinity.affinityOption') "
|
|
380
380
|
:label="t('workload.scheduling.affinity.type')"
|
|
381
381
|
:data-testid="`pod-affinity-type-index${props.i}`"
|
|
382
|
-
@update:value="
|
|
382
|
+
@update:value="props.row.value._anti = !props.row.value._anti"
|
|
383
383
|
/>
|
|
384
384
|
</div>
|
|
385
385
|
<div class="col span-6">
|
|
@@ -231,12 +231,16 @@ export default {
|
|
|
231
231
|
}
|
|
232
232
|
},
|
|
233
233
|
// since the Header is a "persistent component" we need to update it at every route change...
|
|
234
|
-
$route
|
|
235
|
-
|
|
236
|
-
|
|
234
|
+
$route: {
|
|
235
|
+
handler(nue) {
|
|
236
|
+
if (nue) {
|
|
237
|
+
this.extensionHeaderActions = getApplicableExtensionEnhancements(this, ExtensionPoint.ACTION, ActionLocation.HEADER, nue);
|
|
237
238
|
|
|
238
|
-
|
|
239
|
-
|
|
239
|
+
this.navHeaderRight = this.$plugin?.getDynamic('component', 'NavHeaderRight');
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
immediate: true,
|
|
243
|
+
deep: true,
|
|
240
244
|
}
|
|
241
245
|
},
|
|
242
246
|
|
package/core/types.ts
CHANGED
|
@@ -26,7 +26,7 @@ export type CoreStoreInit = (store: any, ctx: any) => void;
|
|
|
26
26
|
export type RegisterStore = () => (store: any) => void
|
|
27
27
|
export type UnregisterStore = (store: any) => void
|
|
28
28
|
|
|
29
|
-
export type PluginRouteRecordRaw = {
|
|
29
|
+
export type PluginRouteRecordRaw = { [key: string]: any }
|
|
30
30
|
|
|
31
31
|
export type OnEnterLeavePackageConfig = {
|
|
32
32
|
clusterId: string,
|
|
@@ -196,7 +196,7 @@ export default {
|
|
|
196
196
|
class="role-tertiary add mt-5"
|
|
197
197
|
:label="t('generic.readFromFile')"
|
|
198
198
|
:mode="mode"
|
|
199
|
-
@selected="
|
|
199
|
+
@selected="model.oauthCredential = $event"
|
|
200
200
|
/>
|
|
201
201
|
</div>
|
|
202
202
|
</div>
|
|
@@ -231,7 +231,7 @@ export default {
|
|
|
231
231
|
class="role-tertiary add mt-5"
|
|
232
232
|
:label="t('generic.readFromFile')"
|
|
233
233
|
:mode="mode"
|
|
234
|
-
@selected="
|
|
234
|
+
@selected="model.serviceAccountCredential = $event"
|
|
235
235
|
/>
|
|
236
236
|
</div>
|
|
237
237
|
</div>
|
|
@@ -120,7 +120,7 @@ export default {
|
|
|
120
120
|
:step="1"
|
|
121
121
|
:mode="mode"
|
|
122
122
|
:label="t('authConfig.ldap.port')"
|
|
123
|
-
@update:value="e
|
|
123
|
+
@update:value="e=> model.port = e.replace(/[^0-9]*/g, '')"
|
|
124
124
|
/>
|
|
125
125
|
</div>
|
|
126
126
|
|
|
@@ -158,7 +158,7 @@ export default {
|
|
|
158
158
|
class="role-tertiary add mt-5"
|
|
159
159
|
:label="t('generic.readFromFile')"
|
|
160
160
|
:mode="mode"
|
|
161
|
-
@selected="
|
|
161
|
+
@selected="model.certificate = $event"
|
|
162
162
|
/>
|
|
163
163
|
</div>
|
|
164
164
|
</div>
|
package/edit/auth/oidc.vue
CHANGED
|
@@ -233,7 +233,7 @@ export default {
|
|
|
233
233
|
class="role-tertiary add mt-5"
|
|
234
234
|
:label="t('generic.readFromFile')"
|
|
235
235
|
:mode="mode"
|
|
236
|
-
@selected="
|
|
236
|
+
@selected="model.privateKey = $event"
|
|
237
237
|
/>
|
|
238
238
|
</div>
|
|
239
239
|
<div class="col span-6">
|
|
@@ -248,7 +248,7 @@ export default {
|
|
|
248
248
|
class="role-tertiary add mt-5"
|
|
249
249
|
:label="t('generic.readFromFile')"
|
|
250
250
|
:mode="mode"
|
|
251
|
-
@selected="
|
|
251
|
+
@selected="model.certificate = $event"
|
|
252
252
|
/>
|
|
253
253
|
</div>
|
|
254
254
|
</div>
|
|
@@ -84,29 +84,28 @@ export default {
|
|
|
84
84
|
|
|
85
85
|
watch: {
|
|
86
86
|
'value.type'(neuType, oldType) {
|
|
87
|
-
const { $set } = this;
|
|
88
87
|
let resourceSpec, podSpec, objectSpec, externalSpec;
|
|
89
88
|
|
|
90
89
|
switch (neuType) {
|
|
91
90
|
case 'External':
|
|
92
91
|
externalSpec = this.initExternalSpec();
|
|
93
92
|
|
|
94
|
-
|
|
93
|
+
this.value.external = externalSpec;
|
|
95
94
|
break;
|
|
96
95
|
case 'Object':
|
|
97
96
|
objectSpec = this.initObjectSpec();
|
|
98
97
|
|
|
99
|
-
|
|
98
|
+
this.value.object = objectSpec;
|
|
100
99
|
break;
|
|
101
100
|
case 'Pods':
|
|
102
101
|
podSpec = this.initPodsSpec();
|
|
103
102
|
|
|
104
|
-
|
|
103
|
+
this.value.pods = podSpec;
|
|
105
104
|
break;
|
|
106
105
|
case 'Resource':
|
|
107
106
|
resourceSpec = this.initResourceSpec();
|
|
108
107
|
|
|
109
|
-
|
|
108
|
+
this.value.resource = resourceSpec.resource;
|
|
110
109
|
break;
|
|
111
110
|
default:
|
|
112
111
|
break;
|
|
@@ -64,11 +64,7 @@ export default {
|
|
|
64
64
|
initializeType(authOptions, type) {
|
|
65
65
|
authOptions.forEach((authOption) => {
|
|
66
66
|
if (authOption.value === type && type !== 'none') {
|
|
67
|
-
this
|
|
68
|
-
this.value,
|
|
69
|
-
authOption.value,
|
|
70
|
-
this.value[authOption.value] || authOption.default
|
|
71
|
-
);
|
|
67
|
+
this.value.authOption.value = this.value[authOption.value] || authOption.default;
|
|
72
68
|
} else if (typeof this.value[authOption.value] !== 'undefined') {
|
|
73
69
|
delete this.value[authOption.value];
|
|
74
70
|
}
|
|
@@ -28,11 +28,7 @@ export default {
|
|
|
28
28
|
this.value['sendResolved'] = this.value.sendResolved || false;
|
|
29
29
|
|
|
30
30
|
if (this.mode === _CREATE) {
|
|
31
|
-
this
|
|
32
|
-
this.value,
|
|
33
|
-
'text',
|
|
34
|
-
this.value.text || '{{ template "slack.rancher.text" . }}'
|
|
35
|
-
);
|
|
31
|
+
this.value.text = this.value.text || '{{ template "slack.rancher.text" . }}';
|
|
36
32
|
}
|
|
37
33
|
|
|
38
34
|
return {
|
|
@@ -28,11 +28,7 @@ export default {
|
|
|
28
28
|
this.value['send_resolved'] = this.value.send_resolved || false;
|
|
29
29
|
|
|
30
30
|
if (this.mode === _CREATE) {
|
|
31
|
-
this
|
|
32
|
-
this.value,
|
|
33
|
-
'text',
|
|
34
|
-
this.value.text || '{{ template "slack.rancher.text" . }}'
|
|
35
|
-
);
|
|
31
|
+
this.value.text = this.value.text || '{{ template "slack.rancher.text" . }}';
|
|
36
32
|
}
|
|
37
33
|
|
|
38
34
|
return {};
|
package/edit/service.vue
CHANGED
|
@@ -226,11 +226,7 @@ export default {
|
|
|
226
226
|
this.value.spec.sessionAffinityConfig = { clientIP: { timeoutSeconds: null } };
|
|
227
227
|
|
|
228
228
|
// set it null and then set it with vue to make reactive.
|
|
229
|
-
this
|
|
230
|
-
this.value.spec.sessionAffinityConfig.clientIP,
|
|
231
|
-
'timeoutSeconds',
|
|
232
|
-
SESSION_STICKY_TIME_DEFAULT
|
|
233
|
-
);
|
|
229
|
+
this.value.spec.sessionAffinityConfig.clientIP.timeoutSeconds = SESSION_STICKY_TIME_DEFAULT;
|
|
234
230
|
} else if (
|
|
235
231
|
this.value?.spec?.sessionAffinityConfig?.clientIP?.timeoutSeconds
|
|
236
232
|
) {
|
|
@@ -425,7 +421,7 @@ export default {
|
|
|
425
421
|
:mode="mode"
|
|
426
422
|
:initial-empty-row="true"
|
|
427
423
|
:protip="false"
|
|
428
|
-
@update:value="(e) =>
|
|
424
|
+
@update:value="(e) => value.spec.selector = e"
|
|
429
425
|
/>
|
|
430
426
|
</div>
|
|
431
427
|
</div>
|
|
@@ -448,7 +444,7 @@ export default {
|
|
|
448
444
|
:tooltip-key="
|
|
449
445
|
hasClusterIp ? 'servicesPage.ips.clusterIpHelpText' : null
|
|
450
446
|
"
|
|
451
|
-
@update:value="(e) =>
|
|
447
|
+
@update:value="(e) => value.spec.clusterIP = e"
|
|
452
448
|
/>
|
|
453
449
|
</div>
|
|
454
450
|
</div>
|
|
@@ -465,7 +461,7 @@ export default {
|
|
|
465
461
|
:tooltip-key="
|
|
466
462
|
hasClusterIp ? 'servicesPage.ips.loadBalancerIp.helpText' : null
|
|
467
463
|
"
|
|
468
|
-
@update:value="(e) =>
|
|
464
|
+
@update:value="(e) => value.spec.loadBalancerIP = e"
|
|
469
465
|
/>
|
|
470
466
|
</div>
|
|
471
467
|
</div>
|
|
@@ -478,7 +474,7 @@ export default {
|
|
|
478
474
|
:value-placeholder="t('servicesPage.ips.external.placeholder')"
|
|
479
475
|
:mode="mode"
|
|
480
476
|
:protip="false"
|
|
481
|
-
@update:value="(e) =>
|
|
477
|
+
@update:value="(e) => value.spec.externalIPs = e"
|
|
482
478
|
/>
|
|
483
479
|
</div>
|
|
484
480
|
</div>
|
|
@@ -527,12 +523,7 @@ export default {
|
|
|
527
523
|
:label="t('servicesPage.affinity.timeout.label')"
|
|
528
524
|
:placeholder="t('servicesPage.affinity.timeout.placeholder')"
|
|
529
525
|
@input="
|
|
530
|
-
(e) =>
|
|
531
|
-
$set(
|
|
532
|
-
value.spec.sessionAffinityConfig.clientIP,
|
|
533
|
-
'timeoutSeconds',
|
|
534
|
-
e
|
|
535
|
-
)
|
|
526
|
+
(e) => value.spec.sessionAffinityConfig.clientIP.timeoutSeconds = e
|
|
536
527
|
"
|
|
537
528
|
/>
|
|
538
529
|
</div>
|
package/package.json
CHANGED
package/types/shell/index.d.ts
CHANGED
|
@@ -2168,6 +2168,7 @@ declare module '@shell/mixins/create-edit-view/impl' {
|
|
|
2168
2168
|
declare namespace _default {
|
|
2169
2169
|
const name: string;
|
|
2170
2170
|
const mixins: any[];
|
|
2171
|
+
const emits: string[];
|
|
2171
2172
|
function data(): {
|
|
2172
2173
|
errors: any[];
|
|
2173
2174
|
};
|
|
@@ -2274,7 +2275,7 @@ declare var _default: import("vue").DefineComponent<{
|
|
|
2274
2275
|
save(buttonDone: any, url: any, depth?: number): any;
|
|
2275
2276
|
actuallySave(url: any): Promise<void>;
|
|
2276
2277
|
setErrors(errors: any): void;
|
|
2277
|
-
}, any, import("vue").ComponentOptionsMixin,
|
|
2278
|
+
}, any, import("vue").ComponentOptionsMixin, string[], string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
2278
2279
|
mode: {
|
|
2279
2280
|
type: StringConstructor;
|
|
2280
2281
|
default: any;
|
|
@@ -2303,7 +2304,9 @@ declare var _default: import("vue").DefineComponent<{
|
|
|
2303
2304
|
type: BooleanConstructor;
|
|
2304
2305
|
default: boolean;
|
|
2305
2306
|
};
|
|
2306
|
-
}
|
|
2307
|
+
}>> & {
|
|
2308
|
+
[x: string & `on${string}`]: (...args: any[]) => any;
|
|
2309
|
+
}, {
|
|
2307
2310
|
mode: string;
|
|
2308
2311
|
as: string;
|
|
2309
2312
|
doneEvent: boolean;
|
package/utils/v-sphere.ts
CHANGED
|
@@ -96,7 +96,7 @@ class VSphereUtils {
|
|
|
96
96
|
*/
|
|
97
97
|
async handleVsphereCpiSecret(rke2Component: Rke2Component) {
|
|
98
98
|
const generateName = `${ rootGenerateName }cpi-`;
|
|
99
|
-
const downstreamName = 'vsphere-cpi-
|
|
99
|
+
const downstreamName = 'rancher-vsphere-cpi-credentials';
|
|
100
100
|
const downstreamNamespace = 'kube-system';
|
|
101
101
|
const { value } = rke2Component;
|
|
102
102
|
|
|
@@ -104,6 +104,13 @@ class VSphereUtils {
|
|
|
104
104
|
const { userValues, combined } = this.findChartValues(rke2Component, 'rancher-vsphere-cpi') || {};
|
|
105
105
|
|
|
106
106
|
if (!combined?.vCenter?.credentialsSecret?.generate) {
|
|
107
|
+
if (userValues?.vCenter?.username) {
|
|
108
|
+
userValues.vCenter.username = '';
|
|
109
|
+
}
|
|
110
|
+
if (userValues?.vCenter?.password) {
|
|
111
|
+
userValues.vCenter.password = '';
|
|
112
|
+
}
|
|
113
|
+
|
|
107
114
|
return;
|
|
108
115
|
}
|
|
109
116
|
|
|
@@ -162,7 +169,7 @@ class VSphereUtils {
|
|
|
162
169
|
*/
|
|
163
170
|
async handleVsphereCsiSecret(rke2Component: Rke2Component) {
|
|
164
171
|
const generateName = `${ rootGenerateName }csi-`;
|
|
165
|
-
const downstreamName = 'vsphere-csi-
|
|
172
|
+
const downstreamName = 'rancher-vsphere-csi-credentials';
|
|
166
173
|
const downstreamNamespace = 'kube-system';
|
|
167
174
|
const { value } = rke2Component;
|
|
168
175
|
|
|
@@ -170,6 +177,13 @@ class VSphereUtils {
|
|
|
170
177
|
const { userValues, combined } = this.findChartValues(rke2Component, 'rancher-vsphere-csi') || {};
|
|
171
178
|
|
|
172
179
|
if (!combined?.vCenter?.configSecret?.generate) {
|
|
180
|
+
if (userValues?.vCenter?.username) {
|
|
181
|
+
userValues.vCenter.username = '';
|
|
182
|
+
}
|
|
183
|
+
if (userValues?.vCenter?.password) {
|
|
184
|
+
userValues.vCenter.password = '';
|
|
185
|
+
}
|
|
186
|
+
|
|
173
187
|
return;
|
|
174
188
|
}
|
|
175
189
|
|
|
@@ -184,7 +198,7 @@ class VSphereUtils {
|
|
|
184
198
|
|
|
185
199
|
// This is a copy of https://github.com/rancher/vsphere-charts/blob/a5c99d716df960dc50cf417d9ecffad6b55ca0ad/charts/rancher-vsphere-csi/values.yaml#L12-L21
|
|
186
200
|
// Which makes it's way into the secret via https://github.com/rancher/vsphere-charts/blob/main/charts/rancher-vsphere-csi/templates/secret.yaml#L8
|
|
187
|
-
let configTemplateString = '
|
|
201
|
+
let configTemplateString = ' [Global]\n cluster-id = {{ required \".Values.vCenter.clusterId must be provided\" (default .Values.vCenter.clusterId .Values.global.cattle.clusterId) | quote }}\n user = {{ .Values.vCenter.username | quote }}\n password = {{ .Values.vCenter.password | quote }}\n port = {{ .Values.vCenter.port | quote }}\n insecure-flag = {{ .Values.vCenter.insecureFlag | quote }}\n\n [VirtualCenter {{ .Values.vCenter.host | quote }}]\n datacenters = {{ .Values.vCenter.datacenters | quote }}';
|
|
188
202
|
|
|
189
203
|
configTemplateString = configTemplateString.replace('{{ required \".Values.vCenter.clusterId must be provided\" (default .Values.vCenter.clusterId .Values.global.cattle.clusterId) | quote }}', `"{{clusterId}}"`);
|
|
190
204
|
configTemplateString = configTemplateString.replace('{{ .Values.vCenter.username | quote }}', `"${ username }"`);
|
package/vue.config.js
CHANGED
|
@@ -551,6 +551,8 @@ module.exports = function(dir, _appConfig) {
|
|
|
551
551
|
// The static assets need to be in the built assets directory in order to get served (primarily the favicon)
|
|
552
552
|
config.plugins.push(new CopyWebpackPlugin({ patterns: [{ from: path.join(SHELL_ABS, 'static'), to: '.' }] }));
|
|
553
553
|
|
|
554
|
+
config.plugins.push(new webpack.IgnorePlugin({ resourceRegExp: /\/__tests__\// }));
|
|
555
|
+
|
|
554
556
|
config.resolve.extensions.push(...['.tsx', '.ts', '.js', '.vue', '.scss']);
|
|
555
557
|
config.watchOptions = {
|
|
556
558
|
...(config.watchOptions || {}),
|