← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1577982] [NEW] ConfigDrive: cloud-init fails to configure network from network_data.json

 

Public bug reported:

When running Ubuntu 16.04 on OpenStack, cloud-init fails to properly
configure the network from network_data.json found in ConfigDrive.

When instance boots, network is configured fine until next reboot where
it falls back to dhcp.

The /etc/network/interfaces.d/50-cloud-init.cfg file has the following
content when instance is initially booted, this could explain why dhcp
is used on second boot:

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet dhcp

When debugging, if this line in stages.py [1] is commented, we can see
that cloud-init initially copy the /etc/network/interfaces file found in
the configdrive (the network template injected by Nova) and isn't using
the network config found in network_data.json. But later it falls back
to "dhcp" and rewrites yet again the network config.

I also found that within self._find_networking_config(), it looks like
no datasource is found at this point. This could be because cloud-init
is still in "local" dsmode and then refuses to use the network config
found in the ConfigDrive. (triggering the "dhcp" fallback logic)

Manually forcing "net" dsmode makes cloud-init configure
/etc/network/interfaces.d/50-cloud-init.cfg properly with network config
found in the ConfigDrive. However no gateway is configured and so,
instance doesn't respond to ping or SSH.

At that point, I'm not sure what's going on and how I can debug further.

Notes:
* The image used for testing uses "net.ifnames=0". Removing this config makes things much worst. (no ping at all on first boot)
* Logs, configs and configdrive can be found attached to this bug report.

[1] http://bazaar.launchpad.net/~cloud-init-dev/cloud-
init/trunk/view/head:/cloudinit/stages.py#L604

** Affects: cloud-init
     Importance: Undecided
         Status: New

** Attachment added: "cloud-init configs, logs and configdrive"
   https://bugs.launchpad.net/bugs/1577982/+attachment/4654849/+files/debug.tar.gz

-- 
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/1577982

Title:
  ConfigDrive: cloud-init fails to configure network from
  network_data.json

Status in cloud-init:
  New

Bug description:
  When running Ubuntu 16.04 on OpenStack, cloud-init fails to properly
  configure the network from network_data.json found in ConfigDrive.

  When instance boots, network is configured fine until next reboot
  where it falls back to dhcp.

  The /etc/network/interfaces.d/50-cloud-init.cfg file has the following
  content when instance is initially booted, this could explain why dhcp
  is used on second boot:

      auto lo
      iface lo inet loopback
      
      auto eth0
      iface eth0 inet dhcp

  When debugging, if this line in stages.py [1] is commented, we can see
  that cloud-init initially copy the /etc/network/interfaces file found
  in the configdrive (the network template injected by Nova) and isn't
  using the network config found in network_data.json. But later it
  falls back to "dhcp" and rewrites yet again the network config.

  I also found that within self._find_networking_config(), it looks like
  no datasource is found at this point. This could be because cloud-init
  is still in "local" dsmode and then refuses to use the network config
  found in the ConfigDrive. (triggering the "dhcp" fallback logic)

  Manually forcing "net" dsmode makes cloud-init configure
  /etc/network/interfaces.d/50-cloud-init.cfg properly with network
  config found in the ConfigDrive. However no gateway is configured and
  so, instance doesn't respond to ping or SSH.

  At that point, I'm not sure what's going on and how I can debug
  further.

  Notes:
  * The image used for testing uses "net.ifnames=0". Removing this config makes things much worst. (no ping at all on first boot)
  * Logs, configs and configdrive can be found attached to this bug report.

  [1] http://bazaar.launchpad.net/~cloud-init-dev/cloud-
  init/trunk/view/head:/cloudinit/stages.py#L604

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


Follow ups