From dd956189edc4b031a40453a8af71262d05513935 Mon Sep 17 00:00:00 2001 From: Will Szumski Date: Thu, 10 Mar 2022 12:22:48 +0000 Subject: [PATCH] Use naming convention to infer VLAN tagging Any interface not matching the convention: . will be assumed to untagged when generating the config drive. The link type will be set to `phy` in `network_data.json` instead of `vlan`. This prevents invalid config drive configuration from being generated. Change-Id: I00e7615581c7a214e0ee8e8f04cacdbb3ea4131a Story: 2009910 Task: 44736 --- kayobe/plugins/filter/networks.py | 4 ++-- .../notes/fixes-keyerror-vlan-link-c177cf719e070df6.yaml | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/fixes-keyerror-vlan-link-c177cf719e070df6.yaml diff --git a/kayobe/plugins/filter/networks.py b/kayobe/plugins/filter/networks.py index 178d1d7eb..8ccd21b77 100644 --- a/kayobe/plugins/filter/networks.py +++ b/kayobe/plugins/filter/networks.py @@ -595,7 +595,7 @@ def net_configdrive_network_device(context, name, inventory_hostname=None): bootproto = net_bootproto(context, name, inventory_hostname) mtu = net_mtu(context, name, inventory_hostname) vlan = net_vlan(context, name, inventory_hostname) - if vlan: + if vlan and '.' in device: backend = [device.split('.')[0]] else: backend = None @@ -608,7 +608,7 @@ def net_configdrive_network_device(context, name, inventory_hostname=None): 'mtu': mtu, 'backend': backend, } - if vlan: + if backend: interface['type'] = 'vlan' interface = {k: v for k, v in interface.items() if v is not None} return interface diff --git a/releasenotes/notes/fixes-keyerror-vlan-link-c177cf719e070df6.yaml b/releasenotes/notes/fixes-keyerror-vlan-link-c177cf719e070df6.yaml new file mode 100644 index 000000000..c90c991f0 --- /dev/null +++ b/releasenotes/notes/fixes-keyerror-vlan-link-c177cf719e070df6.yaml @@ -0,0 +1,8 @@ +--- +fixes: + - | + Fixes an issue with config drive generation for infrastructure and seed VMs + when using untagged interfaces. The symptom of this issue is that kayobe + cannot login to the instance. If you check the libvirt console log, you + will see ``KeyError: 'vlan_link'``. See `story 2009910 + `__ for details.