import cloud-init-20.3-10.el8_4.2
This commit is contained in:
parent
f375bcc21d
commit
b660cf0bf5
@ -0,0 +1,103 @@
|
|||||||
|
From 93b48730e201bf374f75a3f71d8d6b28211016ba Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eduardo Otubo <otubo@redhat.com>
|
||||||
|
Date: Tue, 23 Mar 2021 16:14:16 +0100
|
||||||
|
Subject: [PATCH] Fix requiring device-number on EC2 derivatives (#836)
|
||||||
|
|
||||||
|
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||||
|
RH-MergeRequest: 3: Fix requiring device-number on EC2 derivatives (#836)
|
||||||
|
RH-Commit: [1/1] f372b10d179a969fcf824db8a39bdea3befc4ef4 (eterell/cloud-init)
|
||||||
|
RH-Bugzilla: 1942699
|
||||||
|
RH-Acked-by: Acked-by: Mohammed Gamal <mgamal@redhat.com>
|
||||||
|
RH-Acked-by: Acked-by: Vitaly Kuznetsov vkuznets@redhat.com
|
||||||
|
RH-Acked-by: Acked-by: Cathy Avery cavery@redhat.com
|
||||||
|
|
||||||
|
commit 9bd19645a61586b82e86db6f518dd05c3363b17f
|
||||||
|
Author: James Falcon <TheRealFalcon@users.noreply.github.com>
|
||||||
|
Date: Mon Mar 8 14:09:47 2021 -0600
|
||||||
|
|
||||||
|
Fix requiring device-number on EC2 derivatives (#836)
|
||||||
|
|
||||||
|
#342 (70dbccbb) introduced the ability to determine route-metrics based on
|
||||||
|
the `device-number` provided by the EC2 IMDS. Not all datasources that
|
||||||
|
subclass EC2 will have this attribute, so allow the old behavior if
|
||||||
|
`device-number` is not present.
|
||||||
|
|
||||||
|
LP: #1917875
|
||||||
|
|
||||||
|
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||||
|
---
|
||||||
|
cloudinit/sources/DataSourceEc2.py | 3 +-
|
||||||
|
.../unittests/test_datasource/test_aliyun.py | 30 +++++++++++++++++++
|
||||||
|
2 files changed, 32 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/cloudinit/sources/DataSourceEc2.py b/cloudinit/sources/DataSourceEc2.py
|
||||||
|
index 1d09c12a..ce69d1b3 100644
|
||||||
|
--- a/cloudinit/sources/DataSourceEc2.py
|
||||||
|
+++ b/cloudinit/sources/DataSourceEc2.py
|
||||||
|
@@ -764,13 +764,14 @@ def convert_ec2_metadata_network_config(
|
||||||
|
netcfg['ethernets'][nic_name] = dev_config
|
||||||
|
return netcfg
|
||||||
|
# Apply network config for all nics and any secondary IPv4/v6 addresses
|
||||||
|
+ nic_idx = 0
|
||||||
|
for mac, nic_name in sorted(macs_to_nics.items()):
|
||||||
|
nic_metadata = macs_metadata.get(mac)
|
||||||
|
if not nic_metadata:
|
||||||
|
continue # Not a physical nic represented in metadata
|
||||||
|
# device-number is zero-indexed, we want it 1-indexed for the
|
||||||
|
# multiplication on the following line
|
||||||
|
- nic_idx = int(nic_metadata['device-number']) + 1
|
||||||
|
+ nic_idx = int(nic_metadata.get('device-number', nic_idx)) + 1
|
||||||
|
dhcp_override = {'route-metric': nic_idx * 100}
|
||||||
|
dev_config = {'dhcp4': True, 'dhcp4-overrides': dhcp_override,
|
||||||
|
'dhcp6': False,
|
||||||
|
diff --git a/tests/unittests/test_datasource/test_aliyun.py b/tests/unittests/test_datasource/test_aliyun.py
|
||||||
|
index b626229e..a57f86a1 100644
|
||||||
|
--- a/tests/unittests/test_datasource/test_aliyun.py
|
||||||
|
+++ b/tests/unittests/test_datasource/test_aliyun.py
|
||||||
|
@@ -7,6 +7,7 @@ from unittest import mock
|
||||||
|
|
||||||
|
from cloudinit import helpers
|
||||||
|
from cloudinit.sources import DataSourceAliYun as ay
|
||||||
|
+from cloudinit.sources.DataSourceEc2 import convert_ec2_metadata_network_config
|
||||||
|
from cloudinit.tests import helpers as test_helpers
|
||||||
|
|
||||||
|
DEFAULT_METADATA = {
|
||||||
|
@@ -183,6 +184,35 @@ class TestAliYunDatasource(test_helpers.HttprettyTestCase):
|
||||||
|
self.assertEqual(ay.parse_public_keys(public_keys),
|
||||||
|
public_keys['key-pair-0']['openssh-key'])
|
||||||
|
|
||||||
|
+ def test_route_metric_calculated_without_device_number(self):
|
||||||
|
+ """Test that route-metric code works without `device-number`
|
||||||
|
+
|
||||||
|
+ `device-number` is part of EC2 metadata, but not supported on aliyun.
|
||||||
|
+ Attempting to access it will raise a KeyError.
|
||||||
|
+
|
||||||
|
+ LP: #1917875
|
||||||
|
+ """
|
||||||
|
+ netcfg = convert_ec2_metadata_network_config(
|
||||||
|
+ {"interfaces": {"macs": {
|
||||||
|
+ "06:17:04:d7:26:09": {
|
||||||
|
+ "interface-id": "eni-e44ef49e",
|
||||||
|
+ },
|
||||||
|
+ "06:17:04:d7:26:08": {
|
||||||
|
+ "interface-id": "eni-e44ef49f",
|
||||||
|
+ }
|
||||||
|
+ }}},
|
||||||
|
+ macs_to_nics={
|
||||||
|
+ '06:17:04:d7:26:09': 'eth0',
|
||||||
|
+ '06:17:04:d7:26:08': 'eth1',
|
||||||
|
+ }
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+ met0 = netcfg['ethernets']['eth0']['dhcp4-overrides']['route-metric']
|
||||||
|
+ met1 = netcfg['ethernets']['eth1']['dhcp4-overrides']['route-metric']
|
||||||
|
+
|
||||||
|
+ # route-metric numbers should be 100 apart
|
||||||
|
+ assert 100 == abs(met0 - met1)
|
||||||
|
+
|
||||||
|
|
||||||
|
class TestIsAliYun(test_helpers.CiTestCase):
|
||||||
|
ALIYUN_PRODUCT = 'Alibaba Cloud ECS'
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
Name: cloud-init
|
Name: cloud-init
|
||||||
Version: 20.3
|
Version: 20.3
|
||||||
Release: 10%{?dist}
|
Release: 10%{?dist}.2
|
||||||
Summary: Cloud instance init scripts
|
Summary: Cloud instance init scripts
|
||||||
|
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
@ -40,6 +40,8 @@ Patch15: ci-DataSourceAzure-update-password-for-defuser-if-exist.patch
|
|||||||
Patch16: ci-Revert-ssh_util-handle-non-default-AuthorizedKeysFil.patch
|
Patch16: ci-Revert-ssh_util-handle-non-default-AuthorizedKeysFil.patch
|
||||||
# For bz#1913127 - A typo in cloud-init man page
|
# For bz#1913127 - A typo in cloud-init man page
|
||||||
Patch17: ci-fix-a-typo-in-man-page-cloud-init.1-752.patch
|
Patch17: ci-fix-a-typo-in-man-page-cloud-init.1-752.patch
|
||||||
|
# For bz#1942699 - [Aliyun][RHEL8.4][cloud-init] cloud-init service failed to start with Alibaba instance [rhel-8.4.0.z]
|
||||||
|
Patch18: ci-Fix-requiring-device-number-on-EC2-derivatives-836.patch
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
@ -231,6 +233,11 @@ fi
|
|||||||
%config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf
|
%config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 06 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-10.el8_4.2
|
||||||
|
- ci-Fix-requiring-device-number-on-EC2-derivatives-836.patch [bz#1942699]
|
||||||
|
- Resolves: bz#1942699
|
||||||
|
([Aliyun][RHEL8.4][cloud-init] cloud-init service failed to start with Alibaba instance [rhel-8.4.0.z])
|
||||||
|
|
||||||
* Tue Feb 02 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-10.el8
|
* Tue Feb 02 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-10.el8
|
||||||
- ci-fix-a-typo-in-man-page-cloud-init.1-752.patch [bz#1913127]
|
- ci-fix-a-typo-in-man-page-cloud-init.1-752.patch [bz#1913127]
|
||||||
- Resolves: bz#1913127
|
- Resolves: bz#1913127
|
||||||
|
Loading…
Reference in New Issue
Block a user