*** This bug is a duplicate of bug 2113797 ***
    https://bugs.launchpad.net/bugs/2113797

Public bug reported:

In cloud-init 25.1.2, changed systemd-related packaging from /lib TO /usr/lib
which was suggested by lintian packaging warnings.[1]

This change though is incompatible with debhelper version 13.6ubuntu1 in
Jammy which now no longer "sees" cloud-init's systemd
units/services/target and doesn't inject the same debhelper enablement
script segments  for all of cloud-init services. This results in
inability to launch any VMs on Jammy as cloud-init services are all
disabled/insactive despite ds-indentify correctly identifying the
platform.

This behavior was seen in MAAS Jammy images being unable to get to
network with cloud-init 25.1.2 per this comment[2]. on a somewhat
related MAAS bug about early boot on Jammy.


This regression was caused by the single commit:
https://github.com/canonical/cloud-init/commit/0547349214fcfb827e58c1de5e4ad7d23d08cc7f


With the above change, the binary installed by cloud-init 25.1.2 will not 
enable any cloud-init services because cloud-init.postinst lacks all the 
following debhelper enablement scripts:


# Automatically added by dh_installsystemd/13.6ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = 
"abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
        # This will only remove masks created by d-s-h on package removal.
        deb-systemd-helper unmask 'cloud-config.service' >/dev/null || true

        # was-enabled defaults to true, so new installations run enable.
        if deb-systemd-helper --quiet was-enabled 'cloud-config.service'; then
                # Enables the unit on first installation, creates new
                # symlinks on upgrades if the unit file has changed.
                deb-systemd-helper enable 'cloud-config.service' >/dev/null || 
true
        else
                # Update the statefile to add new symlinks (if any), which need 
to be
                # cleaned up on purge. Also remove old symlinks.
                deb-systemd-helper update-state 'cloud-config.service' 
>/dev/null || true
        fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/13.6ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = 
"abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
        # This will only remove masks created by d-s-h on package removal.
        deb-systemd-helper unmask 'cloud-final.service' >/dev/null || true

        # was-enabled defaults to true, so new installations run enable.
        if deb-systemd-helper --quiet was-enabled 'cloud-final.service'; then
                # Enables the unit on first installation, creates new
                # symlinks on upgrades if the unit file has changed.
                deb-systemd-helper enable 'cloud-final.service' >/dev/null || 
true
        else
                # Update the statefile to add new symlinks (if any), which need 
to be
                # cleaned up on purge. Also remove old symlinks.
                deb-systemd-helper update-state 'cloud-final.service' 
>/dev/null || true
        fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/13.6ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = 
"abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
        # This will only remove masks created by d-s-h on package removal.
        deb-systemd-helper unmask 'cloud-init-hotplugd.socket' >/dev/null || 
true

        # was-enabled defaults to true, so new installations run enable.
        if deb-systemd-helper --quiet was-enabled 'cloud-init-hotplugd.socket'; 
then
                # Enables the unit on first installation, creates new
                # symlinks on upgrades if the unit file has changed.
                deb-systemd-helper enable 'cloud-init-hotplugd.socket' 
>/dev/null || true
        else
                # Update the statefile to add new symlinks (if any), which need 
to be
                # cleaned up on purge. Also remove old symlinks.
                deb-systemd-helper update-state 'cloud-init-hotplugd.socket' 
>/dev/null || true
        fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/13.6ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = 
"abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
        # This will only remove masks created by d-s-h on package removal.
        deb-systemd-helper unmask 'cloud-init-local.service' >/dev/null || true

        # was-enabled defaults to true, so new installations run enable.
        if deb-systemd-helper --quiet was-enabled 'cloud-init-local.service'; 
then
                # Enables the unit on first installation, creates new
                # symlinks on upgrades if the unit file has changed.
                deb-systemd-helper enable 'cloud-init-local.service' >/dev/null 
|| true
        else
                # Update the statefile to add new symlinks (if any), which need 
to be
                # cleaned up on purge. Also remove old symlinks.
                deb-systemd-helper update-state 'cloud-init-local.service' 
>/dev/null || true
        fi
fi
# End automatically added section
# Automatically added by dh_installsystemd/13.6ubuntu1
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = 
"abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
        # This will only remove masks created by d-s-h on package removal.
        deb-systemd-helper unmask 'cloud-init.service' >/dev/null || true

        # was-enabled defaults to true, so new installations run enable.
        if deb-systemd-helper --quiet was-enabled 'cloud-init.service'; then
                # Enables the unit on first installation, creates new
                # symlinks on upgrades if the unit file has changed.
                deb-systemd-helper enable 'cloud-init.service' >/dev/null || 
true
        else
                # Update the statefile to add new symlinks (if any), which need 
to be
                # cleaned up on purge. Also remove old symlinks.
                deb-systemd-helper update-state 'cloud-init.service' >/dev/null 
|| true
        fi
fi
# End automatically added section



References:

[1] Upstream cloud-init change doc
https://cloudinit.readthedocs.io/en/latest/reference/breaking_changes.html#id2

[2] MAAS image launch failures
https://bugs.launchpad.net/maas/+bug/2106671/comments/21

** Affects: cloud-init (Ubuntu)
     Importance: Critical
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2113825

Title:
  Jammy: 25.1.2 clean images do not enable cloud-init services due to
  /lib/systemd packaging change

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/2113825/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to