cloud-init:ubuntu/jammy

Last commit made on 2024-04-08
Get this branch:
git clone -b ubuntu/jammy https://git.launchpad.net/cloud-init
Members of cloud-init Commiters can upload to this branch. Log in for directions.

Branch merges

Branch information

Name:
ubuntu/jammy
Repository:
lp:cloud-init

Recent commits

1e41c41... by James Falcon

Remove old LP reference from changelog

668a5d3... by James Falcon

update changelog (new upstream snapshot)

d4fd6ce... by James Falcon

refresh patches against upstream/main

patches:
debian/patches/keep-dhclient-as-priority-client.patch
debian/patches/retain-ec2-default-net-update-events.patch
debian/patches/retain-old-groups.patch

26b3253... by James Falcon

merge from upstream/main

e91097d... by Alberto Contreras

Revert "new patch revert-dhcp6-on-ec2.patch"

This reverts commit 63083af66aca895d205ef0752b5d7aa685541fff.

Not needed after canonicalGH-5145.

31b8091... by Alberto Contreras

Revert "update changelog"

This reverts commit 79e7f8f12ec0c0a0f9ff66c45a896b477860b07a.

0a3a5e2... by Dong Liang

feat: Determining route metric based on NIC name (#5070)

In the Alibaba Cloud scenario, we do not wish to define routing priority based on MAC addresses.
In a cloud environment where the kernel parameter net.ifnames=0 has been configured,
network interface card (NIC) names are determined by default according to their underlying Bus, Device, and Function (BDF) numbers,
incrementing from eth0 to ethN, with eth0 acting as the default primary NIC name.

In the previous logic, network-card has the highest priority, followed by device-number as the second priority.
When _fallback_nic_order is set to NicOrder.MAC, the mac address takes the third priority.
On the other hand, when _fallback_nic_order is set to NicOrder.NIC_NAME, the NIC name becomes the third priority.

In AWS environments, the default setting remains as _fallback_nic_order = NicOrder.MAC, maintaining the original behavior.
However, in Alibaba Cloud scenarios, we set _fallback_nic_order = NicOrder.NIC_NAME.

ec384da... by Brett Holman

test: Enable profiling in integration tests (#5130)

414c310... by Chris Patterson <email address hidden>

dhcp: support configuring static routes for dhclient's unknown-121 option (#5146)

Cloud-init does not configure rfc3442-classless-static-routes if dhclient isn't
patched to support them or it is not configured with:

```
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
```

Example lease with option configured (typical):

lease {
  interface "eth0";
  <...cut...>
  option rfc3442-classless-static-routes 0,10,0,0,1,32,168,63,129,16,10,0,0,1,32,169,254,169,254,10,0,0,1;
  <...cut...>
}

Example lease without option, where it is presented as "unknown-121":

lease {
  interface "eth0";
  <...cut...>
  option unknown-121 0:a:0:0:1:20:a8:3f:81:10:a:0:0:1:20:a9:fe:a9:fe:a:0:0:1;
  <...cut...>
}

The primary difference is that dhclient outputs the bytes in a
hex-encoded format and with `:` delimiter. Extend existing
parsing to support this format.

With a couple added INFO logs, here is a sample DHCP on Azure with
static routes being parsed from unknown-121 option with this patch:

```
2024-04-04 16:12:01,677 - ephemeral.py[DEBUG]: Received dhcp lease on eth0 for 10.0.0.11/255.255.255.0
2024-04-04 16:12:01,677 - dhcp.py[INFO]: Parsing: '0:a:0:0:1:20:a8:3f:81:10:a:0:0:1:20:a9:fe:a9:fe:a:0:0:1'
2024-04-04 16:12:01,677 - dhcp.py[INFO]: Tokens: ['0', '10', '0', '0', '1', '32', '168', '63', '129', '16', '10', '0', '0', '1', '32', '169', '254', '169', '254', '10', '0', '0', '1']
2024-04-04 16:12:01,677 - ephemeral.py[DEBUG]: Attempting setup of ephemeral network on eth0 with 10.0.0.11/24 brd 10.0.0.255
2024-04-04 16:12:01,677 - subp.py[DEBUG]: Running command ['ip', '-family', 'inet', 'addr', 'add', '10.0.0.11/24', 'broadcast', '10.0.0.255', 'dev', 'eth0'] with allowed return codes [0] (shell=False, capture=True)
2024-04-04 16:12:01,679 - subp.py[DEBUG]: Running command ['ip', '-family', 'inet', 'link', 'set', 'dev', 'eth0', 'up'] with allowed return codes [0] (shell=False, capture=True)
2024-04-04 16:12:01,681 - subp.py[DEBUG]: Running command ['ip', '-4', 'route', 'append', '0.0.0.0/0', 'via', '10.0.0.1', 'dev', 'eth0'] with allowed return codes [0] (shell=False, capture=True)
2024-04-04 16:12:01,683 - subp.py[DEBUG]: Running command ['ip', '-4', 'route', 'append', '168.63.129.16/32', 'via', '10.0.0.1', 'dev', 'eth0'] with allowed return codes [0] (shell=False, capture=True)
2024-04-04 16:12:01,684 - subp.py[DEBUG]: Running command ['ip', '-4', 'route', 'append', '169.254.169.254/32', 'via', '10.0.0.1', 'dev', 'eth0'] with allowed return codes [0] (shell=False, capture=True)
2024-04-04 16:12:01,686 - handlers.py[DEBUG]: start: azure-ds/_check_if_primary: _check_if_primary
2024-04-04 16:12:01,686 - handlers.py[DEBUG]: finish: azure-ds/_check_if_primary: SUCCESS: _check_if_primary
2024-04-04 16:12:01,687 - azure.py[DEBUG]: Obtained DHCP lease on interface 'eth0' (primary=True driver='hv_netvsc' router='10.0.0.1' routes=[('0.0.0.0/0', '10.0.0.1'), ('168.63.129.16/32', '10.0.0.1'), ('169.254.169.254/32', '10.0.0.1')] lease={'inter
face': 'eth0', 'fixed-address': '10.0.0.11', 'server-name': 'BL24A1071918060SOC', 'subnet-mask': '255.255.255.0', 'dhcp-lease-time': '4294967295', 'routers': '10.0.0.1', 'dhcp-message-type': '5', 'domain-name-servers': '168.63.129.16', 'dhcp-server-ide
ntifier': '168.63.129.16', 'dhcp-renewal-time': '4294967295', 'unknown-121': '0:a:0:0:1:20:a8:3f:81:10:a:0:0:1:20:a9:fe:a9:fe:a:0:0:1', 'dhcp-rebinding-time': '4294967295', 'unknown-245': 'a8:3f:81:10', 'domain-name': 'fyoqc4gghleevjxtq4h4pjbded.bx.int
ernal.cloudapp.net', 'renew': '0 2160/05/11 22:40:16', 'rebind': '0 2160/05/11 22:40:16', 'expire': '0 2160/05/11 22:40:16'} imds_routed=True wireserver_routed=True)
```

Signed-off-by: Chris Patterson <email address hidden>

ffacae6... by Ksenija Stanojevic <email address hidden>

feat(azure): parse ProvisionGuestProxyAgent as bool (#5126)