<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-cloud-init.git/tests/unittests, branch sagitta</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=sagitta</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-cloud-init.git/atom?h=sagitta'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/'/>
<updated>2022-03-25T19:42:00+00:00</updated>
<entry>
<title>T2117: Cloud-init updated to 22.1</title>
<updated>2022-03-25T19:42:00+00:00</updated>
<author>
<name>zsdc</name>
<email>taras@vyos.io</email>
</author>
<published>2022-03-25T18:58:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=31448cccedd8f841fb3ac7d0f2e3cdefe08a53ba'/>
<id>urn:sha1:31448cccedd8f841fb3ac7d0f2e3cdefe08a53ba</id>
<content type='text'>
Merged with 22.1 tag from the upstream Cloud-init repository.

Our modules were slightly modified for compatibility with the new
version.
</content>
</entry>
<entry>
<title>sources/azure: report ready in local phase (#1265)</title>
<updated>2022-02-15T17:19:19+00:00</updated>
<author>
<name>Chris Patterson</name>
<email>cpatterson@microsoft.com</email>
</author>
<published>2022-02-15T17:19:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=101a62f2389a933676e9d0d20d9f59303b1f1833'/>
<id>urn:sha1:101a62f2389a933676e9d0d20d9f59303b1f1833</id>
<content type='text'>
Pre-provisioned instances report ready early in the local phase and
again in the non-local phase, during setup().  Non-PPS only reports
ready during non-local phase.

Update the process to report ready during the local phase for all
cases.  Only attempt to do so if networking is up to prevent stalling
boot. We've already waited at least 20 minutes for DHCP if we're
provisioning, or 5 minutes for DHCP on normal boot requesting updated
network configuration.

- Extend _report_ready() with pubkey_info and raise exception
  on error to consolidate reporting done in _negotiate() and
  _report_ready().

- Remove setup(), moving relevant logic into crawl_metadata().

- Move remaining _negotiate() logic into _cleanup_markers() and
  _determine_wireserver_pubkey_info().

These changes effectively fix two issues that were present:

(1) _negotiated is incorrectly set to True

When failing to report ready.  _negotiate() squashed the exception and
the return value was not checked.  This was probably masked due to the
forced removal of obj.pkl on Ubuntu instances, but would be preferable
once we start persisting it to prevent unnecessary re-negotiation.

(2) provisioning media is not ejected for non-PPS

_negotiate() did not pass iso_dev parameter when reporting ready.  The
host will ensure this operation takes place, but it is preferable to
eject /dev/sr0 from within the guest when we're done with it.

Lastly, this removes any need for lease file parsing as the wireserver
addressed is tracked for ephemeral DHCP.  A follow-up PR will remove
this now-unused logic.

Signed-off-by: Chris Patterson &lt;cpatterson@microsoft.com&gt;</content>
</entry>
<entry>
<title>sources/azure: validate IMDS network configuration metadata (#1257)</title>
<updated>2022-02-14T19:53:36+00:00</updated>
<author>
<name>Chris Patterson</name>
<email>cpatterson@microsoft.com</email>
</author>
<published>2022-02-14T19:53:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=32fcbb580d6eacb06c901bc291e0fa118bb9b646'/>
<id>urn:sha1:32fcbb580d6eacb06c901bc291e0fa118bb9b646</id>
<content type='text'>
Due to race conditions and caching, IMDS may return stale or incomplete
metadata.  Add some validation to detect these scenarios and report
appropriate telemetry.

Introduce normalize_mac_address() to allow for comparison of mac
addresses, replacing that found inline in:
_generate_network_config_from_imds_metadata()

Add validation of final fetch of IMDS metadata.

Signed-off-by: Chris Patterson &lt;cpatterson@microsoft.com&gt;</content>
</entry>
<entry>
<title>use PEP 589 syntax for TypeDict (#1253)</title>
<updated>2022-02-14T19:24:00+00:00</updated>
<author>
<name>Brett Holman</name>
<email>bholman.devel@gmail.com</email>
</author>
<published>2022-02-14T19:24:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=50195ec8d1052d2b7a80f47a3709ebc4e74d6764'/>
<id>urn:sha1:50195ec8d1052d2b7a80f47a3709ebc4e74d6764</id>
<content type='text'>
Use PEP 589 syntax for TypeDict annotation.

Also fixes previously broken typing MetaSchema typing implementation.</content>
</entry>
<entry>
<title>Fix extra ipv6 issues, code reduction and simplification (#1243)</title>
<updated>2022-02-14T17:00:12+00:00</updated>
<author>
<name>eb3095</name>
<email>45504889+eb3095@users.noreply.github.com</email>
</author>
<published>2022-02-14T17:00:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=470b4a574514cf87f90682ac2bdd71b5fbbe6139'/>
<id>urn:sha1:470b4a574514cf87f90682ac2bdd71b5fbbe6139</id>
<content type='text'>
Eliminated the duplicate code and now run the entire configuration
routine against both public and private interfaces.
Also addressed an inconsistency from our metadata api for ipv6
address configuration.</content>
</entry>
<entry>
<title>sources/azure: address mypy/pyright typing complaints (#1245)</title>
<updated>2022-02-12T04:40:45+00:00</updated>
<author>
<name>Chris Patterson</name>
<email>cpatterson@microsoft.com</email>
</author>
<published>2022-02-12T04:40:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=0b41b359a70bbbf3a648862a9b849d60b9ff6c3b'/>
<id>urn:sha1:0b41b359a70bbbf3a648862a9b849d60b9ff6c3b</id>
<content type='text'>
Raise runtime errors for unhandled cases which would cause other
exceptions.  Ignore types for a few cases where a non-trivial
refactor would be required to prevent the warning.

Signed-off-by: Chris Patterson &lt;cpatterson@microsoft.com&gt;</content>
</entry>
<entry>
<title>Shell script handlers by freq (#1166)</title>
<updated>2022-02-10T21:49:38+00:00</updated>
<author>
<name>Chris Lalos</name>
<email>chris.lalos@gmail.com</email>
</author>
<published>2022-02-10T21:49:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=600b870b399feb9e072748e07ea223556261fbe7'/>
<id>urn:sha1:600b870b399feb9e072748e07ea223556261fbe7</id>
<content type='text'>
Handlers for per-boot/per-instance/per-once multipart MIME

Add handlers for adding scripts to userdata that can be run at various
frequencies. Scripts of type x-shellscript-per-boot,
x-shellscript-per-instance, or x-shellscript-per-once can be added
to a multipart MIME userdata message as part of instance userdata.
These scripts will then be added to the appropriate per-boot,
per-instance, or per-once directory in /var/lib/cloud/scripts/
during processing of userdata.</content>
</entry>
<entry>
<title>cloud-id: publish /run/cloud-init/cloud-id-&lt;cloud-type&gt; files (#1244)</title>
<updated>2022-02-10T20:18:00+00:00</updated>
<author>
<name>Chad Smith</name>
<email>chad.smith@canonical.com</email>
</author>
<published>2022-02-10T20:18:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=217ef6ba6c52788f4363b998b6da08863fea5cd9'/>
<id>urn:sha1:217ef6ba6c52788f4363b998b6da08863fea5cd9</id>
<content type='text'>
Once a valid datasource is detected, publish the following artifacts
to expedite cloud-identification without having to invoke cloud-id from
shell scripts or sheling out from python.
    
These files can also be relied on in systemd ConditionPathExists
directives to limit execution of services and units to specific
clouds.
    
/run/cloud-init/cloud-id:
 - A symlink with content that is the canonical cloud-id of the
   datasource detected. This content is the same lower-case value
   as the output of /usr/bin/cloud-id.

/run/cloud-init/cloud-id-&lt;canonical-cloud-id&gt;:
 - A single file which will contain the canonical cloud-id encoded
   in the filename</content>
</entry>
<entry>
<title>sources/azure: refactor ssh key handling (#1248)</title>
<updated>2022-02-10T20:03:10+00:00</updated>
<author>
<name>Chris Patterson</name>
<email>cpatterson@microsoft.com</email>
</author>
<published>2022-02-10T20:03:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=50de985bc4e47dff1a8fc52abb7679032bb40cae'/>
<id>urn:sha1:50de985bc4e47dff1a8fc52abb7679032bb40cae</id>
<content type='text'>
Split _get_public_ssh_keys_and_source() into
_get_public_keys_from_imds() and _get_public_keys_from_ovf().

Set _get_public_keys_from_imds() to take a parameter of the
IMDS metadata rather than assuming it is already set in
self.metadata.  This will allow us to move negotation into
local phase where self.metadata may not be set yet.  Update this
method to raise KeyError if IMDS metadata is missing/malformed,
and ValueError if SSH key format is not supported.  Update
get_public_ssh_keys() to catch these errors and fall back to the
OVF/Wireserver keys as needed.

To improve clarity, update register_with_azure_and_fetch_data()
to return the list of SSH keys, rather than bundling them into
a dictionary for updating against the metadata dictionary.

There should be no change in behavior with this refactor.

Signed-off-by: Chris Patterson &lt;cpatterson@microsoft.com&gt;</content>
</entry>
<entry>
<title>sources/hetzner: Use EphemeralDHCPv4 instead of static configuration (#1251)</title>
<updated>2022-02-09T22:16:02+00:00</updated>
<author>
<name>Markus Schade</name>
<email>markus.schade@hetzner.com</email>
</author>
<published>2022-02-09T22:16:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-cloud-init.git/commit/?id=159c12a933f1a394b701f2c15b6267fc717067f7'/>
<id>urn:sha1:159c12a933f1a394b701f2c15b6267fc717067f7</id>
<content type='text'>
When the datasource was originally submitted, EphemeralDHCPv4 was not
yet available. Also avoid race conditions by skipping network
configuration if metadata service can be reached.

Signed-off-by: Markus Schade &lt;markus.schade@hetzner.com&gt;</content>
</entry>
</feed>
