Activity log for bug #1675576

Date Who What changed Old value New value Message
2017-03-23 22:03:17 Ryan Harper bug added bug
2017-03-28 17:28:42 Scott Moser description 1. Zesty 2. 0.7.9-68-gef18b8ac-0ubuntu1 3. cloud-init with network configuration rendering to netplan config has exclusive control over networkd configuration 4. On images with existing netplan configuration (UC16 has an /etc/netplan/00-snapd-config.yaml); netplan generator will parse and write out networkd config to /run/systemd/network/10-netplan-* These files may collide with network-configuration provided to cloud-init which has been configured to render netplan. cloud-init should employ a 'maybe-delete' like function in the netplan renderer to a) remove /etc/netplan/00-snapd-config.yaml # this is the only known content at this time b) remove /run/systemd/network/10-netplan* # files generated from (a) c) remove /run/systemd/generator/netplan.stamp # prevents new invocations of netplan generate Once these are removed, cloud-init netplan renderer may write out netplan config, and invoke netplan generate successfully. raharper@localhost:~$ find /etc/netplan /run/systemd/network /etc/netplan /etc/netplan/00-snapd-config.yaml /run/systemd/network /run/systemd/network/10-netplan-all-en.network /run/systemd/network/10-netplan-all-eth.network raharper@localhost:~$ ls -al /run/systemd/generator/netplan.stamp -rw-r--r-- 1 root root 0 Mar 23 21:58 /run/systemd/generator/netplan.stamp 1. Zesty 2. 0.7.9-68-gef18b8ac-0ubuntu1 3. cloud-init with network configuration rendering to netplan config has exclusive control over networkd configuration 4. On images with existing netplan configuration (UC16 has an /etc/netplan/00-snapd-config.yaml); netplan generator will parse and write out networkd config to /run/systemd/network/10-netplan-* These files may collide with network-configuration provided to cloud-init which has been configured to render netplan. cloud-init should employ a 'maybe-delete' like function in the eni renderer to a) remove /etc/netplan/00-snapd-config.yaml # this is the only known content at this time b) remove /run/systemd/network/10-netplan* # files generated from (a) c) remove /run/systemd/generator/netplan.stamp # prevents new invocations of netplan generate Once these are removed, cloud-init netplan renderer may write out netplan config, and invoke netplan generate successfully. raharper@localhost:~$ find /etc/netplan /run/systemd/network /etc/netplan /etc/netplan/00-snapd-config.yaml /run/systemd/network /run/systemd/network/10-netplan-all-en.network /run/systemd/network/10-netplan-all-eth.network raharper@localhost:~$ ls -al /run/systemd/generator/netplan.stamp -rw-r--r-- 1 root root 0 Mar 23 21:58 /run/systemd/generator/netplan.stamp
2017-03-29 20:50:38 Scott Moser cloud-init (Ubuntu): status New Confirmed
2017-03-29 20:50:42 Scott Moser cloud-init (Ubuntu): importance Undecided High
2017-03-29 20:50:45 Scott Moser cloud-init (Ubuntu): assignee Scott Moser (smoser)
2017-03-29 20:50:56 Scott Moser bug task added cloud-init
2017-03-30 17:08:49 Launchpad Janitor merge proposal linked https://code.launchpad.net/~smoser/cloud-init/+git/cloud-init/+merge/321471
2017-03-30 20:12:19 Scott Moser cloud-init: status New Confirmed
2017-03-30 20:12:25 Scott Moser cloud-init: importance Undecided Medium
2017-03-31 11:51:03 Launchpad Janitor cloud-init (Ubuntu): status Confirmed Fix Released
2017-03-31 20:09:06 Scott Moser cloud-init: status Confirmed Fix Committed
2017-04-03 16:16:53 Scott Moser nominated for series Ubuntu Yakkety
2017-04-03 16:16:53 Scott Moser bug task added cloud-init (Ubuntu Yakkety)
2017-04-03 16:16:53 Scott Moser nominated for series Ubuntu Xenial
2017-04-03 16:16:53 Scott Moser bug task added cloud-init (Ubuntu Xenial)
2017-04-03 16:17:23 Scott Moser cloud-init (Ubuntu Xenial): status New Confirmed
2017-04-03 16:17:25 Scott Moser cloud-init (Ubuntu Yakkety): status New Confirmed
2017-04-03 16:17:28 Scott Moser cloud-init (Ubuntu Xenial): importance Undecided Medium
2017-04-03 16:17:29 Scott Moser cloud-init (Ubuntu Yakkety): importance Undecided Medium
2017-04-04 14:48:39 Scott Moser description 1. Zesty 2. 0.7.9-68-gef18b8ac-0ubuntu1 3. cloud-init with network configuration rendering to netplan config has exclusive control over networkd configuration 4. On images with existing netplan configuration (UC16 has an /etc/netplan/00-snapd-config.yaml); netplan generator will parse and write out networkd config to /run/systemd/network/10-netplan-* These files may collide with network-configuration provided to cloud-init which has been configured to render netplan. cloud-init should employ a 'maybe-delete' like function in the eni renderer to a) remove /etc/netplan/00-snapd-config.yaml # this is the only known content at this time b) remove /run/systemd/network/10-netplan* # files generated from (a) c) remove /run/systemd/generator/netplan.stamp # prevents new invocations of netplan generate Once these are removed, cloud-init netplan renderer may write out netplan config, and invoke netplan generate successfully. raharper@localhost:~$ find /etc/netplan /run/systemd/network /etc/netplan /etc/netplan/00-snapd-config.yaml /run/systemd/network /run/systemd/network/10-netplan-all-en.network /run/systemd/network/10-netplan-all-eth.network raharper@localhost:~$ ls -al /run/systemd/generator/netplan.stamp -rw-r--r-- 1 root root 0 Mar 23 21:58 /run/systemd/generator/netplan.stamp === Begin SRU Template === [Impact] Writing netplan configuration during cloud-init's local phase does not work properly. This is because there is stale configuration from the default installed files in a Ubuntu core image. The change to cloud-initn was to clean those up so that it could invoke netplan apply. [Test Case] Unit tests were added that excercise this code, full functional test would run through ubuntu core. To do this on ubuntu cloud images we will simulate. lxc-proposed-snapshot is https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot It publishes an image to lxd with proposed enabled and cloud-init upgraded. $ release=xenial $ ref=$release-proposed $ lxc-proposed-snapshot --proposed --publish $release $ref $ lxc init $ref $name $ cat > 00-snapd-config.yaml <<"EOF" # This is the initial network config. # It can be overwritten by cloud-init or console-conf. network: version: 2 ethernets: all-en: match: name: "en*" dhcp4: true all-eth: match: name: "eth*" dhcp4: true EOF $ echo 'system_info: {network: {renderers: ["netplan"]}}' | lxc file push - $name/etc/cloud/cloud.cfg.d/99-renderers.cfg $ lxc file push 00-snapd-config.yaml $name/etc/netplan/00-snapd-config.yaml $ lxc start $name $ sleep 10 $ lxc exec $name ls /etc/netplan/00-snapd-config.yaml ls: cannot access '/etc/netplan/00-snapd-config.yaml': No such file or directory $ grep removing /var/log/cloud-init.log 2017-04-04 14:38:18,303 - netplan.py[DEBUG]: removing known config '/etc/netplan/00-snapd-config.yaml' and derived existing files: ['/run/systemd/network/10-netplan-all-en.network', '/run/systemd/network/10-netplan-all-eth.network', '/run/systemd/generator/netplan.stamp'] lxc # you can see networkd set up the links with $ lxc exec $name ip a $ lxc exec $name systemctl status systemd-networkd --no-pager --full [Regression Potential] This code could delete a users netplan config incorrectly. That is protected against the config being *exactly* as shown above, and also named exactly as above. === End SRU Template === 1. Zesty 2. 0.7.9-68-gef18b8ac-0ubuntu1 3. cloud-init with network configuration rendering to netplan config has exclusive control over networkd configuration 4. On images with existing netplan configuration (UC16 has an /etc/netplan/00-snapd-config.yaml); netplan generator will parse and write out networkd config to /run/systemd/network/10-netplan-* These files may collide with network-configuration provided to cloud-init which has been configured to render netplan. cloud-init should employ a 'maybe-delete' like function in the eni renderer to a) remove /etc/netplan/00-snapd-config.yaml # this is the only known content at this time b) remove /run/systemd/network/10-netplan* # files generated from (a) c) remove /run/systemd/generator/netplan.stamp # prevents new invocations of netplan generate Once these are removed, cloud-init netplan renderer may write out netplan config, and invoke netplan generate successfully. raharper@localhost:~$ find /etc/netplan /run/systemd/network /etc/netplan /etc/netplan/00-snapd-config.yaml /run/systemd/network /run/systemd/network/10-netplan-all-en.network /run/systemd/network/10-netplan-all-eth.network raharper@localhost:~$ ls -al /run/systemd/generator/netplan.stamp -rw-r--r-- 1 root root 0 Mar 23 21:58 /run/systemd/generator/netplan.stamp
2017-04-10 22:26:38 Brian Murray cloud-init (Ubuntu Yakkety): status Confirmed Fix Committed
2017-04-10 22:26:40 Brian Murray bug added subscriber Ubuntu Stable Release Updates Team
2017-04-10 22:26:45 Brian Murray bug added subscriber SRU Verification
2017-04-10 22:26:49 Brian Murray tags uc16 uc16 verification-needed
2017-04-10 22:48:34 Brian Murray cloud-init (Ubuntu Xenial): status Confirmed Fix Committed
2017-04-14 17:11:03 Scott Moser description === Begin SRU Template === [Impact] Writing netplan configuration during cloud-init's local phase does not work properly. This is because there is stale configuration from the default installed files in a Ubuntu core image. The change to cloud-initn was to clean those up so that it could invoke netplan apply. [Test Case] Unit tests were added that excercise this code, full functional test would run through ubuntu core. To do this on ubuntu cloud images we will simulate. lxc-proposed-snapshot is https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot It publishes an image to lxd with proposed enabled and cloud-init upgraded. $ release=xenial $ ref=$release-proposed $ lxc-proposed-snapshot --proposed --publish $release $ref $ lxc init $ref $name $ cat > 00-snapd-config.yaml <<"EOF" # This is the initial network config. # It can be overwritten by cloud-init or console-conf. network: version: 2 ethernets: all-en: match: name: "en*" dhcp4: true all-eth: match: name: "eth*" dhcp4: true EOF $ echo 'system_info: {network: {renderers: ["netplan"]}}' | lxc file push - $name/etc/cloud/cloud.cfg.d/99-renderers.cfg $ lxc file push 00-snapd-config.yaml $name/etc/netplan/00-snapd-config.yaml $ lxc start $name $ sleep 10 $ lxc exec $name ls /etc/netplan/00-snapd-config.yaml ls: cannot access '/etc/netplan/00-snapd-config.yaml': No such file or directory $ grep removing /var/log/cloud-init.log 2017-04-04 14:38:18,303 - netplan.py[DEBUG]: removing known config '/etc/netplan/00-snapd-config.yaml' and derived existing files: ['/run/systemd/network/10-netplan-all-en.network', '/run/systemd/network/10-netplan-all-eth.network', '/run/systemd/generator/netplan.stamp'] lxc # you can see networkd set up the links with $ lxc exec $name ip a $ lxc exec $name systemctl status systemd-networkd --no-pager --full [Regression Potential] This code could delete a users netplan config incorrectly. That is protected against the config being *exactly* as shown above, and also named exactly as above. === End SRU Template === 1. Zesty 2. 0.7.9-68-gef18b8ac-0ubuntu1 3. cloud-init with network configuration rendering to netplan config has exclusive control over networkd configuration 4. On images with existing netplan configuration (UC16 has an /etc/netplan/00-snapd-config.yaml); netplan generator will parse and write out networkd config to /run/systemd/network/10-netplan-* These files may collide with network-configuration provided to cloud-init which has been configured to render netplan. cloud-init should employ a 'maybe-delete' like function in the eni renderer to a) remove /etc/netplan/00-snapd-config.yaml # this is the only known content at this time b) remove /run/systemd/network/10-netplan* # files generated from (a) c) remove /run/systemd/generator/netplan.stamp # prevents new invocations of netplan generate Once these are removed, cloud-init netplan renderer may write out netplan config, and invoke netplan generate successfully. raharper@localhost:~$ find /etc/netplan /run/systemd/network /etc/netplan /etc/netplan/00-snapd-config.yaml /run/systemd/network /run/systemd/network/10-netplan-all-en.network /run/systemd/network/10-netplan-all-eth.network raharper@localhost:~$ ls -al /run/systemd/generator/netplan.stamp -rw-r--r-- 1 root root 0 Mar 23 21:58 /run/systemd/generator/netplan.stamp === Begin SRU Template === [Impact] Writing netplan configuration during cloud-init's local phase does not work properly. This is because there is stale configuration from the default installed files in a Ubuntu core image. The change to cloud-initn was to clean those up so that it could invoke netplan apply. [Test Case] Unit tests were added that excercise this code, full functional test would run through ubuntu core. To do this on ubuntu cloud images we will simulate. lxc-proposed-snapshot is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot It publishes an image to lxd with proposed enabled and cloud-init upgraded. $ release=xenial $ ref=$release-proposed $ lxc-proposed-snapshot --proposed --publish $release $ref $ lxc init $ref $name $ cat > 00-snapd-config.yaml <<"EOF" # This is the initial network config. # It can be overwritten by cloud-init or console-conf. network:     version: 2     ethernets:         all-en:             match:                 name: "en*"             dhcp4: true         all-eth:             match:                 name: "eth*"             dhcp4: true EOF $ echo 'system_info: {network: {renderers: ["netplan"]}}' |    lxc file push -p - $name/etc/cloud/cloud.cfg.d/99-renderers.cfg $ lxc file push 00-snapd-config.yaml $name/etc/netplan/00-snapd-config.yaml $ lxc start $name $ sleep 10 $ lxc exec $name ls /etc/netplan/00-snapd-config.yaml ls: cannot access '/etc/netplan/00-snapd-config.yaml': No such file or directory $ grep removing /var/log/cloud-init.log 2017-04-04 14:38:18,303 - netplan.py[DEBUG]: removing known config '/etc/netplan/00-snapd-config.yaml' and derived existing files: ['/run/systemd/network/10-netplan-all-en.network', '/run/systemd/network/10-netplan-all-eth.network', '/run/systemd/generator/netplan.stamp'] lxc # you can see networkd set up the links with $ lxc exec $name ip a $ lxc exec $name systemctl status systemd-networkd --no-pager --full [Regression Potential] This code could delete a users netplan config incorrectly. That is protected against the config being *exactly* as shown above, and also named exactly as above. === End SRU Template === 1. Zesty 2. 0.7.9-68-gef18b8ac-0ubuntu1 3. cloud-init with network configuration rendering to netplan config has exclusive control over networkd configuration 4. On images with existing netplan configuration (UC16 has an /etc/netplan/00-snapd-config.yaml); netplan generator will parse and write out networkd config to /run/systemd/network/10-netplan-* These files may collide with network-configuration provided to cloud-init which has been configured to render netplan. cloud-init should employ a 'maybe-delete' like function in the eni renderer to a) remove /etc/netplan/00-snapd-config.yaml # this is the only known content at this time b) remove /run/systemd/network/10-netplan* # files generated from (a) c) remove /run/systemd/generator/netplan.stamp # prevents new invocations of netplan generate Once these are removed, cloud-init netplan renderer may write out netplan config, and invoke netplan generate successfully. raharper@localhost:~$ find /etc/netplan /run/systemd/network /etc/netplan /etc/netplan/00-snapd-config.yaml /run/systemd/network /run/systemd/network/10-netplan-all-en.network /run/systemd/network/10-netplan-all-eth.network raharper@localhost:~$ ls -al /run/systemd/generator/netplan.stamp -rw-r--r-- 1 root root 0 Mar 23 21:58 /run/systemd/generator/netplan.stamp
2017-04-14 17:24:30 Scott Moser description === Begin SRU Template === [Impact] Writing netplan configuration during cloud-init's local phase does not work properly. This is because there is stale configuration from the default installed files in a Ubuntu core image. The change to cloud-initn was to clean those up so that it could invoke netplan apply. [Test Case] Unit tests were added that excercise this code, full functional test would run through ubuntu core. To do this on ubuntu cloud images we will simulate. lxc-proposed-snapshot is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot It publishes an image to lxd with proposed enabled and cloud-init upgraded. $ release=xenial $ ref=$release-proposed $ lxc-proposed-snapshot --proposed --publish $release $ref $ lxc init $ref $name $ cat > 00-snapd-config.yaml <<"EOF" # This is the initial network config. # It can be overwritten by cloud-init or console-conf. network:     version: 2     ethernets:         all-en:             match:                 name: "en*"             dhcp4: true         all-eth:             match:                 name: "eth*"             dhcp4: true EOF $ echo 'system_info: {network: {renderers: ["netplan"]}}' |    lxc file push -p - $name/etc/cloud/cloud.cfg.d/99-renderers.cfg $ lxc file push 00-snapd-config.yaml $name/etc/netplan/00-snapd-config.yaml $ lxc start $name $ sleep 10 $ lxc exec $name ls /etc/netplan/00-snapd-config.yaml ls: cannot access '/etc/netplan/00-snapd-config.yaml': No such file or directory $ grep removing /var/log/cloud-init.log 2017-04-04 14:38:18,303 - netplan.py[DEBUG]: removing known config '/etc/netplan/00-snapd-config.yaml' and derived existing files: ['/run/systemd/network/10-netplan-all-en.network', '/run/systemd/network/10-netplan-all-eth.network', '/run/systemd/generator/netplan.stamp'] lxc # you can see networkd set up the links with $ lxc exec $name ip a $ lxc exec $name systemctl status systemd-networkd --no-pager --full [Regression Potential] This code could delete a users netplan config incorrectly. That is protected against the config being *exactly* as shown above, and also named exactly as above. === End SRU Template === 1. Zesty 2. 0.7.9-68-gef18b8ac-0ubuntu1 3. cloud-init with network configuration rendering to netplan config has exclusive control over networkd configuration 4. On images with existing netplan configuration (UC16 has an /etc/netplan/00-snapd-config.yaml); netplan generator will parse and write out networkd config to /run/systemd/network/10-netplan-* These files may collide with network-configuration provided to cloud-init which has been configured to render netplan. cloud-init should employ a 'maybe-delete' like function in the eni renderer to a) remove /etc/netplan/00-snapd-config.yaml # this is the only known content at this time b) remove /run/systemd/network/10-netplan* # files generated from (a) c) remove /run/systemd/generator/netplan.stamp # prevents new invocations of netplan generate Once these are removed, cloud-init netplan renderer may write out netplan config, and invoke netplan generate successfully. raharper@localhost:~$ find /etc/netplan /run/systemd/network /etc/netplan /etc/netplan/00-snapd-config.yaml /run/systemd/network /run/systemd/network/10-netplan-all-en.network /run/systemd/network/10-netplan-all-eth.network raharper@localhost:~$ ls -al /run/systemd/generator/netplan.stamp -rw-r--r-- 1 root root 0 Mar 23 21:58 /run/systemd/generator/netplan.stamp === Begin SRU Template === [Impact] Writing netplan configuration during cloud-init's local phase does not work properly. This is because there is stale configuration from the default installed files in a Ubuntu core image. The change to cloud-initn was to clean those up so that it could invoke netplan apply. [Test Case] Unit tests were added that excercise this code, full functional test would run through ubuntu core. To do this on ubuntu cloud images we will simulate. lxc-proposed-snapshot is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot It publishes an image to lxd with proposed enabled and cloud-init upgraded. $ release=xenial $ ref=$release-proposed $ lxc-proposed-snapshot --proposed --publish $release $ref $ lxc init $ref $name $ cat > 00-snapd-config.yaml <<"EOF" # This is the initial network config. # It can be overwritten by cloud-init or console-conf. network:     version: 2     ethernets:         all-en:             match:                 name: "en*"             dhcp4: true         all-eth:             match:                 name: "eth*"             dhcp4: true EOF $ echo 'system_info: {network: {renderers: ["netplan"]}}' |    lxc file push -p - $name/etc/cloud/cloud.cfg.d/99-renderers.cfg $ lxc file push -p 00-snapd-config.yaml $name/etc/netplan/00-snapd-config.yaml $ lxc start $name $ sleep 10 $ lxc exec $name ls /etc/netplan/00-snapd-config.yaml ls: cannot access '/etc/netplan/00-snapd-config.yaml': No such file or directory $ grep removing /var/log/cloud-init.log 2017-04-04 14:38:18,303 - netplan.py[DEBUG]: removing known config '/etc/netplan/00-snapd-config.yaml' and derived existing files: ['/run/systemd/network/10-netplan-all-en.network', '/run/systemd/network/10-netplan-all-eth.network', '/run/systemd/generator/netplan.stamp'] lxc # you can see networkd set up the links with $ lxc exec $name ip a $ lxc exec $name systemctl status systemd-networkd --no-pager --full [Regression Potential] This code could delete a users netplan config incorrectly. That is protected against the config being *exactly* as shown above, and also named exactly as above. === End SRU Template === 1. Zesty 2. 0.7.9-68-gef18b8ac-0ubuntu1 3. cloud-init with network configuration rendering to netplan config has exclusive control over networkd configuration 4. On images with existing netplan configuration (UC16 has an /etc/netplan/00-snapd-config.yaml); netplan generator will parse and write out networkd config to /run/systemd/network/10-netplan-* These files may collide with network-configuration provided to cloud-init which has been configured to render netplan. cloud-init should employ a 'maybe-delete' like function in the eni renderer to a) remove /etc/netplan/00-snapd-config.yaml # this is the only known content at this time b) remove /run/systemd/network/10-netplan* # files generated from (a) c) remove /run/systemd/generator/netplan.stamp # prevents new invocations of netplan generate Once these are removed, cloud-init netplan renderer may write out netplan config, and invoke netplan generate successfully. raharper@localhost:~$ find /etc/netplan /run/systemd/network /etc/netplan /etc/netplan/00-snapd-config.yaml /run/systemd/network /run/systemd/network/10-netplan-all-en.network /run/systemd/network/10-netplan-all-eth.network raharper@localhost:~$ ls -al /run/systemd/generator/netplan.stamp -rw-r--r-- 1 root root 0 Mar 23 21:58 /run/systemd/generator/netplan.stamp
2017-04-14 17:31:49 Scott Moser description === Begin SRU Template === [Impact] Writing netplan configuration during cloud-init's local phase does not work properly. This is because there is stale configuration from the default installed files in a Ubuntu core image. The change to cloud-initn was to clean those up so that it could invoke netplan apply. [Test Case] Unit tests were added that excercise this code, full functional test would run through ubuntu core. To do this on ubuntu cloud images we will simulate. lxc-proposed-snapshot is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot It publishes an image to lxd with proposed enabled and cloud-init upgraded. $ release=xenial $ ref=$release-proposed $ lxc-proposed-snapshot --proposed --publish $release $ref $ lxc init $ref $name $ cat > 00-snapd-config.yaml <<"EOF" # This is the initial network config. # It can be overwritten by cloud-init or console-conf. network:     version: 2     ethernets:         all-en:             match:                 name: "en*"             dhcp4: true         all-eth:             match:                 name: "eth*"             dhcp4: true EOF $ echo 'system_info: {network: {renderers: ["netplan"]}}' |    lxc file push -p - $name/etc/cloud/cloud.cfg.d/99-renderers.cfg $ lxc file push -p 00-snapd-config.yaml $name/etc/netplan/00-snapd-config.yaml $ lxc start $name $ sleep 10 $ lxc exec $name ls /etc/netplan/00-snapd-config.yaml ls: cannot access '/etc/netplan/00-snapd-config.yaml': No such file or directory $ grep removing /var/log/cloud-init.log 2017-04-04 14:38:18,303 - netplan.py[DEBUG]: removing known config '/etc/netplan/00-snapd-config.yaml' and derived existing files: ['/run/systemd/network/10-netplan-all-en.network', '/run/systemd/network/10-netplan-all-eth.network', '/run/systemd/generator/netplan.stamp'] lxc # you can see networkd set up the links with $ lxc exec $name ip a $ lxc exec $name systemctl status systemd-networkd --no-pager --full [Regression Potential] This code could delete a users netplan config incorrectly. That is protected against the config being *exactly* as shown above, and also named exactly as above. === End SRU Template === 1. Zesty 2. 0.7.9-68-gef18b8ac-0ubuntu1 3. cloud-init with network configuration rendering to netplan config has exclusive control over networkd configuration 4. On images with existing netplan configuration (UC16 has an /etc/netplan/00-snapd-config.yaml); netplan generator will parse and write out networkd config to /run/systemd/network/10-netplan-* These files may collide with network-configuration provided to cloud-init which has been configured to render netplan. cloud-init should employ a 'maybe-delete' like function in the eni renderer to a) remove /etc/netplan/00-snapd-config.yaml # this is the only known content at this time b) remove /run/systemd/network/10-netplan* # files generated from (a) c) remove /run/systemd/generator/netplan.stamp # prevents new invocations of netplan generate Once these are removed, cloud-init netplan renderer may write out netplan config, and invoke netplan generate successfully. raharper@localhost:~$ find /etc/netplan /run/systemd/network /etc/netplan /etc/netplan/00-snapd-config.yaml /run/systemd/network /run/systemd/network/10-netplan-all-en.network /run/systemd/network/10-netplan-all-eth.network raharper@localhost:~$ ls -al /run/systemd/generator/netplan.stamp -rw-r--r-- 1 root root 0 Mar 23 21:58 /run/systemd/generator/netplan.stamp === Begin SRU Template === [Impact] Writing netplan configuration during cloud-init's local phase does not work properly. This is because there is stale configuration from the default installed files in a Ubuntu core image. The change to cloud-initn was to clean those up so that it could invoke netplan apply. [Test Case] Unit tests were added that excercise this code, full functional test would run through ubuntu core. To do this on ubuntu cloud images we will simulate. lxc-proposed-snapshot is   https://git.launchpad.net/~smoser/cloud-init/+git/sru-info/tree/bin/lxc-proposed-snapshot It publishes an image to lxd with proposed enabled and cloud-init upgraded. $ release=xenial $ ref=$release-proposed $ lxc-proposed-snapshot --proposed --publish $release $ref $ lxc init $ref $name $ cat > 00-snapd-config.yaml <<"EOF" # This is the initial network config. # It can be overwritten by cloud-init or console-conf. network:     version: 2     ethernets:         all-en:             match:                 name: "en*"             dhcp4: true         all-eth:             match:                 name: "eth*"             dhcp4: true EOF $ echo 'system_info: {network: {renderers: ["netplan"]}}' |    lxc file push -p - $name/etc/cloud/cloud.cfg.d/99-renderers.cfg $ lxc file push -p 00-snapd-config.yaml $name/etc/netplan/00-snapd-config.yaml # xenial does not have netplan, so trick the renderer search. $ ( set -x; lxc file pull $name/usr/sbin/netplan - >/dev/null || echo "" | lxc file push netplan $name/usr/sbin/netplan --mode=0755 ) $ lxc start $name $ sleep 10 $ lxc exec $name ls /etc/netplan/00-snapd-config.yaml ls: cannot access '/etc/netplan/00-snapd-config.yaml': No such file or directory $ grep removing /var/log/cloud-init.log 2017-04-04 14:38:18,303 - netplan.py[DEBUG]: removing known config '/etc/netplan/00-snapd-config.yaml' and derived existing files: ['/run/systemd/network/10-netplan-all-en.network', '/run/systemd/network/10-netplan-all-eth.network', '/run/systemd/generator/netplan.stamp'] lxc # In yakkety, you can see networkd set up the links with # In xenial, there is no netplan, so we assume broken networking. $ lxc exec $name ip a $ lxc exec $name systemctl status systemd-networkd --no-pager --full [Regression Potential] This code could delete a users netplan config incorrectly. That is protected against the config being *exactly* as shown above, and also named exactly as above. === End SRU Template === 1. Zesty 2. 0.7.9-68-gef18b8ac-0ubuntu1 3. cloud-init with network configuration rendering to netplan config has exclusive control over networkd configuration 4. On images with existing netplan configuration (UC16 has an /etc/netplan/00-snapd-config.yaml); netplan generator will parse and write out networkd config to /run/systemd/network/10-netplan-* These files may collide with network-configuration provided to cloud-init which has been configured to render netplan. cloud-init should employ a 'maybe-delete' like function in the eni renderer to a) remove /etc/netplan/00-snapd-config.yaml # this is the only known content at this time b) remove /run/systemd/network/10-netplan* # files generated from (a) c) remove /run/systemd/generator/netplan.stamp # prevents new invocations of netplan generate Once these are removed, cloud-init netplan renderer may write out netplan config, and invoke netplan generate successfully. raharper@localhost:~$ find /etc/netplan /run/systemd/network /etc/netplan /etc/netplan/00-snapd-config.yaml /run/systemd/network /run/systemd/network/10-netplan-all-en.network /run/systemd/network/10-netplan-all-eth.network raharper@localhost:~$ ls -al /run/systemd/generator/netplan.stamp -rw-r--r-- 1 root root 0 Mar 23 21:58 /run/systemd/generator/netplan.stamp
2017-04-14 17:35:19 Scott Moser tags uc16 verification-needed uc16 verification-done-xenial verification-done-yakkety
2017-04-20 19:33:34 Launchpad Janitor cloud-init (Ubuntu Yakkety): status Fix Committed Fix Released
2017-04-20 19:35:23 Steve Langasek removed subscriber Ubuntu Stable Release Updates Team
2017-04-20 19:35:54 Launchpad Janitor cloud-init (Ubuntu Xenial): status Fix Committed Fix Released
2017-09-23 02:30:38 Scott Moser cloud-init: status Fix Committed Fix Released
2023-05-10 22:49:59 James Falcon bug watch added https://github.com/canonical/cloud-init/issues/2843