~chad.smith/cloud-init:aws-ipv6-dhcp-support

Last commit made on 2017-08-24
Get this branch:
git clone -b aws-ipv6-dhcp-support 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

Name:
aws-ipv6-dhcp-support
Repository:
lp:~chad.smith/cloud-init

Recent commits

ca7da13... by Chad Smith

use public-ipv4s and ipv6s instead of vpc-ipv(4|6)-cidr-blocks

83bffab... by Chad Smith

unittests for DataSourceEc2.network_config property and convert_ec2_metadata_network_config function. flakes

6c955b2... by Chad Smith

add network_config property definition which specifies the datasource network config dict by calling convert_ec2_metadata_network_config

f2c1ea1... by Chad Smith

add WIP convert_ec2_metadata_network_config to DataSourceEc2 for generating ipv4 and ipv6 network configuration.

f831a87... by Chad Smith

cc_landscape & cc_puppet: Fix six.StringIO use in writing configs

Both landscape and puppet modules had issues with the way they wrote
/etc/landscape/client.conf or /etc/puppet/puppet.conf in either python3 or
python2. This branch adds initial unit tests for both modules which will
get better exercise under both python2 and python3.

The unit tests shed light on a few issues:
   - In the cc_landscape module py3 can't provide six.StringIO content to
     ConfigParser.write, so we need to use six.BytesIO instead
   - In the cc_puppet module, python <= 2.7 doesn't support using
     six.StringIO as a context manager, so we drop the context manager
     fanciness and directly set outputstream = StringIO().
   - The docstring in cc_puppet is fixed to document the 'conf'
     sub-key requiring valid puppet section names for each
     key-value list.

LP: #1699282
LP: #1710932

cc9762a... by Chad Smith

schema cli: Add schema subcommand to cloud-init cli and cc_runcmd schema

This branch does a few things:
  - Add 'schema' subcommand to cloud-init CLI for validating
    cloud-config files against strict module jsonschema definitions
  - Add --annotate parameter to 'cloud-init schema' to annotate
    existing cloud-config file content with validation errors
  - Add jsonschema definition to cc_runcmd
  - Add unit test coverage for cc_runcmd
  - Update CLI capabilities documentation

This branch only imports development (and analyze) subparsers when the
specific subcommand is provided on the CLI to avoid adding costly unused
file imports during cloud-init system boot.

The schema command allows a person to quickly validate a cloud-config text
file against cloud-init's known module schemas to avoid costly roundtrips
deploying instances in their cloud of choice. As of this branch, only
cc_ntp and cc_runcmd cloud-config modules define schemas. Schema
validation will ignore all undefined config keys until all modules define
a strict schema.

To perform validation of runcmd and ntp sections of a cloud-config file:
$ cat > cloud.cfg <<EOF
runcmd: bogus
EOF
$ python -m cloudinit.cmd.main schema --config-file cloud.cfg

$ python -m cloudinit.cmd.main schema --config-file cloud.cfg \
  --annotate

Once jsonschema is defined for all ~55 cc modules, we will move this
schema subcommand up as a proper subcommand of the cloud-init CLI.

3395a33... by =?utf-8?q?Joonas_Kylm=C3=A4l=C3=A4?= <email address hidden>

Debian: Remove non-free repositories from apt sources template.

The Debian GNU/Linux distribution doesn't come offically with the
non-free repositories enabled. Therefore, we want to disable those in
the cloud-init template.

LP: #1700091

e74d775... by Chad Smith

tools: Add tooling for basic cloud-init performance analysis.

This branch adds cloudinit-analyze into cloud-init proper. It adds an
"analyze" subcommand to the cloud-init command line utility for quick
performance assessment of cloud-init stages and events.

On a cloud-init configured instance, running "cloud-init analyze blame"
will now report which cloud-init events cost the most wall time. This
allows for quick assessment of the most costly stages of cloud-init.

This functionality is pulled from Ryan Harper's analyze work.

The cloudinit-analyze main script itself has been refactored a bit for
inclusion as a subcommand of cloud-init CLI. There will be a followup
branch at some point which will optionally instrument detailed strace
profiling, but that approach needs a bit more discussion first.

This branch also adds:
 * additional debugging topic to the sphinx-generated docs describing
   cloud-init analyze, dump and show as well as cloud-init single usage.
 * Updates the Makefile unittests target to include cloudinit directory
   because we now have unittests within that package.

LP: #1709761

dc2bd79... by Ryan Harper

network: add v2 passthrough and fix parsing v2 config with bonds/bridge params

If the network-config sent to cloud-init is in version: 2 format then
when rendering netplan, we can pass the content through and avoid
consuming network_state elements. This removes the need for trying to
map many v2 features onto network state where other renderers won't be
able to use anyhow (for example match parameters for multi-interface
configuration and wifi configuration support).

Additionally ensure we retain bond/bridge v2 configuration in network
state so when rendering to eni or sysconfig we don't lose the configuration

- Drop the NotImplemented wifi exception, log a warning that it works for
  netplan only
- Adjust unittests to new code path and output
- Fix issue with v2 macaddress values getting dropped
- Add unittests for consuming/validating v2 configurations

LP: #1709180

385d1ca... by Ryan Harper

doc: update capabilities with features available, link doc reference, cli example