Cloud-init has for some time relied on walinuxagent to do some bits
of work necessary for instance initialization. That reliance has
not been needed for a while, but we have still defaulted to it.
This change uses the "builtin" path that Daniel Watkins added
some time ago by default.
systemd: cloud-init-local use RequiresMountsFor=/var/lib/cloud
While cloud-init writes its data to /var/lib/cloud, we
previously lazily added RequiresMountsFor=/var/lib . It is more correct
to list the more complete path.
cloud-init.service cannot currently run
After=systemd-networkd-wait-online.service
as systemd-networkd.service is After dbus.service, but
cloud-init.service is:
Before=sysinit.target
and sysinit.target is before dbus.service.
The result is that we are temporarily preferring for cases
where there is systemd-networkd in place to have cloud-init.service run
without networking properly configured.
systemd: cloud-init-local change Before basic to sysinit
sysinit.target happens earlier in boot than basic.target.
cloud-init-local.service had:
Before=basic.target
but cloud-init.service had:
After=cloud-init-local.service
Before=sysinit.target
The result was that cloud-init-local.service was indirectly
Before sysinit.target anyway, so this change is just to more
specifically state that.
pep8: fix style errors reported by pycodestyle 2.1.0
pycodestyle 2.1.0 is in Ubuntu zesty, and complained about the
changes made here. Simple style changes. This makes 'make pep8'
pass again when built in a zesty build system with proposed enabled.
systemd: drop both Wants and After local-fs.target
Drop mention of local-fs.target from both cloud-init-local.service
and cloud-init.service. This could actually could cause a loop in
ordering due to cc_mounts writing mount points with:
x-systemd.requires=cloud-init.service
Rather, we specifically list /var/lib/ and systemd-remount-fs.service
in cloud-init-local.service. cloud-init.service will run after
cloud-init-local and thus will have these satisfied.
Here we drop the Requires=networking.service but keep the
After=networking.service. The change there is that we no longer
force networking.service to run, as the system may not have it or
be configured to use it.
Second, we add After=systemd-networkd-wait-online.service.
That causes us to run after systemd-networkd has brought networking
up.
The end result is that we now run after both ifupdown or
systemd-networkd (if they were going to run) but do not force either
to run.
One other change is that by dropping Requires=networking.service
cloud-init will now run even if networking failed to come up.
systemd: replace Before=basic.target, dbus.target with sysinit.target
Per discussion on bug 1636912 and subsequent feedback on bug 1629797,
using:
Before=sysinit.target
is a simpler solution than what we had implemented:
Before=basic.target
Before=dbus.target