← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1691135] Re: address field not set when reading cmdline/initramfs configured network

 

** Also affects: cloud-init (Ubuntu)
   Importance: Undecided
       Status: New

** Changed in: cloud-init (Ubuntu)
       Status: New => Confirmed

** Changed in: cloud-init (Ubuntu)
   Importance: Undecided => Medium

** Changed in: cloud-init (Ubuntu)
       Status: Confirmed => Fix Released

** Also affects: cloud-init (Ubuntu Yakkety)
   Importance: Undecided
       Status: New

** Also affects: cloud-init (Ubuntu Zesty)
   Importance: Undecided
       Status: New

** Also affects: cloud-init (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Changed in: cloud-init (Ubuntu Xenial)
       Status: New => Fix Committed

** Changed in: cloud-init (Ubuntu Yakkety)
       Status: New => Fix Committed

** Changed in: cloud-init (Ubuntu Zesty)
       Status: New => Confirmed

** Changed in: cloud-init (Ubuntu Yakkety)
       Status: Fix Committed => Confirmed

** Changed in: cloud-init (Ubuntu Xenial)
       Status: Fix Committed => Confirmed

** Changed in: cloud-init (Ubuntu Xenial)
   Importance: Undecided => Medium

** Changed in: cloud-init (Ubuntu Yakkety)
   Importance: Undecided => Medium

** Changed in: cloud-init (Ubuntu Zesty)
   Importance: Undecided => Medium

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

Title:
  address field not set when reading cmdline/initramfs configured
  network

Status in cloud-init:
  Fix Committed
Status in cloud-init package in Ubuntu:
  Fix Released
Status in cloud-init source package in Xenial:
  Confirmed
Status in cloud-init source package in Yakkety:
  Confirmed
Status in cloud-init source package in Zesty:
  Confirmed

Bug description:
  As reported by user niluje, the ifi the initramfs tools write a config
  that has static networking, then cloud-init would not populate the
  address field in its rendered network config (_klibc_to_config_entry).

  The result would be incomplete or invalid configuration, and attempt
  to render that configuration would result in stacktrace due to
  KeyError.

  This can be seen in trunk with the net-convert tool as below.  Editing
  the yaml and uncommenting the 'address' line will work.

  $ cat /tmp/foo.yaml 
  network:
    version: 1
    config:
     - name: eth1
       type: physical
       subnets:
        - 'type': 'static'
          'broadcast': '10.0.0.255'
          'control': 'manual'
          'gateway': '10.0.0.1'
          'dns_search': ['foo.com']
          'netmask': '255.255.255.0'
          'dns_nameservers': ['10.0.1.1']
  #        'address': '10.0.0.2'
  EOF

  $ PYTHONPATH=$PWD ./tools/net-convert.py  --network-data=/tmp/foo.yaml --kind=yaml --output-kind=eni -d /tmp/out.d
  Input YAML
  config:
  -   name: eth1
      subnets:
      -   broadcast: 10.0.0.255
          control: manual
          dns_nameservers:
          - 10.0.1.1
          dns_search:
          - foo.com
          gateway: 10.0.0.1
          netmask: 255.255.255.0
          type: static
      type: physical
  version: 1

  Traceback (most recent call last):
    File "./tools/net-convert.py", line 82, in <module>
      main()
    File "./tools/net-convert.py", line 58, in main
      ns = network_state.parse_net_config_data(pre_ns)
    File "/home/smoser/src/cloud-init/cloud-init/cloudinit/net/network_state.py", line 42, in parse_net_config_data
      nsi.parse_config(skip_broken=skip_broken)
    File "/home/smoser/src/cloud-init/cloud-init/cloudinit/net/network_state.py", line 225, in parse_config
      self.parse_config_v1(skip_broken=skip_broken)
    File "/home/smoser/src/cloud-init/cloud-init/cloudinit/net/network_state.py", line 240, in parse_config_v1
      handler(self, command)
    File "/home/smoser/src/cloud-init/cloud-init/cloudinit/net/network_state.py", line 89, in decorator
      return func(self, command, *args, **kwargs)
    File "/home/smoser/src/cloud-init/cloud-init/cloudinit/net/network_state.py", line 296, in handle_physical
      if ':' in subnet['address']:
  KeyError: 'address'

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


References