~andybotting/cloud-init:master

Last commit made on 2019-03-19
Get this branch:
git clone -b master https://git.launchpad.net/~andybotting/cloud-init
Only Andy Botting can upload to this branch. If you are Andy Botting please log in for upload directions.

Branch merges

Branch information

Name:
master
Repository:
lp:~andybotting/cloud-init

Recent commits

5e5894d... by Dan Watkins

Add ubuntu_drivers config module

The ubuntu_drivers config module enables usage of the 'ubuntu-drivers'
command. At this point it only serves as a way of installing NVIDIA
drivers for general purpose graphics processing unit (GPGPU)
functionality.

Also, a small usability improvement to get_cfg_by_path to allow it to
take a string for the key path
  "toplevel/second/mykey"
in addition to the original:
  ("toplevel", "second", "mykey")

6d58bd8... by Dan Watkins

doc: Refresh Azure walinuxagent docs

- Remove outdated waagent.conf recommendations
- Recommend using Provisioning.UseCloudInit
- Reorganise sections so walinuxagent recommendations are easier to find

200b0ac... by Dan Watkins

tox: bump pylint version to latest (2.3.1)

The previous version was emitting errors due to an incompatibility with
one of its dependencies.

(We could have pinned the dependency instead, but staying current on
pylint is a worthy goal in and of itself.)

f2fd6ea... by Dan Watkins

DataSource: move update_events from a class to an instance attribute

Currently, DataSourceAzure updates self.update_events in __init__. As
update_events is a class attribute on DataSource, this updates it for
all instances of classes derived from DataSource including those for
other clouds. This means that if DataSourceAzure is even instantiated,
its behaviour is applied to whichever data source ends up being used for
boot.

To address this, update_events is moved from a class attribute to an
instance attribute (that is therefore populated at instantiation time).
This retains the defaults for all DataSource sub-class instances, but
avoids them being able to mutate the state in instances of other
DataSource sub-classes.

update_events is only ever referenced on an instance of DataSource (or a
sub-class); no code relies on it being a class attribute. (In fact,
it's only used within methods on DataSource or its sub-classes, so it
doesn't even _need_ to remain public, though I think it's appropriate
for it to be public.)

DataSourceScaleway is also updated to move update_events from a
class attribute to an instance attribute, as the class attribute would
now be masked by the DataSource instance attribute.

LP: #1819913

3acaacc... by Robert Schweikert

net/sysconfig: Handle default route setup for dhcp configured NICs

When the network configuration has a default route configured and
another network device that is configured with dhcp, SUSE sysconfig
output should not accept the default route provided by the dhcp
server.

LP: #1812117

1e6a72b... by Dan Watkins

DataSourceEc2: update RELEASE_BLOCKER to be more accurate

Our previous understanding of the upgrade issue was incomplete; it turns
out the only change we need is the one now outlined.

3554ffe... by Ryan Harper

cloud-init-per: POSIX sh does not support string subst, use sed

cloud-init-per is run via /bin/sh which requires POSIX shell
compliance and does not implement string substitution like
bash. Replace these calls with use of sed.

LP: #1819222

7c07af2... by Scott Moser

Support locking user with usermod if passwd is not available.

In some cases, the 'passwd' command might not be available, but
'usermod' might be. In debian systems both are provided by the
'passwd' package. In Redhat/Centos passwd comes from 'passwd' package
while 'usermod' comes from `shadow-utils`

This should just support either one with no real cost other than
the check.

43f5850... by zolti

Example for Microsoft Azure data disk added.

109772c... by Dan Watkins

clean: correctly determine the path for excluding seed directory

Previously, init.paths.cloud_dir has a trailing slash, which meant that
"/var/lib/cloud//seed" was being compared to "/var/lib/cloud/seed" and
(of course), never matching.

In this commit, switch to using os.path.join to avoid this case (and
update the tests to catch it in future).

LP: #1818571