juju sends "network" top level key to user.network-config in lxd containers

Bug #1798117 reported by Scott Moser on 2018-10-16
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cloud-init
Medium
Unassigned
juju
High
Joseph Phillips
cloud-init (Ubuntu)
Medium
Unassigned

Bug Description

== Short summary ==
In lxd containers launched by juju,
/var/lib/cloud/seed/nocloud-net/network-config has:
 has:
 network:
   config: disabled

That is invalid content. Cloud-init assumes content in 'network-config'
is already namespaced to 'network'. The correct content would be:

  config: disabled

== Easy recreate ==
$ lxc launch ubuntu-daily:bionic \
   "--config=user.network-config={'network': {'config': {'disabled'}}}"

== Longer Info ==
When looking at bug 1651497, I see containers that run cloud-init
have errors in a container's cloud-init log
(http://paste.ubuntu.com/p/5mKXC8pMwH/) like:
  AttributeError: 'NoneType' object has no attribute 'iter_interfaces'
and
  Failed to rename devices: Failed to apply network config names. Found bad network config version: None

After some looking guessing I realized that juju must be attempting to
disable cloud-init's network configuration via sending the following
into the nocloud seed (/var/lib/cloud/seed/nocloud-net/network-config)
via 'user.network-config'.

cloud-init can clearly handle this better, but juju should not be
sending invalid configuration.

Related bugs:
 * bug 1651497: iscsid.service fails to start in container, results in failed dist-upgrade later on

ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: cloud-init 18.3-9-g2e62cb8a-0ubuntu1~18.04.2
ProcVersionSignature: Ubuntu 4.18.0-8.9-generic 4.18.7
Uname: Linux 4.18.0-8-generic x86_64
ApportVersion: 2.20.9-0ubuntu7.4
Architecture: amd64
CloudName: NoCloud
Date: Tue Oct 16 14:33:12 2018
PackageArchitecture: all
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 LANG=C.UTF-8
SourcePackage: cloud-init
UpgradeStatus: No upgrade log present (probably fresh install)
cloud-init-log-warnings:
 2018-10-16 14:32:01,706 - stages.py[WARNING]: Failed to rename devices: Failed to apply network config names. Found bad network config version: None
 2018-10-16 14:32:01,707 - util.py[WARNING]: failed stage init-local
 AttributeError: 'NoneType' object has no attribute 'version'
 2018-10-16 14:32:02,366 - stages.py[WARNING]: Failed to rename devices: Failed to apply network config names. Found bad network config version: None
user_data.txt:
 #cloud-config
 {}

Related branches

Scott Moser (smoser) wrote :
Changed in cloud-init:
status: New → Confirmed
Changed in cloud-init (Ubuntu):
status: New → Confirmed
Changed in cloud-init:
importance: Undecided → Medium
Changed in cloud-init (Ubuntu):
importance: Undecided → Medium
Changed in juju:
status: New → Triaged
milestone: none → 2.5-beta1
importance: Undecided → High
Changed in juju:
milestone: 2.5-beta1 → 2.5-beta2
Joseph Phillips (manadart) wrote :

I knew there were a couple of bugs touching on this issue, but I didn't turn this one up in a search yesterday.

I seem to have duplicated it with:
https://bugs.launchpad.net/juju/+bug/1804493

The fix has landed in 2.4 and will be forward-ported to the the develop (2.5) branch soon.

Changed in juju:
assignee: nobody → Joseph Phillips (manadart)
status: Triaged → In Progress
Changed in juju:
status: In Progress → Fix Committed
Ian Booth (wallyworld) on 2018-11-30
Changed in juju:
milestone: 2.5-beta2 → 2.5-beta3

This bug is fixed with commit adbd950a to cloud-init on branch master.
To view that commit see the following URL:
https://git.launchpad.net/cloud-init/commit/?id=adbd950a

Changed in cloud-init:
status: Confirmed → Fix Committed

This bug is believed to be fixed in cloud-init in version 18.5. If this is still a problem for you, please make a comment and set the state back to New

Thank you.

Changed in cloud-init:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers