~harlowja/cloud-init:tpl-cloud-cfg

Last commit made on 2016-10-04
Get this branch:
git clone -b tpl-cloud-cfg https://git.launchpad.net/~harlowja/cloud-init
Only Joshua Harlow can upload to this branch. If you are Joshua Harlow please log in for upload directions.

Branch merges

Branch information

Name:
tpl-cloud-cfg
Repository:
lp:~harlowja/cloud-init

Recent commits

8a445f0... by Joshua Harlow

Make cloud.cfg a template

Certain settings in cloud.cfg don't make sense on different
and/or other distros, and certain modules are routinely being
not applied by various downstream distributors so to aid in
this split of cloud.cfg that is happening downstream anyways we
might as well turn cloud.cfg into a template that all can share
and customize (if needed) for certain distros (this makes it
easier to identify common themes and differences and resolve
those).

This change does just that and adjust needed other tooling to
correctly know how to include the renamed and new cloud.cfg
files.

1071b99... by Wesley Wiedenmeier

Improve module documentation and doc cleanup.

This adds lots of config module documentation in a standard format.
It will greatly improve the content at readthedocs.
Additionally:
 * Add a 'doc' env to tox.ini
 * Changed default highlight language for sphinx conf from python to yaml
   most examples in documentation are yaml configs
 * Updated datasource examples to highlight sh code properly

02f6c4b... by Stéphane Graber

lxd: Update network config for LXD 2.3

Prior to LXD 2.3, the bridge configuration was done through distro
packaging. Thus, lxd module interacted with debconf.
With 2.3 and higher, this is now done inside LXD itself, so we
need to use "lxc network" there.

For now, this perfectly matches what we had before with debconf and
doesn't cover any of the new options. We can always add those later.

A set of tests similar to what we had for debconf has been added to make
sure things look good.

This is tested in Yakkety container running LXD 2.3 and all options seem
to be passed through as expected, giving me the bridge I defined.

Signed-off-by: Stéphane Graber <email address hidden>

9f83bb8... by Ben Howard

DigitalOcean: use meta-data for network configruation

On DigitalOcean, Network information is provided via Meta-data.
It changes the datasource to be a local datasource, meaning it
will run before fallback networking is configured.

The advantage of that is that before networking is configured it
can bring up a network device with ipv4 link-local and hit the
metadata service that lives at 169.254.169.254 to find its networking
configuration. It then takes down the link local address and lets
cloud-init configure networking.

The configuring of a network device to go looking for a metadata
service is gated by a check of data in the smbios. This guarantees
that the code will not run on another system.

6d1edc3... by Scott Moser

ntp: move to run after apt configuration

since ntp module may try to install packages, it needs to run after
apt is configured.

LP: #1628337

0439d8a... by Robert Schweikert

Decode unicode types in decode_binary

The test in decode_binary for six.text_type was incorrect as that includes
unicode type in Python 2 which should actually be decoded.

When the type is string_types we now properly check only for basestring and
str in Python 2 and Python 3 respectively and return the given blob without
making an attempt to decode.

1b71b47... by Joshua Harlow

systemd: Ensure that cloud-init-local happens before NetworkManager

30d0adb... by Paul Meyer

Allow ephemeral drive to be unpartitioned

If device has no partition table, the first line of output from `sgdisk
-p <device>` will be "Creating new GPT entries.", instead of something
like "Disk /dev/sdb: 266338304 sectors, 127.0 GiB".

Also, protect against localized output by adjusting subp calls that
parse sgdisk output to set LANG=C.

40a400e... by Scott Moser

subp: add 'update_env' argument

In order for a caller to use 'env' argument of subp, they
will realistically do:
  env = os.environ.copy()
  env['FOO'] = 'BZR'
  subp(cmd, env=env)

This shortens that to be:
  subp(cmd, update_env={'FOO': 'BZR'})

Add tests, and update growpart tests to use mock when playing with
os.environ.

970dbd1... by LaMont Jones

net: support reading ipv6 dhcp config from initramfs

This adds support for understanding 'dhcp6' as a protocol
that can be written into /run/net-IFACE.cfg files by the initramfs.

The end result is supporting ipv6 dhcp from initramfs boot
all the way into iscsi root.

LP: #1621615, #1621507