Last commit made on 2019-02-25
Get this branch:
git clone -b string_types 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

afd4381... by Dan Watkins

util: don't determine string_types ourselves

six already provides this for us, and we're already paying the cost to
determine it there; no need to do it twice.

8cfcc28... by Eric Williams

Enable encrypted_data_bag_secret support for Chef

Encrypted data bags require a secrets file to be present to
decrypt, and the location of the file must be configured the
Chef client configuration file, client.rb.

This update enables cloud-init's chef module to update that
setting in client.rb.

LP: #1817082

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

azure: Filter list of ssh keys pulled from fabric

The Azure data source is expected to expose a list of
ssh keys for the user-to-be-provisioned in the crawled
metadata. When configured to use the __builtin__ agent
this list is built by the WALinuxAgentShim. The shim
retrieves the full set of certificates and public keys
exposed to the VM from the wireserver, extracts any
ssh keys it can, and returns that list.

This fix reduces that list of ssh keys to just the
ones whose fingerprints appear in the "administrative
user" section of the ovf-env.xml file. The Azure
control plane exposes other ssh keys to the VM for
other reasons, but those should not be added to the
authorized_keys file for the provisioned user.

79d40e6... by Ryan Harper

doc: update merging doc with fixes and some additional details/examples

Update config merging documentation with cloud-config syntax fix. Add an
example showing how to merge two files with runcmd.

e7a8f81... by Chad Smith

tests: integration test failure summary to use traceback if empty error

When integration tests verification fails, the object returned
contains has 'error' and 'traceback' keys. Each key can contain empty
strings. If the simplified 'error' message is empty, fallback and use
the more verbose full 'traceback' text in the failure summary.

9cf9d8c... by Vitaly Kuznetsov

This is to fix https://bugs.launchpad.net/cloud-init/+bug/1812676

0bb4c74... by Guilherme G. Piccoli

EC2: Rewrite network config on AWS Classic instances every boot

AWS EC2 instances' network come in 2 basic flavors: Classic and VPC
(Virtual Private Cloud). The former has an interesting behavior of having
its MAC address changed whenever the instance is stopped/restarted. This
behavior is not observed in VPC instances.

In Ubuntu 18.04 (Bionic) the network "management" changed from ENI-style
(etc/network/interfaces) to netplan, and when using netplan we observe
the following block present in /etc/netplan/50-cloud-init.yaml:

  macaddress: aa:bb:cc:dd:ee:ff

Jani Ollikainen noticed in Launchpad bug #1802073 that the EC2 Classic
instances were booting without network access in Bionic after stop/restart
procedure, due to their MAC address change behavior. It was narrowed down
to the netplan MAC match block, that kept the old MAC address after
stopping and restarting an instance, since the network configuration
writing happens by default only once in EC2 instances, in the first boot.

This patch changes the network configuration write to every boot in EC2
Classic instances, by checking against the "vpc-id" metadata information
provided only in the VPC instances - if we don't have this metadata value,
cloud-init will rewrite the network configuration file in every boot.

This was tested in an EC2 Classic instance and proved to fix the issue;
unit tests were also added for the new method is_classic_instance().

LP: #1802073

Reported-by: Jani Ollikainen <email address hidden>
Suggested-by: Ryan Harper <email address hidden>
Co-developed-by: Chad Smith <email address hidden>
Signed-off-by: Guilherme G. Piccoli <email address hidden>

fff37e7... by Ryan Harper

netinfo: Adjust ifconfig output parsing for FreeBSD ipv6 entries

FreeBSD ifconfig output for ipv6 addrs doesn't find scopeid values
when present in the output and the pformat rendering assumes that
an ipv6 address will have a 'scope6' entry in the netdev info
dictionary. This patch finds the scopeid value, which is not
always inside <>, and in some cases v6 addrs don't have a scopeid
value in the output, so when rendering the table, allow scope6 value
to be replaced with the empty value.

LP: #1779672

cf30836... by Ryan Harper

netplan: Don't render yaml aliases when dumping netplan

Cloud-init rendered netplan with duplicate aliases if a network config
included "global" nameserver/search values. Netplan uses can read yaml
files which do use aliaes but cloud-init did not render a single yaml
dictionary, instead it combined yaml sections into a single document
which sometimes resulted in duplicate aliases being present.

This branch introduces a yaml SafeDumper class which can set the
'ignore_aliases' attribute. This is not enabled by default but callers
to util.yaml_dumps can pass a boolean to toggle this. The netplan
render uses noalias=True and the resulting yaml output does not contain
any aliases.

LP: #1815051

e9bf4f2... by do3meli

add PyCharm IDE .idea/ path to .gitignore