remove external harvester mode

This commit is contained in:
wujun 2023-01-09 18:02:47 +08:00
parent 4a5f7c0f12
commit 9d02902073
2 changed files with 97 additions and 131 deletions

View File

@ -176,6 +176,7 @@ export default Component.extend(NodeDriver, {
networks: get(this, 'globalStore').rawRequest({ url: `${ url }/v1/k8s.cni.cncf.io.networkattachmentdefinition` }), networks: get(this, 'globalStore').rawRequest({ url: `${ url }/v1/k8s.cni.cncf.io.networkattachmentdefinition` }),
namespaces: get(this, 'globalStore').rawRequest({ url: `${ url }/v1/namespace` }), namespaces: get(this, 'globalStore').rawRequest({ url: `${ url }/v1/namespace` }),
configmaps: get(this, 'globalStore').rawRequest({ url: `${ url }/v1/configmap` }), configmaps: get(this, 'globalStore').rawRequest({ url: `${ url }/v1/configmap` }),
storageClass: get(this, 'globalStore').rawRequest({ url: `${ url }/v1/storage.k8s.io.storageclasses` }),
systemNamespace: get(this, 'globalStore').rawRequest({ url: `${ url }/v1/management.cattle.io.settings/system-namespaces` }), systemNamespace: get(this, 'globalStore').rawRequest({ url: `${ url }/v1/management.cattle.io.settings/system-namespaces` }),
}).then((resp) => { }).then((resp) => {
const images = resp.images.body.data || []; const images = resp.images.body.data || [];
@ -254,24 +255,37 @@ export default Component.extend(NodeDriver, {
} }
}) })
const storageClass = resp.storageClass.body.data || [];
const storageClassContent = storageClass.map((s) => {
const isDefault = s.metadata?.annotations?.['storageclass.kubernetes.io/is-default-class'] === 'true';
const label = isDefault ? `${ s.metadata.name } (${ this.intl.t('generic.default') })` : s.metadata.name;
return {
label,
value: s.metadata.name,
};
}) || [];
setProperties(this, { setProperties(this, {
imageContent, imageContent,
networkContent, networkContent,
namespaceContent, namespaceContent,
userDataContent, userDataContent,
networkDataContent, networkDataContent,
storageClassContent
}); });
}).catch((err) => { }).catch((err) => {
setProperties(this, { setProperties(this, {
imageContent: [], imageContent: [],
networkContent: [], networkContent: [],
namespaceContent: [], namespaceContent: [],
userDataContent: [], userDataContent: [],
networkDataContent: [], networkDataContent: [],
namespaces: [], namespaces: [],
vmAffinity: [], vmAffinity: [],
nodeSchedulings: [], nodeSchedulings: [],
podSchedulings: [], podSchedulings: [],
storageClassContent: [],
}) })
const message = err.statusText || err.message; const message = err.statusText || err.message;
@ -292,15 +306,6 @@ export default Component.extend(NodeDriver, {
return (get(this, 'cloudCredentials') || []).find((C) => C.id === get(this, 'model.cloudCredentialId')); return (get(this, 'cloudCredentials') || []).find((C) => C.id === get(this, 'model.cloudCredentialId'));
}), }),
isImported: computed('currentCredential.harvestercredentialConfig.clusterType', function() {
if (get(this, 'currentCredential') && get(this, 'currentCredential').harvestercredentialConfig) {
return get(this, 'currentCredential').harvestercredentialConfig.clusterType === 'imported';
}
return false;
}),
isSystemNamespace(namespace) { isSystemNamespace(namespace) {
if ( namespace.metadata && namespace.metadata.annotations && namespace.metadata.annotations['management.cattle.io/system-namespace'] === 'true' ) { if ( namespace.metadata && namespace.metadata.annotations && namespace.metadata.annotations['management.cattle.io/system-namespace'] === 'true' ) {
return true; return true;

View File

@ -74,100 +74,19 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "nodeDriver.harvester.diskSize.label"}}{{field-required}}
</label>
<div class="input-group">
{{input-integer
min=1
value=config.diskSize
classNames="form-control"
placeholder=(t "nodeDriver.harvester.diskSize.placeholder")
}}
<div class="input-group-addon bg-default">
{{t "nodeDriver.harvester.diskSize.unit"}}
</div>
</div>
</div>
<div class="col span-6"> <div class="col span-6">
<label class="acc-label"> <label class="acc-label">
{{t "nodeDriver.harvester.namespace.label"}}{{field-required}} {{t "nodeDriver.harvester.namespace.label"}}{{field-required}}
</label> </label>
{{#if isImported}} <SearchableSelect
<SearchableSelect @class="form-control"
@class="form-control" @content={{namespaceContent}}
@content={{namespaceContent}} @value={{config.vmNamespace}}
@value={{config.vmNamespace}} @placeholder={{t "nodeDriver.harvester.namespace.placeholder"}}
@placeholder={{t "nodeDriver.harvester.namespace.placeholder"}} />
/>
{{else}}
{{input
type="text"
value=config.vmNamespace
classNames="form-control"
placeholder=(t "nodeDriver.harvester.namespace.placeholder")
}}
{{/if}}
</div> </div>
</div>
<div class="row">
{{#if isImported}}
<div class="col span-6">
<label class="acc-label">
{{t "nodeDriver.harvester.imageName.label"}}{{field-required}}
</label>
<SearchableSelect
@class="form-control"
@content={{imageContent}}
@value={{config.imageName}}
@placeholder={{t "nodeDriver.harvester.imageName.placeholder"}}
/>
</div>
<div class="col span-6">
<label class="acc-label">
{{t "nodeDriver.harvester.networkName.label"}}{{field-required}}
</label>
<SearchableSelect
@class="form-control"
@content={{networkContent}}
@value={{config.networkName}}
@placeholder={{t "nodeDriver.harvester.networkName.placeholder"}}
/>
</div>
{{else}}
<div class="col span-6">
<label class="acc-label">
{{t "nodeDriver.harvester.imageName.label"}}{{field-required}}
</label>
{{input
type="text"
value=config.imageName
classNames="form-control"
placeholder=(t "nodeDriver.harvester.imageName.placeholder")
}}
</div>
<div class="col span-6">
<label class="acc-label">
{{t "nodeDriver.harvester.networkName.label"}}{{field-required}}
</label>
{{input
type="text"
value=config.networkName
classNames="form-control"
placeholder=(t "nodeDriver.harvester.networkName.placeholder")
}}
</div>
{{/if}}
</div>
<div class="row">
<div class="col span-6"> <div class="col span-6">
<label class="acc-label"> <label class="acc-label">
{{t "nodeDriver.harvester.sshUser.label"}}{{field-required}} {{t "nodeDriver.harvester.sshUser.label"}}{{field-required}}
@ -193,6 +112,52 @@
}} }}
</div> </div>
</div> </div>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "nodeDriver.harvester.imageName.label"}}{{field-required}}
</label>
<SearchableSelect
@class="form-control"
@content={{imageContent}}
@value={{config.imageName}}
@placeholder={{t "nodeDriver.harvester.imageName.placeholder"}}
/>
</div>
<div class="col span-6">
<label class="acc-label">
{{t "nodeDriver.harvester.diskSize.label"}}{{field-required}}
</label>
<div class="input-group">
{{input-integer
min=1
value=config.diskSize
classNames="form-control"
placeholder=(t "nodeDriver.harvester.diskSize.placeholder")
}}
<div class="input-group-addon bg-default">
{{t "nodeDriver.harvester.diskSize.unit"}}
</div>
</div>
</div>
</div>
<div class="row">
<div class="col span-6">
<label class="acc-label">
{{t "nodeDriver.harvester.networkName.label"}}{{field-required}}
</label>
<SearchableSelect
@class="form-control"
@content={{networkContent}}
@value={{config.networkName}}
@placeholder={{t "nodeDriver.harvester.networkName.placeholder"}}
/>
</div>
</div>
{{/if}} {{/if}}
{{/accordion-list-item}} {{/accordion-list-item}}
@ -243,20 +208,18 @@
</div> --}} </div> --}}
{{/if}} {{/if}}
{{#if isImported}} <div class="row">
<div class="row"> <div class="col span-6">
<div class="col span-6"> <label class="acc-label">
<label class="acc-label"> {{t "nodeDriver.harvester.userData.template.label"}}
{{t "nodeDriver.harvester.userData.template.label"}} </label>
</label> <SearchableSelect
<SearchableSelect @class="form-control"
@class="form-control" @content={{userDataContent}}
@content={{userDataContent}} @value={{config.userData}}
@value={{config.userData}} />
/>
</div>
</div> </div>
{{/if}} </div>
<div class="row"> <div class="row">
<div class="col span-12"> <div class="col span-12">
@ -275,20 +238,18 @@
</div> </div>
</div> </div>
{{#if isImported}} <div class="row">
<div class="row"> <div class="col span-6">
<div class="col span-6"> <label class="acc-label">
<label class="acc-label"> {{t "nodeDriver.harvester.networkData.template.label"}}
{{t "nodeDriver.harvester.networkData.template.label"}} </label>
</label> <SearchableSelect
<SearchableSelect @class="form-control"
@class="form-control" @content={{networkDataContent}}
@content={{networkDataContent}} @value={{config.networkData}}
@value={{config.networkData}} />
/>
</div>
</div> </div>
{{/if}} </div>
<div class="row"> <div class="row">
<div class="col span-12"> <div class="col span-12">