~chad.smith/cloud-init:cleanup/render-az-instance-data-for-azure

Last commit made on 2018-08-21
Get this branch:
git clone -b cleanup/render-az-instance-data-for-azure 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:
cleanup/render-az-instance-data-for-azure
Repository:
lp:~chad.smith/cloud-init

Recent commits

a82083f... by Chad Smith

azure: render avaiability zone in instance-data.json

a03ed8b... by Joshua Powers

tests: disable snap, fix write_files binary

The snap test requires access to a proxy and currently the integration
tests do not handle this scenario. I am disabling the test untill I can
loop back around and fix this.

The write_files test, specifically, the binary test is failing on cosmic
because the "binary" file we were writting was not a complete elf
executable, but we expected 'file' to identify it as such.

The change here is to simply use some 24 bytes of random, non-utf data
and check that file was written correctly via expected checksum.

aaffd59... by Scott Moser

Add datasource Oracle Compute Infrastructure (OCI).

This adds a Oracle specific datasource that functions with OCI.
It is a simplified version of the OpenStack metadata server
with support for vendor-data.

It does not support the OCI-C (classic) platform.

Also here is a move of BrokenMetadata to common 'sources'
as this was the third occurrence of that class.

47548df... by Chad Smith

azure: allow azure to generate network configuration from IMDS per boot.

Azure datasource now queries IMDS metadata service for network
configuration at link local address
http://169.254.169.254/metadata/instance?api-version=2017-12-01. The
azure metadata service presents a list of macs and allocated ip addresses
associated with this instance. Azure will now also regenerate network
configuration on every boot because it subscribes to EventType.BOOT
maintenance events as well as the 'first boot'
EventType.BOOT_NEW_INSTANCE.

For testing add azure-imds --kind to cloud-init devel net_convert tool
for debugging IMDS metadata.

Also refactor _get_data into 3 discrete methods:
  - is_platform_viable: check quickly whether the datasource is
    potentially compatible with the platform on which is is running
  - crawl_metadata: walk all potential metadata candidates, returning a
    structured dict of all metadata and userdata. Raise InvalidMetaData on
    error.
  - _get_data: call crawl_metadata and process results or error. Cache
    instance data on class attributes: metadata, userdata_raw etc.

51f49dc... by Louis Bouchard <email address hidden>

Scaleway: Add network configuration to the DataSource

DEP_NETWORK is removed since the network_config must
run at each boot. New EventType.BOOT event is used
for that.

Network is brought up early to fetch the metadata which
is required to configure the network (ipv4 and/or v6).

Adds unittests for the following and fixes test_common for
LOCAL and NETWORK sets.

f624927... by Wesley Gao

docs: Fix example cloud-init analyze command to match output.

Fix a typo in in documentation that showed 'analyze blame' but
intended to show 'analyze dump'.

41f508d... by Scott Moser

netplan: Correctly render macaddress on a bonds and bridges when provided.

When converting network config v1 to netplan, we were not correctly
rendering the 'macaddress' key on a bond. Not that the difference
in spelling between v1 'mac_address' and v2 'macaddress' is intentional.
Also fixed here is rendering of the macaddress for bridges.

LP: #1784699

a6f95c7... by Scott Moser

tools: Add 'net-convert' subcommand command to 'cloud-init devel'.

Move the tools/net-convert.py to be exposed as part of 'cloud-init devel'
subcommands.
It can now be called like:
  $ cloud-init devel net-convert
Or, if you just have checked out source (and no cli executable):

  $ python3 -m cloudinit.cmd.devel.net_convert
or
  $ python3 -m cloudinit.cmd.main devel net-convert

e218c59... by Scott Moser

redhat: remove ssh keys on new instance.

This changes redhat's default behavior to remove the ssh keys on
new instance (ssh_deletekeys will now be at its default true value).

On redhat systems, cloud-init.service has both:
  Wants=sshd-keygen.service
  Before=sshd-keygen.serviceh

Which is why 'ssh_genkeytypes' is set to None
(yaml '~' == yaml null == python none).

I've changed that to be null as it seems more clear and we do not
use the tilda anywhere else in configs.

LP: #1781094
rhbz: https://bugzilla.redhat.com/show_bug.cgi?id=1598832

538af8e... by Scott Moser

Use typeset or local in profile.d scripts.

Bash and most other "bourne-like" shells allow declaring function
local variables via 'local'. ksh does not. Instead of using 'local'
always, use 'typeset' when the KSH_VERSION variable is present in
environment.

LP: #1784713