support network configuration for lxd 2.3

Bug #1640556 reported by Scott Moser
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cloud-init
Fix Released
Medium
Stéphane Graber
cloud-init (Ubuntu)
Fix Released
Medium
Unassigned
Xenial
Fix Released
Medium
Unassigned

Bug Description

=== Begin SRU Template ===
[Impact]
Support for lxd configuration of networking does not work with lxd 2.3+ as
the current path for configuration in cloud-init uses debconf but newer
lxd does not support configuration that way.

Prior to LXD 2.3, the bridge configuration was done through distro
packaging. With 2.3 and higher, this is now done inside LXD itself, so we
need to use "lxc network" with 2.3 and higher.

All the old code has been thrown out so LXD 2.3 doesn't have any debconf
templates and doesn't manage the lxd bridge itself. LXD 2.3 packaging does
ship a script which will convert existing users in place, so folks
upgrading shouldn't actually notice anything except that
/etc/default/lxd-bridge will disappear and they'll need to use
  "lxc network edit lxdbr0"
to configure any extra thing.

[Test Case]
 * Prepare an image with updated cloud-init from proposed.
 * start instance with user-data like:
   #cloud-config
   lxd:
     bridge:
       mode: new
       name: lxdbr1
       ipv4_address: 10.5.0.1
       ipv4_netmask: 24
       ipv4_nat: true

 * wait for system to boot, check that lxdbr1 is configured as expected.
   # ip addr show dev lxdbr1
   2: lxdbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
      UNKNOWN group default qlen 1000
    link/ether 2e:f8:cc:5f:57:81 brd ff:ff:ff:ff:ff:ff
    inet 10.5.0.1/24 scope global lxdbr1
       valid_lft forever preferred_lft forever
    inet6 fe80::2cf8:ccff:fe5f:5781/64 scope link
       valid_lft forever preferred_lft forever

[Regression Potential]
New codepath is taken based on prsence of /etc/default/lxd-bridge.
If that file was present and a newer version of lxd installed, then
we would take the wrong path.

[Other Info]
The upstream MP that this was added under can be seen at
 https://code.launchpad.net/~stgraber/cloud-init/+git/cloud-init/+merge/307127

=== End SRU Template ===

Added to trunk at https://code.launchpad.net/~stgraber/cloud-init/+git/cloud-init/+merge/307127
cloud-init in xenial should be able to configure an lxd 2.3 network also.

Scott Moser (smoser)
Changed in cloud-init (Ubuntu):
importance: Undecided → Medium
status: New → Fix Released
Changed in cloud-init (Ubuntu Xenial):
status: New → Confirmed
importance: Undecided → Medium
Revision history for this message
Scott Moser (smoser) wrote :

fixed in upstream commit 02f6c4bb8cef17b3fe04ef4dc1ef199e20aeb4d9

description: updated
Changed in cloud-init:
assignee: nobody → Stéphane Graber (stgraber)
importance: Undecided → Medium
status: New → Fix Committed
Revision history for this message
Steve Langasek (vorlon) wrote : Please test proposed package

Hello Scott, or anyone else affected,

Accepted cloud-init into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.8-47-gb6561a1-0ubuntu1~16.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in cloud-init (Ubuntu Xenial):
status: Confirmed → Fix Committed
tags: added: verification-needed
Revision history for this message
Steve Langasek (vorlon) wrote :

Hello Scott, or anyone else affected,

Accepted cloud-init into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/cloud-init/0.7.8-49-g9e904bb-0ubuntu1~16.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Revision history for this message
Scott Moser (smoser) wrote :

Verified.

cat > update <<"EOF"
#!/bin/sh
set -e
m=http://archive.ubuntu.com/ubuntu
rel=$(lsb_release -sc)
echo "deb $m $rel-proposed main" > /etc/apt/sources.list.d/proposed.list
grep -q "backports" /etc/apt/sources.list ||
   echo "deb $m $rel-backports main universe" > /etc/apt/sources.list.d/backports.list
apt-get update -q
apt-get install -qy cloud-init
if [ "$1" = "backports" ]; then
   apt-get install -qy -t $rel-backports lxd
fi
EOF

$ cat > user-data <<EOF
#cloud-config
lxd:
  bridge:
    mode: new
    name: lxdbr1
    ipv4_address: 10.5.0.1
    ipv4_netmask: 24
    ipv4_nat: true
  init:
    storage_backend: dir
EOF

$ lxc init ubuntu-daily:xenial x1 "--config=user.user-data=$(cat user-data)"
$ sudo mount-image-callback --system-resolvconf lxd:x1 -- chroot _MOUNTPOINT_ /bin/sh -s backports <update
$ lxc start x1
$ sleep 10

$ lxc exec x1 ip addr show dev lxdbr1
2: lxdbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether ee:0b:ab:b3:4e:9a brd ff:ff:ff:ff:ff:ff
    inet 10.5.0.1/24 scope global lxdbr1
       valid_lft forever preferred_lft forever
    inet6 fe80::ec0b:abff:feb3:4e9a/64 scope link
       valid_lft forever preferred_lft forever

tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.0 KiB)

This bug was fixed in the package cloud-init - 0.7.8-49-g9e904bb-0ubuntu1~16.04.1

---------------
cloud-init (0.7.8-49-g9e904bb-0ubuntu1~16.04.1) xenial-proposed; urgency=medium

  * debian/cloud-init.postinst: update /etc/fstab on Azure to fix
    future resize operations. (LP: #1611074)
  * New upstream snapshot.
    - Add activate_datasource, for datasource specific code paths.
      (LP: #1611074)
    - systemd: cloud-init-local use RequiresMountsFor=/var/lib/cloud
      (LP: #1642062)

cloud-init (0.7.8-47-gb6561a1-0ubuntu1~16.04.1) xenial-proposed; urgency=medium

  * debian/cloud-init.templates: enable DigitalOcean by default [Ben Howard]
  * New upstream snapshot.
    - systemd/cloud-init-local.service:
      + replace 'Wants' and 'After' on local-fs.target with more granular
        After=systemd-remount-fs.service and RequiresMountsFor=/var/lib
        and Before=sysinit.target.
        This is done run sufficiently early enough to update /etc/fstab.
        (LP: #1611074)
      + add Before=NetworkManager.service so that cloud-init can render
        NetworkManager network config before it would apply them.
    - systemd/cloud-init.service:
      + add Before=sysinit.target and DefaultDependencies=no (LP: #1611074)
      + drop Requires=networking.service to work where networking.service is
        not needed.
      + add Conflicts=shutdown.target
      + drop unnecessary Wants=local-fs.target
    - net: support reading ipv6 dhcp config from initramfs [LaMont Jones]
      (LP: #1621615)
    - dmidecode: Allow dmidecode to be used on aarch64, and only attempt
      usage on x86, x86_64, and aarch64. [Robert Schweikert]
    - disk-config: udev settle after partitioning in gpt format.
      (LP: #1626243)
    - Add support for snap create-user on Ubuntu Core images. [Ryan Harper]
      (LP: #1619393)
    - Fix sshd restarts for rhel distros. [Jim Gorz]
    - Move user/group functions to new ug_util file [Joshua Harlow]
    - update Gentoo initscripts to run in the correct order [Matthew Thode]
    - MAAS: improve the debugging tool in datasource to consider
      config provided on kernel cmdline.
    - lxd: Update network config for LXD 2.3 [Stéphane Graber] (LP: #1640556)
    - Decode unicode types in decode_binary [Robert Schweikert]
    - Allow ephemeral drive to be unpartitioned [Paul Meyer]
    - subp: add 'update_env' argument which allows for more easily adding
      environment variables to a subprocess call.
    - Adjust mounts and disk configuration for systemd. (LP: #1611074)
    - DataSources:
      + Ec2: protect against non-dictionary in block-device-mapping.
      + AliYun: Add new datasource for Ali-Cloud ECS, that is
        available but not enabled by default [kaihuan.pkh]
      + DigitalOcean: use meta-data for network configuration and
        enable data source by default. [Ben Howard]
      + OpenNebula: replace parsing of 'ip' command with similar function
        available in cloudinit.net. This fixed unit tests when running
        in environment with no networking.
    - doc changes:
      + Add documentation on stages of boot.
      + make the RST files consistently formated and other improvements.
     ...

Read more...

Changed in cloud-init (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Adam Conrad (adconrad) wrote : Update Released

The verification of the Stable Release Update for cloud-init has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Scott Moser (smoser) wrote :

This is believed fixed in 0.7.9

Changed in cloud-init:
status: Fix Committed → Fix Released
Revision history for this message
James Falcon (falcojr) wrote :
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.