Comment 24 for bug 2008952

Revision history for this message
Chad Smith (chad.smith) wrote :

Short-term solution here will likely be for livecd-rootfs to augment cloud-init.service which drops `Before=sysinit.target` and adds an `After=NetworkManager-wait-online.service`. This is quite a bit like what redhat and derivatives have done for a while. Redhat and derivitatives have an `After=NetworkManager.service` for cloud-init.service config and no `Before=sysinit.target`. Suse injects an `After=dbus.service` which also puts it at the same boot timeframe as NetworkManager-based environments.[1]

It does mean that cloud-init datasource gets detected a couple seconds later in boot, meaning that any service depending on `/run/cloud-init/instance-data.json` will also get delayed a couple of seconds, but doesn't delay overall boot process.

Long-term solution may be to see if we can improve NetworkManager dependency on dbus.service so that it could support late-bind interaction once dbus.socket comes online.

References:
[1] upstream suse/redhat cloud-init.service configuration NetworkManager/dbus ordering https://github.com/canonical/cloud-init/blob/main/systemd/cloud-init.service.tmpl#L19-L27