<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-cloud-init.git/cloudinit/net/tests, branch crux</title>
<subtitle> (mirror of https://github.com/vyos/vyos-cloud-init.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-cloud-init.git/atom?h=crux</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-cloud-init.git/atom?h=crux'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/'/>
<updated>2018-11-26T17:37:31+00:00</updated>
<entry>
<title>net: Ephemeral*Network: add connectivity check via URL</title>
<updated>2018-11-26T17:37:31+00:00</updated>
<author>
<name>Chad Smith</name>
<email>chad.smith@canonical.com</email>
</author>
<published>2018-11-26T17:37:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=ef0611a51a98a273cfa37b0daeb3e9d151888b88'/>
<id>urn:sha1:ef0611a51a98a273cfa37b0daeb3e9d151888b88</id>
<content type='text'>
We add a new Optional parameter: connectivity_url
This is used in __enter__ to verify if a connection already exists.
If it does exist, no operations are performed.
</content>
</entry>
<entry>
<title>EphemeralIPv4Network: Be more explicit when adding default route.</title>
<updated>2018-09-13T22:15:39+00:00</updated>
<author>
<name>Scott Moser</name>
<email>smoser@ubuntu.com</email>
</author>
<published>2018-09-13T22:15:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=12066fc8f6518d294501aa126b5332ea90c4896c'/>
<id>urn:sha1:12066fc8f6518d294501aa126b5332ea90c4896c</id>
<content type='text'>
On OpenStack based OVH public cloud, we got DHCP response with
  fixed-address 54.36.113.86;
  option subnet-mask 255.255.255.255;
  option routers 54.36.112.1;

The router clearly is not on the subnet.  So 'ip' would fail when
we tried to add the default route.
The solution here is to add an explicit route on that interface
to the router and then add the default route.

Also add 'bgpovs' to the list of 'physical' types for OpenStack
network configuration.  That type is used on OVH public cloud.

LP: #1792415
</content>
</entry>
<entry>
<title>tests: Disallow use of util.subp except for where needed.</title>
<updated>2018-09-05T16:02:25+00:00</updated>
<author>
<name>Scott Moser</name>
<email>smoser@ubuntu.com</email>
</author>
<published>2018-09-05T16:02:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=a8dcad9ac62bb1d2a4f7489960395bad6cac9382'/>
<id>urn:sha1:a8dcad9ac62bb1d2a4f7489960395bad6cac9382</id>
<content type='text'>
In many cases, cloud-init uses 'util.subp' to run a subprocess.
This is not really desirable in our unit tests as it makes the tests
dependent upon existance of those utilities.

The change here is to modify the base test case class (CiTestCase) to
raise exception any time subp is called.  Then, fix all callers.
For cases where subp is necessary or actually desired, we can use it
via
  a.) context hander CiTestCase.allow_subp(value)
  b.) class level self.allowed_subp = value

Both cases the value is a list of acceptable executable names that
will be called (essentially argv[0]).

Some cleanups in AltCloud were done as the code was being updated.
</content>
</entry>
<entry>
<title>net: detect unstable network names and trigger a settle if needed</title>
<updated>2018-04-26T20:35:23+00:00</updated>
<author>
<name>Ryan Harper</name>
<email>ryan.harper@canonical.com</email>
</author>
<published>2018-04-26T20:35:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=4731c8da25ee9bfbcf0ade1d7ffec95814d8622a'/>
<id>urn:sha1:4731c8da25ee9bfbcf0ade1d7ffec95814d8622a</id>
<content type='text'>
The cloud-init-local.service expects that any network device name changes
have already been completed by the kernel or udev daemon.

In some situations we've found that the renaming of interfaces from kernel
names (eth0, eth1, etc) to their persistent names (eno1, ens3, enp0s1,
etc) may happen after cloud-init-local has started where it reads values
from sysfs about what network devices are present, and which device to use
as a fallback nic.

Subsequently, cloud-init-local would write out network configuration for a
kernel device name which would no longer be present by the time that
networking services start to bring up the devices. The result is that the
instance does not get networking configured. Prior to use of
systemd-networkd, the Ubuntu 'networking.service' unit included a call to
udevadm settle which is why this race is not seen on a Xenial system.

This change adds the ability to detect if an interface has a stable name,
if if we find one without stable names and stable names have not been
disabled (net.ifnames=0 in /proc/cmdline), then cloud-init will invoke
udevadm settle.

LP: #1766287
</content>
</entry>
<entry>
<title>net: accept network-config in netplan format for renaming interfaces</title>
<updated>2018-02-08T21:12:32+00:00</updated>
<author>
<name>Ryan Harper</name>
<email>ryan.harper@canonical.com</email>
</author>
<published>2018-01-23T00:33:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=0d30c9575f9e3e4cfb7771cee992e7f669ac3e76'/>
<id>urn:sha1:0d30c9575f9e3e4cfb7771cee992e7f669ac3e76</id>
<content type='text'>
net.apply_network_config_names currently only accepts network-config
in version 1 format.  When users include a netplan format network-config the
rename code does not find any of the 'set-name' directives and does not rename
any of the interfaces.  This causes some netplan configurations to fail.

This patch adds support for parsing netplan format and extracts the needed
information (macaddress and set-name values) to allow cloud-init to issue
interface rename commands.  We know raise a RuntimeError if presented with
an unknown config format.

LP: #1709715
</content>
</entry>
<entry>
<title>ec2: Fix sandboxed dhclient background process cleanup.</title>
<updated>2017-12-01T02:51:14+00:00</updated>
<author>
<name>Chad Smith</name>
<email>chad.smith@canonical.com</email>
</author>
<published>2017-11-30T20:09:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=7acc9e68fafbbd7c56587aebe752ba6ba8c8a3db'/>
<id>urn:sha1:7acc9e68fafbbd7c56587aebe752ba6ba8c8a3db</id>
<content type='text'>
There is a race condition where our sandboxed dhclient properly writes a
lease file but has not yet written a pid file. If the sandbox temporary
directory is torn down before the dhclient subprocess writes a pidfile
DataSourceEc2Local gets a traceback and the instance will fallback to
DataSourceEc2 in the init-network stage. This wastes boot cycles we'd
rather not spend.

Fix handling of sandboxed dhclient to wait for both pidfile and leasefile
before proceding. If either file doesn't show in 5 seconds, log a warning
and return empty lease results {}.

LP: #1735331
</content>
</entry>
<entry>
<title>EC2: Kill dhclient process used in sandbox dhclient.</title>
<updated>2017-11-19T23:27:06+00:00</updated>
<author>
<name>Scott Moser</name>
<email>smoser@brickies.net</email>
</author>
<published>2017-11-19T23:27:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=d3a0958c09c73a78fda6e922b749a1b98036e984'/>
<id>urn:sha1:d3a0958c09c73a78fda6e922b749a1b98036e984</id>
<content type='text'>
dhclient runs, obtains a address and then backgrounds itself.
cloud-init did not take care to kill it after it was done with it.
After it has run and created the leases, we can kill it.

LP: #1732964
</content>
</entry>
<entry>
<title>Azure, CloudStack: Support reading dhcp options from systemd-networkd.</title>
<updated>2017-10-03T12:59:43+00:00</updated>
<author>
<name>Dimitri John Ledkov</name>
<email>xnox@ubuntu.com</email>
</author>
<published>2017-09-30T04:00:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=9d2a87dc386b7aed1a8243d599676e78ed358749'/>
<id>urn:sha1:9d2a87dc386b7aed1a8243d599676e78ed358749</id>
<content type='text'>
Systems that used systemd-networkd's dhcp client would not be able to get
information on the Azure endpoint (placed in Option 245) or the CloudStack
server (in 'server_address').

The change here supports reading these files in /run/systemd/netif/leases.
The files declare that "This is private data. Do not parse.", but at this
point we do not have another option.

LP: #1718029
</content>
</entry>
<entry>
<title>tests: Add cloudinit package to all test targets</title>
<updated>2017-09-20T22:41:31+00:00</updated>
<author>
<name>Chad Smith</name>
<email>chad.smith@canonical.com</email>
</author>
<published>2017-09-20T22:41:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=d3a8777244ebc107e1124c4fab441b5e0eb75f44'/>
<id>urn:sha1:d3a8777244ebc107e1124c4fab441b5e0eb75f44</id>
<content type='text'>
The package cloudinit was sparsely added to only the makefile's unittest
target and tox's py3 target. This branch adds cloudinit package to 'make
unittest3' and all tox environments. It tweaks one cloudinit unit test to
use mocked_object.call_count instead of mocked_object.assert_called_once
which is not defined in some python unittest versions.
</content>
</entry>
<entry>
<title>ec2: Fix maybe_perform_dhcp_discovery to use /var/tmp as a tmpdir</title>
<updated>2017-09-19T00:37:10+00:00</updated>
<author>
<name>Chad Smith</name>
<email>chad.smith@canonical.com</email>
</author>
<published>2017-09-16T02:07:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=7eb3460b0d6d3e362a246958a7ea0a9ee5d91d5e'/>
<id>urn:sha1:7eb3460b0d6d3e362a246958a7ea0a9ee5d91d5e</id>
<content type='text'>
/run/cloud-init/tmp is on a filesystem mounted noexec, so running
dchlient in Ec2Local during discovery breaks with 'Permission denied'.
This branch allows us to run from a different tmp dir so we have exec
rights.

LP: #1717627
</content>
</entry>
</feed>
