diff --git a/pkg/harvester/components/vm-migration/ConfigureMappingsStep.vue b/pkg/harvester/components/vm-migration/ConfigureMappingsStep.vue index 2dc1eb13..0cb5370b 100644 --- a/pkg/harvester/components/vm-migration/ConfigureMappingsStep.vue +++ b/pkg/harvester/components/vm-migration/ConfigureMappingsStep.vue @@ -9,6 +9,7 @@ import { randomStr } from '@shell/utils/string'; import { HCI } from '../../types'; import { FORKLIFT_NAMESPACE } from '../../config/harvester-map'; import { buildNetworkMapEntries, buildStorageMapEntries } from '../../utils/forklift'; +import { isInternalStorageClass } from '../../utils/storage-class'; import MappingColumn from './MappingColumn.vue'; const props = defineProps({ @@ -56,10 +57,22 @@ const harvesterNetworkOptions = computed(() => { }); const storageClassOptions = computed(() => { - const options = storageClasses.value.map((sc) => ({ - label: sc.metadata?.name || sc.id, - value: sc.metadata?.name || sc.id, - })); + const options = storageClasses.value.filter((s) => !s.parameters?.backingImage).map((sc) => { + const value = sc.name; + let label = sc.isDefault ? `${ value } (${ t('generic.default') })` : value; + let disabled = false; + + if (isInternalStorageClass(value)) { + label += ` (${ t('harvester.storage.internal.label') })`; + disabled = true; + } + + return { + label, + value, + disabled, + }; + }); if (!options.find((o) => o.value === 'harvester-longhorn')) { options.unshift({ label: 'harvester-longhorn', value: 'harvester-longhorn' }); diff --git a/pkg/harvester/l10n/en-us.yaml b/pkg/harvester/l10n/en-us.yaml index 35183dd7..57fc6080 100644 --- a/pkg/harvester/l10n/en-us.yaml +++ b/pkg/harvester/l10n/en-us.yaml @@ -1967,7 +1967,7 @@ harvester: placeholder: Choose a Harvester network template: Use existing network mapping as template options: - podNetworking: Pod Networking + podNetworking: Management Network ignored: Ignored storageMapping: title: Storage Mapping