Last commit made on 2019-04-10
Get this branch:
git clone -b revert https://git.launchpad.net/~oddbloke/cloud-init/+git/cloud-init
Only Dan Watkins can upload to this branch. If you are Dan Watkins please log in for upload directions.

Branch merges

Branch information


Recent commits

5421d89... by Dan Watkins

Revert "DataSource: move update_events from a class to an instance attribute"

Moving update_events from a class attribute to an instance attribute
means that it doesn't exist on DataSource objects that are unpickled,
causing tracebacks on cloud-init upgrade.

As this change is only required for cloud-init installations which don't
utilise ds-identify, we're backing it out to be reintroduced once the
upgrade path bug has been addressed.

This reverts commit f2fd6eac4407e60d0e98826ab03847dda4cde138.

b76714c... by Risto Oikarinen <email address hidden>

Change DataSourceNoCloud to ignore file system label's case.

NoCloud data source now accepts both 'cidata' and 'CIDATA'
as filesystem labels. This is similar to DataSourceConfigDrive's
support for 'config-2' and 'CONFIG-2'.

bdd9c0a... by Antonio Romito

cmd:main.py: Fix missing 'modules-init' key in modes dict

Cloud-init's main.py will fail when presented with a new
stage name 'modules-init' if upgrading an older cloud-init.
Fix this by initializing unknown stage names before accessing.

LP: #1815109

f247dd2... by Chad Smith

ubuntu_advantage: rewrite cloud-config module

ubuntu-advantage-tools version 19 has a different command line
interface. Update cloud-init's config module to accept new
ubuntu_advantage configuration settings.

* Underscores better than hyphens: deprecate 'ubuntu-advantage'
  cloud-config key in favor of 'ubuntu_advantage'
* Attach machines with either sso credentials of UA user_token
* Services are enabled by name though an 'enable' list
* Raise warnings if deprecated ubuntu-advantage config keys are
  present, or errors if its config we cannott adapt to

Ubuntu Advantage support can now be configured via #cloud-config
with the following yaml:

  token: 'thisismyubuntuadvantagetoken'
  enable: [esm, fips, livepatch]

Co-Authored-By: Daniel Watkins <email address hidden>

5283668... by "Jason Zions (MSFT)" <email address hidden>

Azure: Treat _unset network configuration as if it were absent

When the Azure datasource persists all of its metadata to the
instance directory, it deliberately sets the self.network_config
value to be the sources.UNSET value. The goal is to ensure that
each time the system boots, fresh network configuration data is
fetched from the cloud platform so that any control plane changes
will take effect. When a VM is first created, there's no pickled
instance to restore, so self._network_config is None, resulting
in self.network_config() properly building a new config. Azure
suffered from LP: #1801364 which prevented ds from being stored
in obj.pkl in the instance directory, so subsequent reboots always
regenerated their network configuration.

Commit 0dc3a77f41f4544e4cb5a41637af7693410d4cdf introduced a
new bug in which self.network_config() assumed the
self._network_config value was either None or trustable; when
the config was unpickled, that value was _unset, thus breaking
the assumption.

LP: #1823084

0d8c883... by Anh Vo (MSFT)

DatasourceAzure: add additional logging for azure datasource

Create an Azure logging decorator and use additional ReportEventStack
context managers to provide additional logging details.

47c5300... by Ryan Harper

cloud_tests: fix apt_pipelining test-cases

The apt_pipelining test-cases were broken but until cloud-init
changed it's default behavior to not disable, these silently passed
as both only ever checked if pipelinging was disabled.

First, the tests used the 'apt' namespace, which is not for
configuring pipelining, rather that requires 'apt_pipelining'
 as the namespace.

Second, the 'os' variant needs to check that cloud-init does not
write a configuration file; it was a copy-and-paste error from the
disable test-case.

This branch fixes the config and collection to validate both

0dc3a77... by "Jason Zions (MSFT)" <email address hidden>

Azure: Ensure platform random_seed is always serializable as JSON.

The Azure platform surfaces random bytes into /sys via Hyper-V.
Python 2.7 json.dump() raises an exception if asked to convert
a str with non-character content, and python 3.0 json.dump()
won't serialize a "bytes" value. As a result, c-i instance
data is often not written by Azure, making reboots slower (c-i
has to repeat work).

The random data is base64-encoded and then decoded into a string
(str or unicode depending on the version of Python in use). The
base64 string has just as many bits of entropy, so we're not
throwing away useful "information", but we can be certain
json.dump() will correctly serialize the bits.

bb0b6f1... by Robert Schweikert

net/sysconfig: write out SUSE-compatible IPv6 config

For writing IPv6 addresses to ifcfg-* the name "IPV6ADDR" is used. For
secondary IPs the value for "IPV6ADDR_SECONDARIES" is set. On SUSE based
distributions the names "IPADDR6" and "IPADDR6_$SOMELABEL" need to be

dfe50e3... by Thomas Bechtold

tox: Update testenv for openSUSE Leap to 15.0

Use the requirements for the openSUSE Leap 15.0 release.