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.