mtu gets lost in translation from netplan (v2) yaml

Bug #1836949 reported by Scott Moser
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cloud-init
Fix Released
Undecided
Unassigned
cloud-init (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

MTU values get lost in translation when input is netplan (v2 yaml).

I'm attaching a recreate script, but basically the mtu setting gets lost when writing ENI or sysconfig if the input is v2 yaml.

input of:
version: 2
vlans:
bond0.1000:
addresses: ["192.6.1.9/24"]
id: 1000
link: bond0
mtu: 1496
bond0.1001:
id: 1001
link: bond0
bonds:
bond0:
interfaces: ["enp0s0", "enp0s1"]
parameters: {}
mtu: 1496

Renders output files like etc/sysconfig/network-scripts/ifcfg-bond0:
# Created by cloud-init on instance boot automatically, do not edit.
#
BONDING_MASTER=yes
BONDING_SLAVE0=enp0s0
BONDING_SLAVE1=enp0s1
BOOTPROTO=none
DEVICE=bond0
NM_CONTROLLED=no
ONBOOT=yes
STARTMODE=auto
TYPE=Bond
USERCTL=no

Where the same config from v1 would have the 'MTU=1496'

ProblemType: Bug
DistroRelease: Ubuntu 19.10
Package: cloud-init 19.1-1-gbaa47854-0ubuntu1
ProcVersionSignature: Ubuntu 4.15.0-54.58-generic 4.15.18
Uname: Linux 4.15.0-54-generic x86_64
ApportVersion: 2.20.11-0ubuntu5
Architecture: amd64
CloudName: LXD
Date: Wed Jul 17 18:37:04 2019
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)
user_data.txt:
#cloud-config
{}

Related branches

~smoser/cloud-init:fix/1836949-mtu-lost-in-translation
Ryan Harper: Approve
Server Team CI bot: Approve (continuous-integration)
Diff: 123 lines (+95/-0)
2 files modified
cloudinit/net/network_state.py (+4/-0)
tests/unittests/test_net.py (+91/-0)
api
Revision history for this message
Scott Moser (smoser) wrote :
Revision history for this message
Scott Moser (smoser) wrote :

output of recreate:

$ sh /tmp/recreate.sh
Read input format 'yaml' from 'bond-mtu-v1.yaml'.
Wrote output format 'sysconfig' to 'centos/sysconfig/from-v1/'

Read input format 'yaml' from 'bond-mtu-v2.yaml'.
Wrote output format 'sysconfig' to 'centos/sysconfig/from-v2/'

--- centos/sysconfig ----
diff -Naur centos/sysconfig/from-v1/etc/sysconfig/network-scripts/ifcfg-bond0 centos/sysconfig/from-v2/etc/sysconfig/network-scripts/ifcfg-bond0
--- centos/sysconfig/from-v1/etc/sysconfig/network-scripts/ifcfg-bond0 2019年07月17日 14:51:47.196419026 -0400
+++ centos/sysconfig/from-v2/etc/sysconfig/network-scripts/ifcfg-bond0 2019年07月17日 14:51:47.464420793 -0400
@@ -5,7 +5,6 @@
BONDING_SLAVE1=enp0s1
BOOTPROTO=none
DEVICE=bond0
-MTU=1496
NM_CONTROLLED=no
ONBOOT=yes
STARTMODE=auto
diff -Naur centos/sysconfig/from-v1/etc/sysconfig/network-scripts/ifcfg-bond0.1000 centos/sysconfig/from-v2/etc/sysconfig/network-scripts/ifcfg-bond0.1000
--- centos/sysconfig/from-v1/etc/sysconfig/network-scripts/ifcfg-bond0.1000 2019年07月17日 14:51:47.196419026 -0400
+++ centos/sysconfig/from-v2/etc/sysconfig/network-scripts/ifcfg-bond0.1000 2019年07月17日 14:51:47.464420793 -0400
@@ -3,7 +3,6 @@
BOOTPROTO=none
DEVICE=bond0.1000
IPADDR=192.6.1.9
-MTU=1496
NETMASK=255.255.255.0
NM_CONTROLLED=no
ONBOOT=yes
Read input format 'yaml' from 'bond-mtu-v1.yaml'.
Wrote output format 'eni' to 'ubuntu/eni/from-v1/'

Read input format 'yaml' from 'bond-mtu-v2.yaml'.
Wrote output format 'eni' to 'ubuntu/eni/from-v2/'

--- ubuntu/eni ----
diff -Naur ubuntu/eni/from-v1/etc/network/interfaces.d/50-cloud-init.cfg ubuntu/eni/from-v2/etc/network/interfaces.d/50-cloud-init.cfg
--- ubuntu/eni/from-v1/etc/network/interfaces.d/50-cloud-init.cfg 2019年07月17日 14:51:47.744422640 -0400
+++ ubuntu/eni/from-v2/etc/network/interfaces.d/50-cloud-init.cfg 2019年07月17日 14:51:48.024424486 -0400
@@ -9,7 +9,6 @@
auto bond0
iface bond0 inet manual
bond-slaves none
- mtu 1496

auto enp0s0
iface enp0s0 inet manual
@@ -22,7 +21,6 @@
auto bond0.1000
iface bond0.1000 inet static
address 192.6.1.9/24
- mtu 1496
vlan-raw-device bond0
vlan_id 1000

Read input format 'yaml' from 'bond-mtu-v1.yaml'.
Wrote output format 'netplan' to 'ubuntu/netplan/from-v1/'

Read input format 'yaml' from 'bond-mtu-v2.yaml'.
Wrote output format 'netplan' to 'ubuntu/netplan/from-v2/'

--- ubuntu/netplan ----
diff -Naur ubuntu/netplan/from-v1/etc/netplan/50-cloud-init.yaml ubuntu/netplan/from-v2/etc/netplan/50-cloud-init.yaml
--- ubuntu/netplan/from-v1/etc/netplan/50-cloud-init.yaml 2019年07月17日 14:51:48.292426253 -0400
+++ ubuntu/netplan/from-v2/etc/netplan/50-cloud-init.yaml 2019年07月17日 14:51:48.556427993 -0400
@@ -4,15 +4,14 @@
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
- version: 2
bonds:
bond0:
interfaces:
- enp0s0
- enp0s1
mtu: 1496
- enp0s0: {}
- enp0s1: {}
+ parameters: {}
+ version: 2
vlans:
bond0.1000:
addresses:

Changed in cloud-init:
status: New → Confirmed
Revision history for this message
Server Team CI bot (server-team-bot) wrote :

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

Changed in cloud-init:
status: Confirmed → Fix Committed
Dan Watkins (oddbloke)
Changed in cloud-init (Ubuntu):
status: New → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package cloud-init - 19.2-5-g496aaa94-0ubuntu1

---------------
cloud-init (19.2-5-g496aaa94-0ubuntu1) eoan; urgency=medium

* New upstream snapshot.
- net/cmdline: split interfaces_by_mac and init network config
determination
- stages: allow data sources to override network config source order
- cloud_tests: updates and fixes
- Fix bug rendering MTU on bond or vlan when input was netplan.
[Scott Moser] (LP: #1836949)
- net: update net sequence, include wait on netdevs, opensuse netrules
path (LP: #1817368)

-- Chad Smith <email address hidden> 2019年8月06日 13:56:18 -0600

Changed in cloud-init (Ubuntu):
status: In Progress → Fix Released
Revision history for this message

This bug is believed to be fixed in cloud-init in version 19.2-2. 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
Revision history for this message
James Falcon (falcojr) wrote :
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.

AltStyle によって変換されたページ (->オリジナル) /