mirror of https://github.com/rancher/dashboard.git
70 lines
1.4 KiB
Vue
70 lines
1.4 KiB
Vue
<script>
|
|
|
|
import LabeledInput from '@/components/form/LabeledInput';
|
|
import Checkbox from '@/components/form/Checkbox';
|
|
import { _EDIT } from '@/config/query-params';
|
|
import { importNodeConfig } from '@/utils/dynamic-importer';
|
|
|
|
export default {
|
|
|
|
components: {
|
|
LabeledInput,
|
|
Checkbox,
|
|
},
|
|
|
|
props: {
|
|
value: {
|
|
type: Object,
|
|
required: true,
|
|
},
|
|
|
|
credentialId: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
|
|
mode: {
|
|
type: String,
|
|
default: _EDIT,
|
|
},
|
|
|
|
provider: {
|
|
type: String,
|
|
required: true,
|
|
},
|
|
},
|
|
|
|
computed: {
|
|
configComponent() {
|
|
return importNodeConfig(this.provider);
|
|
}
|
|
},
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<div>
|
|
<div class="row">
|
|
<div class="col span-4">
|
|
<LabeledInput v-model="value.pool.name" label="Pool Name" :required="true" />
|
|
</div>
|
|
<div class="col span-2">
|
|
<LabeledInput v-model="value.pool.quantity" label="Node Count" type="number" min="0" :required="true" />
|
|
</div>
|
|
<div class="col span-6 pt-5">
|
|
<h3>Roles</h3>
|
|
<Checkbox v-model="value.pool.etcdRole" label="etcd" />
|
|
<Checkbox v-model="value.pool.controlPlaneRole" label="Control Plane" />
|
|
<Checkbox v-model="value.pool.workerRole" label="Worker" />
|
|
</div>
|
|
</div>
|
|
|
|
<component
|
|
:is="configComponent"
|
|
:mode="mode"
|
|
:value="value.config"
|
|
:credential-id="credentialId"
|
|
/>
|
|
</div>
|
|
</template>
|