This bug was fixed in the package cloud-init - 0.7.9-153-g16a7302f- 0ubuntu1~16.10.1
--------------- cloud-init (0.7.9-153-g16a7302f-0ubuntu1~16.10.1) yakkety-proposed; urgency=medium * New upstream snapshot. - net: fix reading and rendering addresses in cidr format. [Dimitri John Ledkov] (LP: #1689346, #1684349) - disk_setup: udev settle before attempting partitioning or fs creation. (LP: #1692093) - GCE: Update the attribute used to find instance SSH keys. [Daniel Watkins] (LP: #1693582) - nplan: For bonds, allow dashed or underscore names of keys. [Dimitri John Ledkov] (LP: #1690480) - tests: python2.6: fix unit tests usage of assertNone and format. - tests: update docstring on test_configured_list_with_none - fix tools/ds-identify to not write None twice. - tox/build: do not package depend on style requirements. - tests: ntp: Restructure cc_ntp unit tests. [Chad Smith] - flake8: move the pinned version of flake8 up to 3.3.0 - tests: Apply workaround for snapd bug in test case. [Joshua Powers] - RHEL/CentOS: Fix dual stack IPv4/IPv6 configuration. [Andreas Karis] - disk_setup: fix several issues with gpt disk partitions. (LP: #1692087) - function spelling & docstring update [Joshua Powers] - tests: Fix unittest bug in ntp tests. [Joshua Powers] - tox: move pylint target to 1.7.1 - Fix get_interfaces_by_mac for empty macs (LP: #1692028) - DigitalOcean: remove routes except for the public interface. [Ben Howard] (LP: #1681531.) - netplan: pass macaddress, when specified, for vlans [Dimitri John Ledkov] (LP: #1690388) - doc: various improvements for the docs on cc_users_groups. [Felix Dreissig] - cc_ntp: write template before installing and add service restart [Ryan Harper] (LP: #1645644) - tests: fix cloudstack unit tests to avoid accessing /var/lib/NetworkManager [Lars Kellogg-Stedman] - tests: fix hardcoded path to mkfs.ext4 [Joshua Powers] (LP: #1691517) - Actually skip warnings when .skip file is present. [Chris Brinker] (LP: #1691551) - netplan: fix netplan render_network_state signature. [Dimitri John Ledkov] (LP: #1685944) - Azure: fix reformatting of ephemeral disks on resize to large types. (LP: #1686514) - make deb: Add devscripts dependency for make deb. Cleanup packages/bddeb. [Chad Smith] (LP: #1685935) - openstack: fix log message copy/paste typo in _get_url_settings [Lars Kellogg-Stedman] - unittests: fix unittests run on centos [Joshua Powers] - Improve detection of snappy to include os-release and kernel cmdline. (LP: #1689944) - Add address to config entry generated by _klibc_to_config_entry. [Julien Castets] (LP: #1691135) - sysconfig: Raise ValueError when multiple default gateways are present. [Chad Smith] (LP: #1687485) - FreeBSD: improvements and fixes for use on Azure [Hongjiang Zhang] (LP: #1636345) - Add unit tests for ds-identify, fix Ec2 bug found. - fs_setup: if cmd is specified, use shell interpretation. [Paul Meyer] (LP: #1687712) - doc: document network configuration defaults policy and formats. [Ryan Harper] - doc: Fix name of "uri" key in docs for "cc_apt_configure" module [Felix Dreissig] - tests: Enable artful in integration tests [Joshua Powers] -- Scott Moser <smo...@ubuntu.com> Fri, 26 May 2017 16:08:21 -0400 ** Changed in: cloud-init (Ubuntu Xenial) Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to cloud-init. https://bugs.launchpad.net/bugs/1690388 Title: wrong hwaddr on the vlan bond with nplan and cloud-init Status in cloud-init: Fix Committed Status in cloud-init package in Ubuntu: Fix Released Status in nplan package in Ubuntu: Fix Released Status in cloud-init source package in Xenial: Fix Released Status in nplan source package in Xenial: Fix Released Status in cloud-init source package in Yakkety: Fix Released Status in nplan source package in Yakkety: Fix Released Status in cloud-init source package in Zesty: Fix Released Status in nplan source package in Zesty: Fix Released Bug description: === Begin netplan SRU Template === [Impact] Virtual devices such as VLANs, bridges and bonds may require the user to set a specific MAC address for proper operation on networks; where the same MAC may be used by default by the systems due to the methods used to create them. [Test case] /!\ This only works with the networkd renderer; NetworkManager does not currently support setting a MAC on bonds and bridges. 1) Set a MAC address for a virtual device (bond, bridge or vlan), using the following syntax in netplan config: macaddress: ##:##:##:##:##:## 2) Validate that the device gets the MAC address applied. [Regression potential] Failure to bring up a device configured in netplan or to set the MAC should be looked at as a possible regression. Other issues could include failure to write the configuration for networkd or NetworkManager. === End netplan SRU Template === http://pad.lv/1690388 https://bugs.launchpad.net/ubuntu/+source/cloud-init/+bug/1690388 === Begin cloud-init SRU Template === [Impact] Virtual devices such as VLANs, bridges and bonds may require the user to set a specific MAC address for proper operation on networks; where the same MAC may be used by default by the systems due to the methods used to create them. cloud-init would not render the mac address of the vlan into its ifupdown/eni or netplan output. The result is that the vlan device would not get the desired mac address. [Test Case] The basic idea below is: a.) launch an instance with proposed version of cloud-init. b.) inside instance, get cloud-init's network rendering tool from trunk c.) run the rendering tool against a config that failed before. d.) check rendered netplan config to verify it has vlan mac addresses present. [Regression Potential] Fairly low chance for regression. The mac address fields were just not being written, and now they will be. ## launch an instance. $ release=xenial $ ref=$release-proposed $ lxc-proposed-snapshot --proposed --publish $release $ref $ lxc init $ref $name ## get render tool $ wget https://git.launchpad.net/~cloud-init-dev/cloud-init/plain/tools/net-convert.py -O net-convert.py ## write a network config with vlan and mac address. $ cat > net-config.yaml <<"EOF" version: 1 config: - type: physical name: eth0 mac_address: "fa:35:9c:85:55:00" subnets: [{type: dhcp}] - type: vlan name: eth0.101 vlan_link: eth0 vlan_id: 101 mac_address: fe:35:9c:85:55:ee mtu: 1500 subnets: - type: static address: 192.168.2.10/24 EOF $ for k in eni netplan; do PYTHONPATH=$PWD python3 ./net-convert.py \ --network-data=net-config.yaml --kind=yaml \ --output-kind=$k --mac=eth0,fa:35:9c:85:55:00 \ --directory=out.d ; done $ cat out.d/etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth0.101 iface eth0.101 inet static address 192.168.2.10/24 hwaddress fe:35:9c:85:55:ee mtu 1500 vlan-raw-device eth0 vlan_id 101 $ cat out.d/etc/netplan/50-cloud-init.yaml network: version: 2 ethernets: eth0: dhcp4: true match: macaddress: fe:35:9c:85:55:00 set-name: eth0 vlans: eth0.101: addresses: - 192.168.2.10/24 id: 101 link: eth0 macaddress: fe:35:9c:85:55:ee ## If you're running on a openstack system, you can actually take ## this a step further and replace the system networking with the ## newly generated config, reboot and see the vlan come up. ## You'll need to update the 'mac_address' for eth0 in net-config.yaml ## to match your system, then re-run the net-convert and update the ## system. $ sudo cp out.d/etc/network/interfaces /etc/network/interfaces $ sudo cp out.d/etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules ## drop the .rules files and update the initramfs $ sudo rm -f /etc/systemd/network/50-cloud-init-* $ sudo update-initramfs -u -k all $ sudo reboot [Other Info] Upstream commit at https://git.launchpad.net/cloud-init/commit/?id=d059d480c3 === End cloud-init SRU Template === ---- The expected hwaddresses are as follows: 4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether a0:36:9f:2d:93:80 brd ff:ff:ff:ff:ff:ff inet6 fe80::a236:9fff:fe2d:9380/64 scope link valid_lft forever preferred_lft forever 5: bond0.101@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether a0:36:9f:2d:93:80 brd ff:ff:ff:ff:ff:ff inet 104.130.20.119/24 brd 104.130.20.255 scope global bond0.101 valid_lft forever preferred_lft forever inet6 fe80::a236:9fff:fe2d:9380/64 scope link valid_lft forever preferred_lft forever 6: bond0.401@bond0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether a0:36:9f:2d:93:81 brd ff:ff:ff:ff:ff:ff inet 10.184.7.120/20 brd 10.184.15.255 scope global bond0.401 valid_lft forever preferred_lft forever inet6 fe80::a236:9fff:fe2d:9381/64 scope link valid_lft forever preferred_lft forever however cloud-init shows: May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: ++++++++++++++++++++++++++++++++++++++++Net device info++++++++++++++++++++++++++++++++++++++++ May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: +-----------+------+------------------------------+---------------+-------+-------------------+ May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: +-----------+------+------------------------------+---------------+-------+-------------------+ May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0 | True | . | . | . | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0 | True | fe80::a236:9fff:fe2d:9381/64 | . | link | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0.101 | True | 104.130.20.119 | 255.255.255.0 | . | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0.101 | True | fe80::a236:9fff:fe2d:9381/64 | . | link | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | . | . | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | lo | True | ::1/128 | . | host | . | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0.401 | True | 10.184.7.120 | 255.255.240.0 | . | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | bond0.401 | True | fe80::a236:9fff:fe2d:9381/64 | . | link | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | ens9f1 | True | . | . | . | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: | ens9f0 | True | . | . | . | a0:36:9f:2d:93:81 | May 12 14:33:28 xnox-iad-nr5 cloud-init[1163]: ci-info: +-----------+------+------------------------------+---------------+-------+-------------------+ Specifically bond0 | True | fe80::a236:9fff:fe2d:9381/64 | . | link | a0:36:9f:2d:93:81 bond0.101 | True | 104.130.20.119 | 255.255.255.0 | . | a0:36:9f:2d:93:81 Instead of expected a0:36:9f:2d:93:80 The generated netplan.yaml does not set macaddress on the vlans at all. Where as the network_data.json does explicitely specifies the mac address to be in use for those vlans: "vlan_mac_address" : "a0:36:9f:2d:93:80" To manage notifications about this bug go to: https://bugs.launchpad.net/cloud-init/+bug/1690388/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp