diff --git a/pkg/harvester/l10n/en-us.yaml b/pkg/harvester/l10n/en-us.yaml index 032d7f61..39ec3549 100644 --- a/pkg/harvester/l10n/en-us.yaml +++ b/pkg/harvester/l10n/en-us.yaml @@ -487,7 +487,6 @@ harvester: volume: upperType: Volume name lowerType: volume name - needAtLeastOneBootable: 'At least one bootable volume is required!' image: ruleTip: 'The URL you have entered ends in an extension that we do not support. We only accept image files that end in .img, .iso, .qcow, .qcow2, .raw.' ruleFileTip: 'The file you have chosen ends in an extension that we do not support. We only accept image files that end in .img, .iso, .qcow, .qcow2, .raw.' diff --git a/pkg/harvester/validators/vm.js b/pkg/harvester/validators/vm.js index 6042bb1f..0c722906 100644 --- a/pkg/harvester/validators/vm.js +++ b/pkg/harvester/validators/vm.js @@ -69,17 +69,11 @@ export function vmDisks(spec, getters, errors, validatorArgs, displayKey, value) validName(getters, errors, D.name, diskNames, prefix, type, lowerType, upperType); }); - let hasBootableVolume = false; - _volumes.forEach((V, idx) => { const { type, typeValue } = getVolumeType(getters, V, _volumeClaimTemplates, value); const prefix = V.name || idx + 1; - if ([SOURCE_TYPE.IMAGE, SOURCE_TYPE.ATTACH_VOLUME, SOURCE_TYPE.CONTAINER].includes(type)) { - hasBootableVolume = true; - } - if (type === SOURCE_TYPE.NEW || type === SOURCE_TYPE.IMAGE) { if (!/([1-9]|[1-9][0-9]+)[a-zA-Z]+/.test(typeValue?.spec?.resources?.requests?.storage)) { const key = getters['i18n/t']('harvester.fields.size'); @@ -136,13 +130,6 @@ export function vmDisks(spec, getters, errors, validatorArgs, displayKey, value) } }); - /** - * At least one bootable volume must be provided. (Verify only when create.) - */ - if (!hasBootableVolume && !value.links) { - errors.push(getters['i18n/t']('harvester.validation.vm.volume.needAtLeastOneBootable')); - } - return errors; }