From ebb6e63a352763bb2ab8891ccd757a0625a186a2 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Wed, 1 Jul 2026 15:02:04 +0100 Subject: [PATCH 1/3] systemd: Make oem-cloudinit.service a bit less ugly Signed-off-by: James Le Cuirot --- systemd/system/oem-cloudinit.service | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/systemd/system/oem-cloudinit.service b/systemd/system/oem-cloudinit.service index 86d5ef7..cb8d46e 100644 --- a/systemd/system/oem-cloudinit.service +++ b/systemd/system/oem-cloudinit.service @@ -4,8 +4,8 @@ Description=Run cloudinit [Service] EnvironmentFile=/var/run/ignition.env Type=oneshot -ExecCondition=/usr/bin/bash -xc 'OEMS=(aws gcp azure cloudsigma vmware digitalocean openstack); echo $${OEMS[*]} | tr " " "\n" | grep -q -x -F "${OEM_ID}"' -ExecStart=/usr/bin/bash -xc '/usr/bin/coreos-cloudinit --oem="$(if [ "${OEM_ID}" = aws -o "${OEM_ID}" = openstack ]; then echo ec2-compat; elif [ "${OEM_ID}" = gcp ]; then echo gce; else echo "${OEM_ID}" ; fi)"' +ExecCondition=bash -xc 'case ${OEM_ID} in aws|azure|cloudsigma|digitalocean|gcp|openstack|vmware) true;; *) false;; esac' +ExecStart=bash -xc 'exec coreos-cloudinit --oem="$(case ${OEM_ID} in aws|openstack) echo ec2-compat;; gcp) echo gce;; *) printf "%s" "${OEM_ID}";; esac)"' [Install] WantedBy=multi-user.target From e1cdf3d698ae8504d244d7c5d6e565243e0e1d5a Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Wed, 1 Jul 2026 15:03:49 +0100 Subject: [PATCH 2/3] systemd: KeepConfiguration=dhcp-on-stop is now dynamic-on-stop Signed-off-by: James Le Cuirot --- systemd/network/yy-pxe.network | 2 +- systemd/network/yy-vmware.network | 2 +- systemd/network/zz-default.network | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/systemd/network/yy-pxe.network b/systemd/network/yy-pxe.network index 76792c4..da4052e 100644 --- a/systemd/network/yy-pxe.network +++ b/systemd/network/yy-pxe.network @@ -6,7 +6,7 @@ KernelCommandLine=!root [Network] DHCP=yes -KeepConfiguration=dhcp-on-stop +KeepConfiguration=dynamic-on-stop IPv6AcceptRA=true [DHCP] diff --git a/systemd/network/yy-vmware.network b/systemd/network/yy-vmware.network index 2d780a1..56d8c34 100644 --- a/systemd/network/yy-vmware.network +++ b/systemd/network/yy-vmware.network @@ -5,7 +5,7 @@ Driver=!veth [Network] DHCP=yes -KeepConfiguration=dhcp-on-stop +KeepConfiguration=dynamic-on-stop IPv6AcceptRA=true [DHCP] diff --git a/systemd/network/zz-default.network b/systemd/network/zz-default.network index 451e031..ac7fa9a 100644 --- a/systemd/network/zz-default.network +++ b/systemd/network/zz-default.network @@ -1,6 +1,6 @@ [Network] DHCP=yes -KeepConfiguration=dhcp-on-stop +KeepConfiguration=dynamic-on-stop IPv6AcceptRA=true [Match] From c8fedb997e6a9ecbd592ed5ce8c68c7e6e15de62 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Wed, 1 Jul 2026 15:38:30 +0100 Subject: [PATCH 3/3] systemd: Be consistent and complete in excluding virtual NICs Only virtual NICs have a Kind, so just exclude all of them by wildcard instead of explicitly naming them. systemd.netdev(5) says there are currently 37 of them! These include the Drivers and Types we were previously excluding, apart from loopback. Signed-off-by: James Le Cuirot --- systemd/network/yy-pxe.network | 8 ++++---- systemd/network/yy-vmware.network | 5 +++-- systemd/network/zz-default.network | 11 +++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/systemd/network/yy-pxe.network b/systemd/network/yy-pxe.network index da4052e..77f2ae2 100644 --- a/systemd/network/yy-pxe.network +++ b/systemd/network/yy-pxe.network @@ -1,7 +1,7 @@ [Match] -Name=* -Type=!loopback bridge tunnel vxlan wireguard -Driver=!veth dummy +# Only virtual NICs have a Kind, and we want to exclude those. +Kind=!?* +Type=!loopback KernelCommandLine=!root [Network] @@ -10,6 +10,6 @@ KeepConfiguration=dynamic-on-stop IPv6AcceptRA=true [DHCP] -ClientIdentifier=mac UseMTU=true UseDomains=true +ClientIdentifier=mac diff --git a/systemd/network/yy-vmware.network b/systemd/network/yy-vmware.network index 56d8c34..d37de83 100644 --- a/systemd/network/yy-vmware.network +++ b/systemd/network/yy-vmware.network @@ -1,7 +1,8 @@ [Match] +# Only virtual NICs have a Kind, and we want to exclude those. +Kind=!?* +Type=!loopback Virtualization=vmware -Type=!loopback dummy bridge tunnel vxlan wireguard -Driver=!veth [Network] DHCP=yes diff --git a/systemd/network/zz-default.network b/systemd/network/zz-default.network index ac7fa9a..c23604d 100644 --- a/systemd/network/zz-default.network +++ b/systemd/network/zz-default.network @@ -1,14 +1,13 @@ +[Match] +# Only virtual NICs have a Kind, and we want to exclude those. +Kind=!?* +Type=!loopback + [Network] DHCP=yes KeepConfiguration=dynamic-on-stop IPv6AcceptRA=true -[Match] -Name=* -Type=!loopback bridge tunnel vxlan wireguard -Driver=!veth tun dummy -Kind=!tun bridge gre veth wireguard - [DHCP] UseMTU=true UseDomains=true