From 4486f71c8fc9fe535b8058620799d91af36818b8 Mon Sep 17 00:00:00 2001 From: Yiya Chen Date: Wed, 16 Jul 2025 10:13:07 +0800 Subject: [PATCH] feat: add vm-migration-network setting (#395) Signed-off-by: Yi-Ya Chen --- .../settings/vm-migration-network.vue | 270 ++++++++++++++++++ pkg/harvester/config/feature-flags.js | 3 +- pkg/harvester/config/settings.ts | 4 + pkg/harvester/l10n/en-us.yaml | 15 + 4 files changed, 291 insertions(+), 1 deletion(-) create mode 100644 pkg/harvester/components/settings/vm-migration-network.vue diff --git a/pkg/harvester/components/settings/vm-migration-network.vue b/pkg/harvester/components/settings/vm-migration-network.vue new file mode 100644 index 00000000..b925b538 --- /dev/null +++ b/pkg/harvester/components/settings/vm-migration-network.vue @@ -0,0 +1,270 @@ + + + diff --git a/pkg/harvester/config/feature-flags.js b/pkg/harvester/config/feature-flags.js index aaf68fb2..7e8a1f00 100644 --- a/pkg/harvester/config/feature-flags.js +++ b/pkg/harvester/config/feature-flags.js @@ -41,7 +41,8 @@ const FEATURE_FLAGS = { 'v1.6.0': [ 'vmMachineTypes', 'customSupportBundle', - 'csiOnlineExpandValidation' + 'csiOnlineExpandValidation', + 'vmNetworkMigration' ] }; diff --git a/pkg/harvester/config/settings.ts b/pkg/harvester/config/settings.ts index 02da9190..ff19fc50 100644 --- a/pkg/harvester/config/settings.ts +++ b/pkg/harvester/config/settings.ts @@ -36,6 +36,7 @@ export const HCI_SETTING = { LONGHORN_V2_DATA_ENGINE_ENABLED: 'longhorn-v2-data-engine-enabled', ADDITIONAL_GUEST_MEMORY_OVERHEAD_RATIO: 'additional-guest-memory-overhead-ratio', UPGRADE_CONFIG: 'upgrade-config', + VM_MIGRATION_NETWORK: 'vm-migration-network', }; export const HCI_ALLOWED_SETTINGS = { @@ -107,6 +108,9 @@ export const HCI_ALLOWED_SETTINGS = { featureFlag: 'upgradeConfigSetting', docPath: 'UPGRADE_CONFIG_URL' }, + [HCI_SETTING.VM_MIGRATION_NETWORK]: { + kind: 'json', from: 'import', canReset: true, featureFlag: 'vmNetworkMigration', + }, }; export const HCI_SINGLE_CLUSTER_ALLOWED_SETTING = { diff --git a/pkg/harvester/l10n/en-us.yaml b/pkg/harvester/l10n/en-us.yaml index 17eefde5..7c73e016 100644 --- a/pkg/harvester/l10n/en-us.yaml +++ b/pkg/harvester/l10n/en-us.yaml @@ -1087,6 +1087,20 @@ harvester: tip: 'Specify an IP range in the IPv4 CIDR format. Number of IPs Required = Number of Nodes * 2 + Number of Disks * 2 + Number of Images to Download/Upload . For more information about storage network settings, see the documentation.' vmForceDeletionPolicy: period: Period + vmMigrationNetwork: + parseError: "Failed to parse existing configuration." + fetchError: "Failed to load required network resources: {error}. Please refresh the page or try again later." + clusterNetwork: Cluster Network + vlan: VLAN ID + range: + placeholder: e.g. 172.16.0.0/24 + label: IP Range + invalid: '"Range" is invalid.' + exclude: + label: Excluded IPs + placeholder: e.g. 172.16.0.1/32 + invalid: '"Exclude list" is invalid.' + addButton: Add Exclude IP ratio : Ratio autoRotateRKE2Certs: expiringInHours: Expiring in @@ -1634,6 +1648,7 @@ advancedSettings: 'harv-longhorn-v2-data-engine-enabled': 'Enable the Longhorn V2 data engine. Default is false. ' 'harv-additional-guest-memory-overhead-ratio': 'The ratio for kubevirt to adjust the VM overhead memory. The value could be zero, empty value or floating number between 1.0 and 10.0, default to 1.5.' 'harv-upgrade-config': 'Configure image preloading and VM restore options for upgrades. See related fields in settings/upgrade-config' + 'harv-vm-migration-network': 'Segregated network for VM migration traffic.' typeLabel: kubevirt.io.virtualmachine: |-