cloud-init crashes with IPv6 routes

Bug #2014226 reported by Michael Camilli
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cloud-init
Expired
Undecided
Unassigned

Bug Description

I have static routes specified for two networks, and during cloud-init an error occurs as it tries to make use of NETMASK1.

  # Network 2
  eth1:
    addresses: # List of IP[v4,v6] addresses to assign to this interface
      - 2001:db8:abcd:abce:fe::1000/96

    routes: # List of static routes for this interface
      - to: 2001:db8:abcd:abce:fe::0/96
        via: 2001:db8:abcd:bbce:fe::2

  # Network 3
  eth2:
    addresses: # List of IP[v4,v6] addresses to assign to this interface
      - 2001:db8:abcd:abcf:fe::1000/96

    routes: # List of static routes for this interface
      - to: 2001:db8:abcd:abcf:fe::0/96
        via: 2001:db8:abcd:bbcf:fe::2

Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/cloudinit/cmd/main.py", line 761, in status_wrapper
    ret = functor(name, args)
  File "/usr/lib/python3.6/site-packages/cloudinit/cmd/main.py", line 433, in main_init
    init.apply_network_config(bring_up=bring_up_interfaces)
  File "/usr/lib/python3.6/site-packages/cloudinit/stages.py", line 926, in apply_network_config
    netcfg, bring_up=bring_up
  File "/usr/lib/python3.6/site-packages/cloudinit/distros/__init__.py", line 233, in apply_network_config
    self._write_network_state(network_state)
  File "/usr/lib/python3.6/site-packages/cloudinit/distros/__init__.py", line 129, in _write_network_state
    renderer.render_network_state(network_state)
  File "/usr/lib/python3.6/site-packages/cloudinit/net/sysconfig.py", line 1011, in render_network_state
    base_sysconf_dir, network_state, self.flavor, templates=templates
  File "/usr/lib/python3.6/site-packages/cloudinit/net/sysconfig.py", line 1002, in _render_sysconfig
    contents[cpath] = iface_cfg.routes.to_string(proto)
  File "/usr/lib/python3.6/site-packages/cloudinit/net/sysconfig.py", line 199, in to_string
    netmask_value = str(self._conf["NETMASK" + index])
KeyError: 'NETMASK1'

Additional Info:
1. Using KVM on a private server
2. See above configuration details that cause an issue. Note in the documentation I could only find an example of an ipv4 route, so maybe you could enhance the documentation with an example for ipv6 if possible.

Tags: docs
Revision history for this message
Michael Camilli (mcamilli) wrote :
Revision history for this message
Chad Smith (chad.smith) wrote :

Thanks for filing a bug and making cloud-init better and for the documentation request plug as well.
I'm adding a docs tag to the bug so it could be looked at from a documentation standpoint as well.

This bug looks conspicuously like the former bug https://bugs.launchpad.net/cloud-init/+bug/1958506 which was fixed in cloud-init version 22.2. If possible, would you be able to try reproducing this issue with a newer version of cloud-init?

You may be able to install cloud-init upstream's latest approved upstream release of 23.1 from our copr repo
https://copr.fedorainfracloud.org/coprs/g/cloud-init/el-testing/packages/

Once cloud-init is upgraded to 23.1 try running `sudo cloud-init clean --logs --reboot` to force cloud-init to try to reconfigure the system and network from scratch across reboot. If the KeyError still persists, then we know this is a new bug and not one formerly fixed.
I'm marking it 'incomplete' status above. Please set back to 'New' if you get a chance to confirm that latest cloud-init 23.1 still exhibits this issue.

tags: added: docs
Changed in cloud-init:
status: New → Incomplete
Revision history for this message
James Falcon (falcojr) wrote :
Changed in cloud-init:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.