diff --git a/pkg/harvester/components/vm-migration/ConfigureProviderStep.vue b/pkg/harvester/components/vm-migration/ConfigureProviderStep.vue index 06274372..f4f6783f 100644 --- a/pkg/harvester/components/vm-migration/ConfigureProviderStep.vue +++ b/pkg/harvester/components/vm-migration/ConfigureProviderStep.vue @@ -42,6 +42,7 @@ const { username, password, skipTlsVerify, + vddkInitImage, testPassed, testResult, testError, @@ -97,6 +98,7 @@ watch(selectedProvider, (val) => { username.value = ''; password.value = ''; skipTlsVerify.value = false; + vddkInitImage.value = ''; createdProvider.value = null; createdSecret.value = null; } else { @@ -107,6 +109,7 @@ watch(selectedProvider, (val) => { if (provider) { providerName.value = provider.metadata.name; url.value = provider.spec?.url || ''; + vddkInitImage.value = provider.spec?.settings?.vddkInitImage || ''; const secretRef = provider.spec?.secret; @@ -239,6 +242,18 @@ const testConnection = async(buttonCb) => { if (props.editMode && createdProvider.value) { try { createdProvider.value.spec.url = url.value; + + const vddkImage = vddkInitImage.value?.trim(); + + if (vddkImage) { + createdProvider.value.spec.settings = { + ...(createdProvider.value.spec.settings || {}), + vddkInitImage: vddkImage, + }; + } else if (createdProvider.value.spec.settings) { + delete createdProvider.value.spec.settings.vddkInitImage; + } + await createdProvider.value.save(); const secretRef = createdProvider.value.spec?.secret; @@ -283,20 +298,28 @@ const testConnection = async(buttonCb) => { const namespace = FORKLIFT_NAMESPACE; const secretName = `${ providerName.value }-creds-${ randomStr(4).toLowerCase() }`; + const spec = { + type: 'vsphere', + url: url.value, + secret: { + name: secretName, + namespace, + }, + }; + + const vddkImage = vddkInitImage.value?.trim(); + + if (vddkImage) { + spec.settings = { vddkInitImage: vddkImage }; + } + const provider = await store.dispatch(`${ inStore }/create`, { type: HCI.FORKLIFT_PROVIDER, metadata: { name: providerName.value, namespace, }, - spec: { - type: 'vsphere', - url: url.value, - secret: { - name: secretName, - namespace, - }, - } + spec, }); await provider.save(); @@ -420,17 +443,28 @@ defineExpose({ testConnection, clickTestButton }); /> -
- {{ t('harvester.addons.vmMigration.configureProvider.urlHint') }} -
++ {{ t('harvester.addons.vmMigration.configureProvider.urlHint') }} +
+