Hi Nick, Thanks for looking into this, let me explain this in more details.
This is an issue reported by one of our customers, in their environment when they first boot the live-server ISO, they do not run DHCP, instead, they pass network info via the kernel cmdline. So the system is able to get further build/deployment instructions from network. They follow the cloud-init docs to check the exit code and decide if everything is correct (exit code: 0) and then continue their process, this is where they hit this issue. Currently they workaround it by adding a handle for "exit code 2" from cloud-init to let it continue, so the network is also working properly even though cloud-init returns 2. But we should follow the cloud-init doc to return the correct exit code, in case anyone else also checks the return status in the future in their process. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to initramfs-tools in Ubuntu. https://bugs.launchpad.net/bugs/2093164 Title: initramfs-tools generates deprecated netplan config gateway4 and gateway6 Status in initramfs-tools package in Ubuntu: Fix Released Status in initramfs-tools source package in Focal: Triaged Status in initramfs-tools source package in Jammy: Triaged Status in initramfs-tools source package in Noble: In Progress Status in initramfs-tools source package in Oracular: In Progress Status in initramfs-tools source package in Plucky: Fix Released Bug description: [Impact] According to netplan doc https://netplan.readthedocs.io/en/latest/netplan-yaml gateway4/gateway6 are deprecated and the first version deprecates these fields is 0.103, it should use "routes:" instead. In scripts/functions:_render_netplan, it still generates the deprecated fields in /run/netplan/xxx.yaml: if [ -n "$gateway4" ]; then echo " gateway4: \"$gateway4\"" fi if [ -n "$gateway6" ]; then echo " gateway6: \"$gateway6\"" fi Then casper copies this config to root filesystem and later on used by cloud-init: https://git.launchpad.net/ubuntu/+source/casper/tree/scripts/casper-bottom/58server_network?h=applied/ubuntu/noble-updates#n47 In this case, cloud-init returns 2 (success with recoverable errors) rather than '0' (success) We should modify these fields to use "routes:" based on netplan doc: https://netplan.readthedocs.io/en/latest/netplan-yaml/#default-routes [Test Case] To verify if it generates the correct netplan config, we can specify ip related config in kernel cmdline in grub menu and check the yaml file in /run/netplan/ Steps to reproduce the netplan config: 1. launch a test VM in lxd 2. go into grub menu 3. pass ip related info to kernel cmdline, e.g. ip=10.194.146.91::10.194.146.1:255.255.255.0::::10.194.146.1 4. boot into system and check /run/netplan/xxx.yaml Originally, it generates something like: cat /run/netplan/enp5s0.yaml network: version: 2 ethernets: enp5s0: addresses: - "10.194.146.91/24" gateway4: "10.194.146.1" nameservers: addresses: ["10.194.146.1"] After the patch, it generates something like: cat /run/netplan/enp5s0.yaml network: version: 2 ethernets: enp5s0: addresses: - "10.194.146.91/24" routes: - to: default via: "10.194.146.1" nameservers: addresses: ["10.194.146.1"] [Where problems could occur] This patch follows the netplan doc to use "routes:" for default gateway, so network connectivity will be impacted on regressions. We should ensure that networking and routing works correctly, e.g. with a basic networking smoke test. [Other Info] https://bugs.launchpad.net/cloud-init/+bug/1992512 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/2093164/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp