forked from rancher/dashboard
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcis.cattle.io.clusterscanbenchmark.vue
107 lines (96 loc) · 2.87 KB
/
cis.cattle.io.clusterscanbenchmark.vue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<script>
import createEditView from '@/mixins/create-edit-view';
import CruResource from '@/components/CruResource';
import LabeledSelect from '@/components/form/LabeledSelect';
import LabeledInput from '@/components/form/LabeledInput';
import NameNsDescription from '@/components/form/NameNsDescription';
import { mapGetters } from 'vuex';
import { CONFIG_MAP } from '@/config/types';
const providers = ['aks', 'docker', 'eks', 'gke', 'k3s', 'minikube', 'rke-windows', 'rke', 'rke2'];
export default {
components: {
CruResource, LabeledSelect, LabeledInput, NameNsDescription
},
mixins: [createEditView],
props: {
value: {
type: Object,
default: () => {
return {};
}
},
mode: {
type: String,
default: 'create'
}
},
async fetch() {
this.configMaps = await this.$store.dispatch('cluster/findAll', { type: CONFIG_MAP });
},
data() {
if (!this.value.spec) {
this.$set(this.value, 'spec', {});
}
return { configMaps: [], providers };
},
computed: {
customConfigMap: {
get() {
const { customBenchmarkConfigMapName = '', customBenchmarkConfigMapNamespace } = this.value?.spec;
return customBenchmarkConfigMapNamespace ? `${ customBenchmarkConfigMapNamespace }/${ customBenchmarkConfigMapName }` : customBenchmarkConfigMapName;
},
set(neu) {
const { name, namespace } = neu.metadata;
this.$set(this.value.spec, 'customBenchmarkConfigMapName', name);
this.$set(this.value.spec, 'customBenchmarkConfigMapNamespace', namespace);
}
},
...mapGetters({ t: 'i18n/t' })
}
};
</script>
<template>
<CruResource
:done-route="doneRoute"
:resource="value"
:mode="mode"
:errors="errors"
@finish="save"
@error="e=>errors = e"
>
<div class="row">
<div class="col span-12">
<NameNsDescription :mode="mode" :value="value" :namespaced="false" />
</div>
</div>
<div class="row mb-20">
<div class="col span-6">
<LabeledSelect
v-model="value.spec.clusterProvider"
:clearable="true"
:options="providers"
:mode="mode"
:label="t('cis.clusterProvider')"
/>
</div>
<div class="col span-6">
<LabeledSelect
v-model="customConfigMap"
:clearable="true"
option-label="id"
:options="configMaps"
:mode="mode"
:label="t('cis.customConfigMap')"
/>
</div>
</div>
<div class="row mb-20">
<div class="col span-6">
<LabeledInput v-model="value.spec.minKubernetesVersion" :mode="mode" :label="t('cis.minKubernetesVersion')" />
</div>
<div class="col span-6">
<LabeledInput v-model="value.spec.maxKubernetesVersion" :mode="mode" :label="t('cis.maxKubernetesVersion')" />
</div>
</div>
</CruResource>
</template>