mtu gets lost in translation from netplan (v2) yaml

Bug #1836949 reported by Scott Moser on 2019-07-17
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cloud-init
Undecided
Unassigned
cloud-init (Ubuntu)
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

Scott Moser (smoser) wrote :
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

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
Changed in cloud-init (Ubuntu):
status: New → In Progress
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> Tue, 06 Aug 2019 13:56:18 -0600

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

Other bug subscribers