From 44ef9195eb8c15456fbffa1a736ecdddf088cc7b Mon Sep 17 00:00:00 2001 From: Renuka Devi Rajendran Date: Mon, 8 Jun 2026 08:44:24 -0700 Subject: [PATCH] feat: add exclusive VLAN field to storage network settings (#914) Signed-off-by: Renuka Devi Rajendran --- .../components/settings/storage-network.vue | 35 +++++++++++++++++-- pkg/harvester/l10n/en-us.yaml | 1 + 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/pkg/harvester/components/settings/storage-network.vue b/pkg/harvester/components/settings/storage-network.vue index 57ffc017..ae3bb837 100644 --- a/pkg/harvester/components/settings/storage-network.vue +++ b/pkg/harvester/components/settings/storage-network.vue @@ -64,6 +64,9 @@ export default { try { parsedDefaultValue = JSON.parse(this.value.value); + if (typeof parsedDefaultValue.exclusiveVlan !== 'boolean') { + parsedDefaultValue.exclusiveVlan = false; + } networkType = 'vlan' in parsedDefaultValue ? L2VLAN : UNTAGGED; // backend doesn't provide networkType, so we check if vlan is provided instead openVlan = true; } catch (error) { @@ -72,7 +75,8 @@ export default { vlan: '', clusterNetwork: '', range: '', - exclude: [] + exclude: [], + exclusiveVlan: false }; } const exclude = parsedDefaultValue?.exclude?.toString().split(',') || []; @@ -94,6 +98,10 @@ export default { }, computed: { + showExclusiveVlan() { + return this.networkType === L2VLAN && + Number(this.parsedDefaultValue.vlan) !== 1; + }, showVlan() { return this.networkType === L2VLAN; }, @@ -132,6 +140,18 @@ export default { }; }); }, + exclusiveVlanOptions() { + return [ + { + label: this.t('generic.enabled'), + value: true + }, + { + label: this.t('generic.disabled'), + value: false + } + ]; + }, }, watch: { @@ -174,7 +194,8 @@ export default { vlan: '', clusterNetwork: '', range: '', - exclude: [] + exclude: [], + exclusiveVlan: false }; }, @@ -280,7 +301,15 @@ export default { label-key="harvester.setting.storageNetwork.vlan" @update:value="inputVlan" /> - +