← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1681531] Re: DigitalOcean DS defines mutliple gateways via meta-data

 

This bug was fixed in the package cloud-init -
0.7.9-144-g2825a917-0ubuntu1

---------------
cloud-init (0.7.9-144-g2825a917-0ubuntu1) artful; urgency=medium

  * New upstream snapshot.
    - 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]
      (LP: #1679817, #1685534, #1685532)
    - disk_setup: fix several issues with gpt disk partitions. (LP: #1692087)
    - function spelling & docstring update [Joshua Powers]
    - Fixing wrong file name regression. [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)
    - cloudstack: fix 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)
    - Revert "tools/net-convert: fix argument order for render_network_state"
    - make deb: Add devscripts dependency for make deb. Cleanup packages/bddeb.
      [Chad Smith] (LP: #1685935)
    - tools/net-convert: fix argument order for render_network_state
      [Ryan Harper] (LP: #1685944)
    - 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]
    - Fix name of "uri" key in docs for "cc_apt_configure" module
      [Felix Dreissig]
    - tests: Enable artful [Joshua Powers]

 -- Scott Moser <smoser@xxxxxxxxxx>  Tue, 23 May 2017 17:04:40 -0400

** Changed in: cloud-init (Ubuntu)
       Status: Confirmed => 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/1681531

Title:
  DigitalOcean DS defines mutliple gateways via meta-data

Status in cloud-init:
  Fix Committed
Status in cloud-init package in Ubuntu:
  Fix Released

Bug description:
  [Impact]
  The cloud-init datasource for DigitalOcean allows for multiple gateways on any NIC.

  On Ubuntu 16.04, this breaks networking.service. For 17.04 and later,
  Ubuntu _replaces_ the default gateway with the second gateway on
  'ifup' after reboot.

  DigitalOcean is looking at changing the meta-data, however, this will
  result in another version of the meta-data JSON.

  [Regression Potential]

  Low. This change is scope to DigitalOcean only. DigitalOcean has
  tested this Datasource exhaustively.

  [TEST Cases]
  - provision on DigitalOcean with a private IP
  - reboot
  - confirm that a single route exists in /etc/network/interfaces

  [LOGS]

  ----------------------------------------------------------------------------------------------
  From /var/log/cloud-init.log:

  2017-04-10 17:36:11,608 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens3', 'down'] with allowed return codes [0] (shell=False, capture=True)
  2017-04-10 17:36:11,615 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens3', 'name', 'eth0'] with allowed return codes [0] (shell=False, capture=True)
  2017-04-10 17:36:11,635 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'ens4', 'name', 'eth1'] with allowed return codes [0] (shell=False, capture=True)
  2017-04-10 17:36:11,651 - util.py[DEBUG]: Running command ['ip', 'link', 'set', 'eth0', 'up'] with allowed return codes [0] (shell=False, capture=True)
  2017-04-10 17:36:11,654 - stages.py[INFO]: Applying network configuration from ds bringup=False: {'version': 1, 'config': [{'name': 'eth0', 'subnets': [{'address': '138.197.88.85', 'netmask': '255.255.240.0', 'gateway': '138.197.80.1', 'type': 'static', 'control': 'auto'}, {'address': '2604:A880:0800:0010:0000:0000:2ECE:D001/64', 'gateway': '2604:A880:0800:0010:0000:0000:0000:0001', 'type': 'static', 'control': 'auto'}, {'address': '10.17.0.10', 'netmask': '255.255.0.0', 'type': 'static', 'control': 'auto'}], 'mac_address': 'ee:90:f2:c6:dc:db', 'type': 'physical'}, {'name': 'eth1', 'subnets': [{'address': '10.132.92.131', 'netmask': '255.255.0.0', 'gateway': '10.132.0.1', 'type': 'static', 'control': 'auto'}], 'mac_address': '1a:b6:7c:24:5e:cd', 'type': 'physical'}, {'address': ['2001:4860:4860::8844', '2001:4860:4860::8888', '8.8.8.8'], 'type': 'nameserver'}]}
  2017-04-10 17:36:11,668 - util.py[DEBUG]: Writing to /etc/network/interfaces.d/50-cloud-init.cfg - wb: [420] 868 bytes
  2017-04-10 17:36:11,669 - main.py[DEBUG]: [local] Exiting. datasource DataSourceDigitalOcean not in local mode.
  2017-04-10 17:36:11,674 - util.py[DEBUG]: Reading from /proc/uptime (quiet=False)

  ----------------------------------------------------------------------------------------------
  From 'dmesg':
  Apr 10 17:36:11 ubuntu systemd[1]: Started Initial cloud-init job (pre-networking).
  Apr 10 17:36:12 ubuntu systemd[1]: Started LSB: AppArmor initialization.
  Apr 10 17:36:12 ubuntu systemd[1]: Reached target Network (Pre).
  Apr 10 17:36:12 ubuntu systemd[1]: Starting Raise network interfaces...
  Apr 10 17:36:13 ubuntu ifup[1099]: Waiting for DAD... Done
  Apr 10 17:36:13 ubuntu ifup[1099]: RTNETLINK answers: File exists
  Apr 10 17:36:13 ubuntu ifup[1099]: Failed to bring up eth1.

  ----------------------------------------------------------------------------------------------
  $ sudo journalctl -xe -u networking
  Apr 10 17:36:12 ubuntu systemd[1]: Starting Raise network interfaces...
  -- Subject: Unit networking.service has begun start-up
  -- Defined-By: systemd
  -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
  --
  -- Unit networking.service has begun starting up.
  Apr 10 17:36:13 ubuntu ifup[1099]: Waiting for DAD... Done
  Apr 10 17:36:13 ubuntu ifup[1099]: RTNETLINK answers: File exists
  Apr 10 17:36:13 ubuntu ifup[1099]: Failed to bring up eth1.
  Apr 10 17:36:13 ubuntu systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
  Apr 10 17:36:13 ubuntu systemd[1]: Failed to start Raise network interfaces.
  -- Subject: Unit networking.service has failed
  -- Defined-By: systemd
  -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
  --
  -- Unit networking.service has failed.
  --

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


References