Last commit made on 2019-08-06
Get this branch:
git clone -b feature/azure-to-network-v2 https://git.launchpad.net/~chad.smith/cloud-init
Only Chad Smith can upload to this branch. If you are Chad Smith please log in for upload directions.

Branch merges

Branch information


Recent commits

5106244... by Chad Smith on 2019-08-06

azure: add route-metric to net config on non-primary dhcp interfaces

To retain default network routes on primary dhcp interface, set the
route-metric to 100 for primary interface and 200+ for any secondary
interfaces. This ensures that any dhcp routes provided by the secondary
nics will not be used as a default route for external bound traffic.

2c1cc00... by Chad Smith on 2019-08-06

azure/net: generate_fallback_nic emits network v2 config instead of v1

The function generate_fallback_config is used by Azure by default when
not consuming IMDS configuration data. This function is also used by any
datasource which does not implement it's own network config. This simple
fallback configuration sets up dhcp on the most likely NIC. It will now
emit network v2 instead of network v1.

This is a step toward moving all components talking in v2 and allows us
to avoid costly conversions between v1 and v2 for newer distributions
which rely on netplan.

496aaa9... by Dan Watkins on 2019-07-26

net/cmdline: split interfaces_by_mac and init network config determination

Previously "cmdline" network configuration could be either
user-specified network-config=... configuration data, or
initramfs-provided configuration data. Before data sources could modify
the order in which network config sources were considered, this
conflation didn't matter (and, indeed, in the default data source
configuration it will continue to not matter).

However, it _is_ desirable for a data source to be able to specify that
its network configuration should be preferred over the
initramfs-provided network configuration but still allow explicit
network-config=... configuration passed to the kernel cmdline to
continue to override both of those sources.

(This also modifies the Oracle data source to use read_initramfs_config
directly, which is effectively what it was using
read_kernel_cmdline_config for previously.)

1dbede6... by Dan Watkins on 2019-07-23

stages: allow data sources to override network config source order

Currently, if a platform provides any network configuration via the
"cmdline" method (i.e. network-data=... on the kernel command line,
ip=... on the kernel command line, or iBFT config via /run/net-*.conf),
the value of the data source's network_config property is completely

This means that on platforms that use iSCSI boot (such as Oracle Compute
Infrastructure), there is no way for the data source to configure any
network interfaces other than those that have already been configured by
the initramfs.

This change allows data sources to specify the order in which network
configuration sources are considered. Data sources that opt to use this
mechanism will be expected to consume the command line network data and
integrate it themselves.

(The generic merging of network configuration sources was considered,
but we concluded that the single use case we have presently (a) didn't
warrant the increased complexity, and (b) didn't give us a broad enough
view to be sure that our generic implementation would be sufficiently
generic. This change in no way precludes a merging strategy in future.)

a02c0c9... by Ryan Harper on 2019-07-18

cloud_tests: updates and fixes

- Update paramiko and cryptography module versions (2.4.2) to
  address issues with algo and deprecation warnings.
- Modify ssh keypair generation to work with updated paramiko
- tools/xkvm sync with newer version from curtin
- Update NoCloudKvm instance.py to work with updated xkvm
  - pass -name to instance, useful for debugging on shared host
  - Add cache_mode platform config; default to cache=none,aio=native
- Switch to yaml.safe_load() in platforms.py

5498107... by Scott Moser on 2019-07-18

Fix bug rendering MTU on bond or vlan when input was netplan.

If input to network_state.parse_net_config_data was netplan (v2 yaml)
then the network state would lose the mtu information on bond or vlan.

LP: #1836949

b3a87fc... by Ryan Harper on 2019-07-17

net: update net sequence, include wait on netdevs, opensuse netrules path

On systems with many interfaces, processing udev events may take a while.
Cloud-init expects devices included in a provided network-configuration
to be present when attempting to configure them. This patch adds a step
in net configuration where it will check for devices provided in the
configuration and if not found, issue udevadm settle commands to wait
for them to appear.

Additionally, the default path for udev persistent network rules
70-persistent-net.rules may also be written to systems which include
the 75-net-generator.rules. During boot, cloud-init and the
generator may race and interleave values causing issues. OpenSUSE
will now use a newer file, 85-persistent-net-cloud-init.rules which
will take precedence over values created by 75-net-generator and
avoid collisions on the same file.

LP: #1817368

060b1a1... by Ryan Harper on 2019-07-17

Release 19.2

Bump the version in cloudinit/version.py to be 19.2 and update ChangeLog.

LP: #1836921

07b1723... by Ryan Harper on 2019-07-16

net: add rfc3442 (classless static routes) to EphemeralDHCP

The EphemeralDHCP context manager did not parse or handle
rfc3442 classless static routes which prevented reading
datasource metadata in some clouds. This branch adds support
for extracting the field from the leases output, parsing the
format and then adding the required iproute2 ip commands to
apply (and teardown) the static routes.

LP: #1821102

1404817... by Ryan Harper on 2019-07-16

templates/ntp.conf.debian.tmpl: fix missing newline for pools

The debian ntp.conf template did not contain a newline for the
comment used to mark the rendered ntp pools configured. This
resulted in an invalid line:

'# poolspool 0.int.pool.ntp.org iburst'

rather than:

'# pools
 pool 0.int.pool.ntp.org iburst'

This patch fixes the template and updates the unittest to
verify that the rendered templates puts servers and pools
at the beginning of a line.

LP: #1836598