unofficial mirror of Ubuntu's cloud-init
Python Shell Makefile
Switch branches/tags
ubuntu/0.7.9-233-ge586fe35-0ubuntu1_17.04.1 ubuntu/0.7.9-233-ge586fe35-0ubuntu1_16.04.1 ubuntu/0.7.9-231-g80bf98b9-0ubuntu1 ubuntu/0.7.9-221-g7e41b2a7-0ubuntu3 ubuntu/0.7.9-221-g7e41b2a7-0ubuntu2 ubuntu/0.7.9-221-g7e41b2a7-0ubuntu1 ubuntu/0.7.9-212-g865e941f-0ubuntu1 ubuntu/0.7.9-210-ge80517ae-0ubuntu1 ubuntu/0.7.9-199-g4d9f24f5-0ubuntu1 ubuntu/0.7.9-197-gebc9ecbc-0ubuntu1 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_17.04.2 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_17.04.1 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_16.10.2 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_16.10.1 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_16.04.2 ubuntu/0.7.9-153-g16a7302f-0ubuntu1_16.04.1 ubuntu/0.7.9-153-g16a7302f-0ubuntu1 ubuntu/0.7.9-144-g2825a917-0ubuntu1 ubuntu/0.7.9-113-g513e99e0-0ubuntu1_17.04.1 ubuntu/0.7.9-113-g513e99e0-0ubuntu1_16.10.1 ubuntu/0.7.9-113-g513e99e0-0ubuntu1_16.04.1 ubuntu/0.7.9-90-g61eb03fe-0ubuntu1.16.10.1 ubuntu/0.7.9-90-g61eb03fe-0ubuntu1 ubuntu/0.7.9-89-gbf7723e8-0ubuntu1 ubuntu/0.7.9-87-gd23543eb-0ubuntu1 ubuntu/0.7.9-82-g0e2030ca-0ubuntu1 ubuntu/0.7.9-77-g4a2b2f87-0ubuntu1 ubuntu/0.7.9-68-gef18b8ac-0ubuntu1 ubuntu/0.7.9-66-g5beecdf8-0ubuntu1 ubuntu/0.7.9-48-g1c795b9-0ubuntu1.16.10.1 ubuntu/0.7.9-48-g1c795b9-0ubuntu1.16.04.1 ubuntu/0.7.9-48-g1c795b9-0ubuntu1 ubuntu/0.7.9-47-gc81ea53-0ubuntu1.16.10.1 ubuntu/0.7.9-47-gc81ea53-0ubuntu1 ubuntu/0.7.9-38-g83606ae-0ubuntu1 ubuntu/0.7.9-30-gf4e8eb0-0ubuntu1 ubuntu/0.7.9-26-g1cd8cfa-0ubuntu1 ubuntu/0.7.9-25-g65529b6-0ubuntu1 ubuntu/0.7.9-23-g0df21b6-0ubuntu1 ubuntu/0.7.9-19-ge987092-0ubuntu2 ubuntu/0.7.9-19-ge987092-0ubuntu1 ubuntu/0.7.9-0ubuntu2 ubuntu/0.7.9-0ubuntu1.16.10.1 ubuntu/0.7.9-0ubuntu1.16.04.2 ubuntu/0.7.9-0ubuntu1.16.04.1 ubuntu/0.7.8-68-gca3ae67-0ubuntu1.16.10.1 ubuntu/0.7.8-68-gca3ae67-0ubuntu1 ubuntu/0.7.8-67-gc9c9197-0ubuntu1 ubuntu/0.7.8-61-g2d2ec70-0ubuntu1.16.10.1 ubuntu/0.7.8-61-g2d2ec70-0ubuntu1 ubuntu/0.7.8-49-g9e904bb-0ubuntu1_16.04.4 ubuntu/0.7.8-49-g9e904bb-0ubuntu1.16.04.1 ubuntu/0.7.8-49-g9e904bb-0ubuntu1 ubuntu/0.7.8-48-g9d826b8-0ubuntu1 ubuntu/0.7.8-47-gb6561a1-0ubuntu1.16.04.1 ubuntu/0.7.8-45-g584b843-0ubuntu1.16.04.1 ubuntu/0.7.8-45-g584b843-0ubuntu1 ubuntu/0.7.8-35-gc24187e-0ubuntu1 ubuntu/0.7.8-34-ga1cdebd-0ubuntu1 ubuntu/0.7.8-28-gf7a5756-0ubuntu1 ubuntu/0.7.8-27-g29348af-0ubuntu1 ubuntu/0.7.8-15-g6e45ffb-0ubuntu1 ubuntu/0.7.8-14-g94fd35e-0ubuntu1 ubuntu/0.7.8-11-g02f6c4b-0ubuntu1 ubuntu/0.7.8-8-g0439d8a-0ubuntu1.16.04.1 ubuntu/0.7.8-8-g0439d8a-0ubuntu1 ubuntu/0.7.8-4-g970dbd1-0ubuntu1 ubuntu/0.7.8-3-g80f5ec4-0ubuntu1 ubuntu/0.7.8-1-g3705bb5-0ubuntu1.16.04.3 ubuntu/0.7.8-1-g3705bb5-0ubuntu1.16.04.2 ubuntu/0.7.8-1-g3705bb5-0ubuntu1_16.04.2 ubuntu/0.7.8-1-g3705bb5-0ubuntu1.16.04.1 ubuntu/0.7.8-1-g3705bb5-0ubuntu1 ubuntu/0.7.7_bzr1256-0ubuntu1_16.04.1 ubuntu/0.7.7_bzr1246-0ubuntu1_16.04.1 ubuntu/0.7.7_bzr1245-0ubuntu1_16.04.1 ubuntu/0.7.7_bzr1212-0ubuntu1 ubuntu/0.7.7_bzr1209-0ubuntu1 ubuntu/0.7.7_bzr1208-0ubuntu1 ubuntu/0.7.7_bzr1200-0ubuntu1 ubuntu/0.7.7_bzr1192-0ubuntu2 ubuntu/0.7.7_bzr1192-0ubuntu1 ubuntu/0.7.7_bzr1189-0ubuntu1 ubuntu/0.7.7_bzr1182-0ubuntu1 ubuntu/0.7.7_bzr1176-0ubuntu1 ubuntu/0.7.7_bzr1160-0ubuntu1 ubuntu/0.7.7_bzr1156-0ubuntu2 ubuntu/0.7.7_bzr1156-0ubuntu1 ubuntu/0.7.7_bzr1155-0ubuntu1 ubuntu/0.7.7_bzr1154-0ubuntu1 ubuntu/0.7.7-31-g65ace7b-0ubuntu1.16.04.2 ubuntu/0.7.7-31-g65ace7b-0ubuntu1.16.04.1 ubuntu/0.7.7-31-g65ace7b-0ubuntu1 ubuntu/0.7.7-28-g34a26f7-0ubuntu2 ubuntu/0.7.7-28-g34a26f7-0ubuntu1 ubuntu/0.7.7-26-g058dd75-0ubuntu1 ubuntu/0.7.7-22-g763f403-0ubuntu1 ubuntu/0.7.7-17-g40a2f62-0ubuntu1 ubuntu/0.7.7-13-g41271bd-0ubuntu1 ubuntu/0.7.7-10-gbc2c326-0ubuntu1
Nothing to show
Latest commit d5f855d Aug 10, 2017 @blackboxsw blackboxsw ec2: Allow Ec2 to run in init-local using dhclient in a sandbox.
This branch is a prerequisite for IPv6 support in AWS by allowing Ec2
datasource to query the metadata source version 2016-09-02 about whether
or not it needs to configure IPv6 on interfaces. If version 2016-09-02
is not present, fallback to the min_metadata_version of 2009-04-04. The
DataSourceEc2Local not run on FreeBSD because dhclient in doesn't
support the -sf flag allowing us to run dhclient without filesystem
side-effects.

To query AWS' metadata address @ 169.254.169.254, the instance must have
a dhcp-allocated address configured. Configuring IPv4 link-local
addresses result in timeouts from the metadata service. We introduced a
DataSourceEc2Local subclass which will perform a sandboxed dhclient
discovery which obtains an authorized IP address on eth0 and crawl
metadata about full instance network configuration.

Since ec2 IPv6 metadata is not sufficient in itself to tell us all the
ipv6 knownledge we need, it only be used as a boolean to tell us which
nics need IPv6. Cloud-init will then configure desired interfaces to
DHCPv6 versus DHCPv4.

Performance side note: Shifting the dhcp work into init-local for Ec2
actually gets us 1 second faster deployments by skipping init-network
phase of alternate datasource checks because Ec2Local is configured in
an ealier boot stage. In 3 test runs prior to this change: cloud-init
runs were 5.5 seconds, with the change we now average 4.6 seconds.

This efficiency could be even further improved if we avoiding dhcp
discovery in order to talk to the metadata service from an AWS
authorized dhcp address if there were some way to advertize the dhcp
configuration via DMI/SMBIOS or system environment variables.

Inspecting time costs of the dhclient setup/teardown in 3 live runs the
time cost for the dhcp setup round trip on AWS is:
test 1: 76 milliseconds
         dhcp discovery + metadata: 0.347 seconds
         metadata alone: 0.271 seconds
test 2: 88 milliseconds
         dhcp discovery + metadata: 0.388 seconds
         metadata alone: 0.300 seconds
test 3: 75 milliseconds
         dhcp discovery + metadata: 0.366 seconds
         metadata alone: 0.291 seconds

LP: #1709772
Permalink
Failed to load latest commit information.
cloudinit ec2: Allow Ec2 to run in init-local using dhclient in a sandbox. Aug 10, 2017
config FreeBSD: Make freebsd a variant, fix unittests and tools/build-on-fre… Jun 15, 2017
doc doc: fix disk setup example table_type options Jul 17, 2017
packages centos: do not package systemd-fsck drop-in. Jul 26, 2017
systemd systemd: make systemd-fsck run after cloud-init.service Jul 25, 2017
sysvinit cloudinitlocal fail to run during boot Jul 17, 2017
templates cc_ntp: fallback on timesyncd configuration if ntp is not installable Aug 4, 2017
tests ec2: Allow Ec2 to run in init-local using dhclient in a sandbox. Aug 10, 2017
tools tools/run-centos: make running with no argument show help. Jul 21, 2017
udev remove blocking udev functionality May 27, 2016
upstart cloud-init-blocknet: remove debug code going to /run/cloud-init-blocknet Sep 15, 2014
.gitignore snap: allows for creating cloud-init snap Apr 12, 2017
.pylintrc pylint: update output style to parseable Apr 21, 2017
ChangeLog release 0.7.9 Dec 23, 2016
HACKING.rst HACKING.rst: more info on filling out contributors agreement. Apr 12, 2017
LICENSE LICENSE: Allow dual licensing GPL-3 or Apache 2.0 Dec 22, 2016
LICENSE-Apache2.0 LICENSE: Allow dual licensing GPL-3 or Apache 2.0 Dec 22, 2016
LICENSE-GPLv3 LICENSE: Allow dual licensing GPL-3 or Apache 2.0 Dec 22, 2016
MANIFEST.in cloud.cfg: move to a template. setup.py changes along the way. Jun 8, 2017
Makefile makefile: fix ci-deps-ubuntu target Jul 28, 2017
TODO.rst move TODO to TODO.rst Jul 7, 2014
requirements.txt requirements.txt: remove trailing white space. Jun 29, 2017
setup.py cloudinit.net: add initialize_network_device function and tests Jul 28, 2017
snapcraft.yaml snap: Removing snapcraft plug line Jun 7, 2017
test-requirements.txt tox/build: do not package depend on style requirements. May 24, 2017
tox.ini ec2: Allow Ec2 to run in init-local using dhclient in a sandbox. Aug 10, 2017