forked from rpms/cloud-init
import cloud-init-18.5-8.el8
This commit is contained in:
parent
e1288e5c3d
commit
e0051c29f6
@ -0,0 +1,102 @@
|
||||
From ae0f85f867714009af7d4ec6c58e30c552bab556 Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Wed, 3 Jul 2019 13:06:49 +0200
|
||||
Subject: [PATCH 2/2] Azure: Return static fallback address as if failed to
|
||||
find endpoint
|
||||
|
||||
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Message-id: <20190703130649.14511-1-otubo@redhat.com>
|
||||
Patchwork-id: 89353
|
||||
O-Subject: [RHEL-8.0.1/RHEL-8.1.0 cloud-init PATCH] Azure: Return static fallback address as if failed to find endpoint
|
||||
Bugzilla: 1691986
|
||||
RH-Acked-by: Bandan Das <bsd@redhat.com>
|
||||
RH-Acked-by: Mohammed Gamal <mgamal@redhat.com>
|
||||
|
||||
commit ade77012c8bbcd215b7e26065981194ce1b6a157
|
||||
Author: Jason Zions (MSFT) <jasonzio@microsoft.com>
|
||||
Date: Fri May 10 18:38:55 2019 +0000
|
||||
|
||||
Azure: Return static fallback address as if failed to find endpoint
|
||||
|
||||
The Azure data source helper attempts to use information in the dhcp
|
||||
lease to find the Wireserver endpoint (IP address). Under some unusual
|
||||
circumstances, those attempts will fail. This change uses a static
|
||||
address, known to be always correct in the Azure public and sovereign
|
||||
clouds, when the helper fails to locate a valid dhcp lease. This
|
||||
address is not guaranteed to be correct in Azure Stack environments;
|
||||
it's still best to use the information from the lease whenever possible.
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
---
|
||||
cloudinit/sources/helpers/azure.py | 14 +++++++++++---
|
||||
tests/unittests/test_datasource/test_azure_helper.py | 9 +++++++--
|
||||
2 files changed, 18 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/cloudinit/sources/helpers/azure.py b/cloudinit/sources/helpers/azure.py
|
||||
index d3af05e..82c4c8c 100755
|
||||
--- a/cloudinit/sources/helpers/azure.py
|
||||
+++ b/cloudinit/sources/helpers/azure.py
|
||||
@@ -20,6 +20,9 @@ from cloudinit.reporting import events
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
+# This endpoint matches the format as found in dhcp lease files, since this
|
||||
+# value is applied if the endpoint can't be found within a lease file
|
||||
+DEFAULT_WIRESERVER_ENDPOINT = "a8:3f:81:10"
|
||||
|
||||
azure_ds_reporter = events.ReportEventStack(
|
||||
name="azure-ds",
|
||||
@@ -297,7 +300,12 @@ class WALinuxAgentShim(object):
|
||||
@azure_ds_telemetry_reporter
|
||||
def _get_value_from_leases_file(fallback_lease_file):
|
||||
leases = []
|
||||
- content = util.load_file(fallback_lease_file)
|
||||
+ try:
|
||||
+ content = util.load_file(fallback_lease_file)
|
||||
+ except IOError as ex:
|
||||
+ LOG.error("Failed to read %s: %s", fallback_lease_file, ex)
|
||||
+ return None
|
||||
+
|
||||
LOG.debug("content is %s", content)
|
||||
option_name = _get_dhcp_endpoint_option_name()
|
||||
for line in content.splitlines():
|
||||
@@ -372,9 +380,9 @@ class WALinuxAgentShim(object):
|
||||
fallback_lease_file)
|
||||
value = WALinuxAgentShim._get_value_from_leases_file(
|
||||
fallback_lease_file)
|
||||
-
|
||||
if value is None:
|
||||
- raise ValueError('No endpoint found.')
|
||||
+ LOG.warning("No lease found; using default endpoint")
|
||||
+ value = DEFAULT_WIRESERVER_ENDPOINT
|
||||
|
||||
endpoint_ip_address = WALinuxAgentShim.get_ip_from_lease_value(value)
|
||||
LOG.debug('Azure endpoint found at %s', endpoint_ip_address)
|
||||
diff --git a/tests/unittests/test_datasource/test_azure_helper.py b/tests/unittests/test_datasource/test_azure_helper.py
|
||||
index 0255616..bd006ab 100644
|
||||
--- a/tests/unittests/test_datasource/test_azure_helper.py
|
||||
+++ b/tests/unittests/test_datasource/test_azure_helper.py
|
||||
@@ -67,12 +67,17 @@ class TestFindEndpoint(CiTestCase):
|
||||
self.networkd_leases.return_value = None
|
||||
|
||||
def test_missing_file(self):
|
||||
- self.assertRaises(ValueError, wa_shim.find_endpoint)
|
||||
+ """wa_shim find_endpoint uses default endpoint if leasefile not found
|
||||
+ """
|
||||
+ self.assertEqual(wa_shim.find_endpoint(), "168.63.129.16")
|
||||
|
||||
def test_missing_special_azure_line(self):
|
||||
+ """wa_shim find_endpoint uses default endpoint if leasefile is found
|
||||
+ but does not contain DHCP Option 245 (whose value is the endpoint)
|
||||
+ """
|
||||
self.load_file.return_value = ''
|
||||
self.dhcp_options.return_value = {'eth0': {'key': 'value'}}
|
||||
- self.assertRaises(ValueError, wa_shim.find_endpoint)
|
||||
+ self.assertEqual(wa_shim.find_endpoint(), "168.63.129.16")
|
||||
|
||||
@staticmethod
|
||||
def _build_lease_content(encoded_address):
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,107 @@
|
||||
From 4ab5a61c0f8378889d2a6b78710f49b0fb71d3c9 Mon Sep 17 00:00:00 2001
|
||||
From: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
Date: Fri, 22 Nov 2019 07:46:38 +0100
|
||||
Subject: [PATCH 1/2] Fix for network configuration not persisting after reboot
|
||||
|
||||
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Message-id: <20190906121211.23172-1-otubo@redhat.com>
|
||||
Patchwork-id: 90300
|
||||
O-Subject: [RHEL-7.8/RHEL-8.1.0 cloud-init PATCH] Fix for network configuration not persisting after reboot
|
||||
Bugzilla: 1706482
|
||||
RH-Acked-by: Mohammed Gamal <mgamal@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
|
||||
The reasons the configuration does not persist after reboot includes
|
||||
different aspects and they're all fixed on this patch:
|
||||
|
||||
1) The rpm package doesn't include the systemd-generator and
|
||||
ds-identify. The systemd-generator is called early in the boot process
|
||||
that calls ds-identify to check if there's any Data Source available in
|
||||
the current boot. In the current use case, the Data Source is removed
|
||||
from the VM on the second boot, this means cloud-init should disable
|
||||
itself in order to keep the configuration it did in the first boot.
|
||||
|
||||
2) Even after adding those scripts, cloud-init was still being
|
||||
executed and the configurations were being lost. The reason for this is
|
||||
that the cloud-init systemd units had a wrong dependency
|
||||
|
||||
WantedBy: multi-user.target
|
||||
|
||||
Which would start them every time no matter the return of
|
||||
ds-identify. The fix is to replace the dependency by the systemd unit to
|
||||
cloud-init.target, which is the main cloud-init target enabled - or in
|
||||
this case, disabled by ds-identify. The file cloud-init.target was also
|
||||
missing on rpm package.
|
||||
|
||||
After adding both scripts, the main cloud-init systemd target and
|
||||
adjusting the systemd dependencies the configuration persists after
|
||||
reboots and shutdowns.
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
---
|
||||
redhat/cloud-init.spec.template | 15 +++++++++++++++
|
||||
rhel/systemd/cloud-config.service | 2 +-
|
||||
rhel/systemd/cloud-final.service | 2 +-
|
||||
rhel/systemd/cloud-init-local.service | 2 +-
|
||||
rhel/systemd/cloud-init.service | 2 +-
|
||||
rhel/systemd/cloud-init.target | 7 +++++++
|
||||
6 files changed, 26 insertions(+), 4 deletions(-)
|
||||
create mode 100644 rhel/systemd/cloud-init.target
|
||||
|
||||
diff --git a/rhel/systemd/cloud-config.service b/rhel/systemd/cloud-config.service
|
||||
index 12ca9df..f3dcd4b 100644
|
||||
--- a/rhel/systemd/cloud-config.service
|
||||
+++ b/rhel/systemd/cloud-config.service
|
||||
@@ -15,4 +15,4 @@ TimeoutSec=0
|
||||
StandardOutput=journal+console
|
||||
|
||||
[Install]
|
||||
-WantedBy=multi-user.target
|
||||
+WantedBy=cloud-init.target
|
||||
diff --git a/rhel/systemd/cloud-final.service b/rhel/systemd/cloud-final.service
|
||||
index 32a83d8..739b7e3 100644
|
||||
--- a/rhel/systemd/cloud-final.service
|
||||
+++ b/rhel/systemd/cloud-final.service
|
||||
@@ -16,4 +16,4 @@ KillMode=process
|
||||
StandardOutput=journal+console
|
||||
|
||||
[Install]
|
||||
-WantedBy=multi-user.target
|
||||
+WantedBy=cloud-init.target
|
||||
diff --git a/rhel/systemd/cloud-init-local.service b/rhel/systemd/cloud-init-local.service
|
||||
index 656eddb..8f9f6c9 100644
|
||||
--- a/rhel/systemd/cloud-init-local.service
|
||||
+++ b/rhel/systemd/cloud-init-local.service
|
||||
@@ -28,4 +28,4 @@ TimeoutSec=0
|
||||
StandardOutput=journal+console
|
||||
|
||||
[Install]
|
||||
-WantedBy=multi-user.target
|
||||
+WantedBy=cloud-init.target
|
||||
diff --git a/rhel/systemd/cloud-init.service b/rhel/systemd/cloud-init.service
|
||||
index 68fc5f1..d0023a0 100644
|
||||
--- a/rhel/systemd/cloud-init.service
|
||||
+++ b/rhel/systemd/cloud-init.service
|
||||
@@ -22,4 +22,4 @@ TimeoutSec=0
|
||||
StandardOutput=journal+console
|
||||
|
||||
[Install]
|
||||
-WantedBy=multi-user.target
|
||||
+WantedBy=cloud-init.target
|
||||
diff --git a/rhel/systemd/cloud-init.target b/rhel/systemd/cloud-init.target
|
||||
new file mode 100644
|
||||
index 0000000..083c3b6
|
||||
--- /dev/null
|
||||
+++ b/rhel/systemd/cloud-init.target
|
||||
@@ -0,0 +1,7 @@
|
||||
+# cloud-init target is enabled by cloud-init-generator
|
||||
+# To disable it you can either:
|
||||
+# a.) boot with kernel cmdline of 'cloud-init=disabled'
|
||||
+# b.) touch a file /etc/cloud/cloud-init.disabled
|
||||
+[Unit]
|
||||
+Description=Cloud-init target
|
||||
+After=multi-user.target
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,86 @@
|
||||
From a00bafbfc54b010d7bbe95536929c678288d4c80 Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Mon, 1 Jul 2019 11:22:52 +0200
|
||||
Subject: [PATCH 1/2] Revert: azure: ensure that networkmanager hook script
|
||||
runs
|
||||
|
||||
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Message-id: <20190701112252.32674-1-otubo@redhat.com>
|
||||
Patchwork-id: 89162
|
||||
O-Subject: [rhel-8.1.0 cloud-init PATCH] Revert: azure: ensure that networkmanager hook script runs
|
||||
Bugzilla: 1692914
|
||||
RH-Acked-by: Mohammed Gamal <mgamal@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
This patch reverts the commit:
|
||||
|
||||
commit c48497435e8195dbd87262c2f00e484e63fe3343
|
||||
Author: Lars Kellogg-Stedman <lars@redhat.com>
|
||||
Date: Thu Jun 15 12:20:39 2017 -0400
|
||||
|
||||
azure: ensure that networkmanager hook script runs
|
||||
|
||||
The networkmanager hook script was failing to run due to the changes
|
||||
we made to resolve rhbz#1440831. This corrects the regression by
|
||||
allowing the NM hook script to run regardless of whether or not
|
||||
cloud-init is "enabled".
|
||||
|
||||
Resolves: rhbz#1460206
|
||||
X-downstream-only: true
|
||||
|
||||
Resolves: rhbz#1692914
|
||||
X-downstream-only: true
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
---
|
||||
tools/hook-dhclient | 3 ++-
|
||||
tools/hook-network-manager | 3 ++-
|
||||
tools/hook-rhel.sh | 3 ++-
|
||||
3 files changed, 6 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/tools/hook-dhclient b/tools/hook-dhclient
|
||||
index 181cd51..02122f3 100755
|
||||
--- a/tools/hook-dhclient
|
||||
+++ b/tools/hook-dhclient
|
||||
@@ -13,7 +13,8 @@ is_azure() {
|
||||
}
|
||||
|
||||
is_enabled() {
|
||||
- # only execute hooks if cloud-init is running on azure
|
||||
+ # only execute hooks if cloud-init is enabled and on azure
|
||||
+ [ -e /run/cloud-init/enabled ] || return 1
|
||||
is_azure
|
||||
}
|
||||
|
||||
diff --git a/tools/hook-network-manager b/tools/hook-network-manager
|
||||
index 1d52cad..67d9044 100755
|
||||
--- a/tools/hook-network-manager
|
||||
+++ b/tools/hook-network-manager
|
||||
@@ -13,7 +13,8 @@ is_azure() {
|
||||
}
|
||||
|
||||
is_enabled() {
|
||||
- # only execute hooks if cloud-init running on azure
|
||||
+ # only execute hooks if cloud-init is enabled and on azure
|
||||
+ [ -e /run/cloud-init/enabled ] || return 1
|
||||
is_azure
|
||||
}
|
||||
|
||||
diff --git a/tools/hook-rhel.sh b/tools/hook-rhel.sh
|
||||
index d75767e..513a551 100755
|
||||
--- a/tools/hook-rhel.sh
|
||||
+++ b/tools/hook-rhel.sh
|
||||
@@ -13,7 +13,8 @@ is_azure() {
|
||||
}
|
||||
|
||||
is_enabled() {
|
||||
- # only execute hooks if cloud-init is running on azure
|
||||
+ # only execute hooks if cloud-init is enabled and on azure
|
||||
+ [ -e /run/cloud-init/enabled ] || return 1
|
||||
is_azure
|
||||
}
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,144 @@
|
||||
From 4f1c3f5be0306da485135544ced4a676753a9373 Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Wed, 16 Oct 2019 12:10:24 +0200
|
||||
Subject: [PATCH 2/2] util: json.dumps on python 2.7 will handle
|
||||
UnicodeDecodeError on binary
|
||||
|
||||
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Message-id: <20191016121024.23694-1-otubo@redhat.com>
|
||||
Patchwork-id: 91812
|
||||
O-Subject: [RHEL-7.8/RHEL-8.1.0 cloud-init PATCH] util: json.dumps on python 2.7 will handle UnicodeDecodeError on binary
|
||||
Bugzilla: 1744718
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Mohammed Gamal <mgamal@redhat.com>
|
||||
|
||||
commit 067516d7bc917e4921b9f1424b7a64e92cae0ad2
|
||||
Author: Chad Smith <chad.smith@canonical.com>
|
||||
Date: Fri Sep 27 20:46:00 2019 +0000
|
||||
|
||||
util: json.dumps on python 2.7 will handle UnicodeDecodeError on binary
|
||||
|
||||
Since python 2.7 doesn't handle UnicodeDecodeErrors with the default
|
||||
handler
|
||||
|
||||
LP: #1801364
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
---
|
||||
cloudinit/sources/tests/test_init.py | 12 +++++-------
|
||||
cloudinit/tests/test_util.py | 20 ++++++++++++++++++++
|
||||
cloudinit/util.py | 27 +++++++++++++++++++++++++--
|
||||
3 files changed, 50 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/cloudinit/sources/tests/test_init.py b/cloudinit/sources/tests/test_init.py
|
||||
index 6378e98..9698261 100644
|
||||
--- a/cloudinit/sources/tests/test_init.py
|
||||
+++ b/cloudinit/sources/tests/test_init.py
|
||||
@@ -457,19 +457,17 @@ class TestDataSource(CiTestCase):
|
||||
instance_json['ds']['meta_data'])
|
||||
|
||||
@skipIf(not six.PY2, "Only python2 hits UnicodeDecodeErrors on non-utf8")
|
||||
- def test_non_utf8_encoding_logs_warning(self):
|
||||
- """When non-utf-8 values exist in py2 instance-data is not written."""
|
||||
+ def test_non_utf8_encoding_gets_b64encoded(self):
|
||||
+ """When non-utf-8 values exist in py2 instance-data is b64encoded."""
|
||||
tmp = self.tmp_dir()
|
||||
datasource = DataSourceTestSubclassNet(
|
||||
self.sys_cfg, self.distro, Paths({'run_dir': tmp}),
|
||||
custom_metadata={'key1': 'val1', 'key2': {'key2.1': b'ab\xaadef'}})
|
||||
self.assertTrue(datasource.get_data())
|
||||
json_file = self.tmp_path(INSTANCE_JSON_FILE, tmp)
|
||||
- self.assertFalse(os.path.exists(json_file))
|
||||
- self.assertIn(
|
||||
- "WARNING: Error persisting instance-data.json: 'utf8' codec can't"
|
||||
- " decode byte 0xaa in position 2: invalid start byte",
|
||||
- self.logs.getvalue())
|
||||
+ instance_json = util.load_json(util.load_file(json_file))
|
||||
+ key21_value = instance_json['ds']['meta_data']['key2']['key2.1']
|
||||
+ self.assertEqual('ci-b64:' + util.b64e(b'ab\xaadef'), key21_value)
|
||||
|
||||
def test_get_hostname_subclass_support(self):
|
||||
"""Validate get_hostname signature on all subclasses of DataSource."""
|
||||
diff --git a/cloudinit/tests/test_util.py b/cloudinit/tests/test_util.py
|
||||
index e3d2dba..f4f95e9 100644
|
||||
--- a/cloudinit/tests/test_util.py
|
||||
+++ b/cloudinit/tests/test_util.py
|
||||
@@ -2,7 +2,9 @@
|
||||
|
||||
"""Tests for cloudinit.util"""
|
||||
|
||||
+import base64
|
||||
import logging
|
||||
+import json
|
||||
import platform
|
||||
|
||||
import cloudinit.util as util
|
||||
@@ -528,6 +530,24 @@ class TestGetLinuxDistro(CiTestCase):
|
||||
self.assertEqual(('foo', '1.1', 'aarch64'), dist)
|
||||
|
||||
|
||||
+class TestJsonDumps(CiTestCase):
|
||||
+ def test_is_str(self):
|
||||
+ """json_dumps should return a string."""
|
||||
+ self.assertTrue(isinstance(util.json_dumps({'abc': '123'}), str))
|
||||
+
|
||||
+ def test_utf8(self):
|
||||
+ smiley = '\\ud83d\\ude03'
|
||||
+ self.assertEqual(
|
||||
+ {'smiley': smiley},
|
||||
+ json.loads(util.json_dumps({'smiley': smiley})))
|
||||
+
|
||||
+ def test_non_utf8(self):
|
||||
+ blob = b'\xba\x03Qx-#y\xea'
|
||||
+ self.assertEqual(
|
||||
+ {'blob': 'ci-b64:' + base64.b64encode(blob).decode('utf-8')},
|
||||
+ json.loads(util.json_dumps({'blob': blob})))
|
||||
+
|
||||
+
|
||||
@mock.patch('os.path.exists')
|
||||
class TestIsLXD(CiTestCase):
|
||||
|
||||
diff --git a/cloudinit/util.py b/cloudinit/util.py
|
||||
index a84112a..2c9ac66 100644
|
||||
--- a/cloudinit/util.py
|
||||
+++ b/cloudinit/util.py
|
||||
@@ -1590,10 +1590,33 @@ def json_serialize_default(_obj):
|
||||
return 'Warning: redacted unserializable type {0}'.format(type(_obj))
|
||||
|
||||
|
||||
+def json_preserialize_binary(data):
|
||||
+ """Preserialize any discovered binary values to avoid json.dumps issues.
|
||||
+
|
||||
+ Used only on python 2.7 where default type handling is not honored for
|
||||
+ failure to encode binary data. LP: #1801364.
|
||||
+ TODO(Drop this function when py2.7 support is dropped from cloud-init)
|
||||
+ """
|
||||
+ data = obj_copy.deepcopy(data)
|
||||
+ for key, value in data.items():
|
||||
+ if isinstance(value, (dict)):
|
||||
+ data[key] = json_preserialize_binary(value)
|
||||
+ if isinstance(value, bytes):
|
||||
+ data[key] = 'ci-b64:{0}'.format(b64e(value))
|
||||
+ return data
|
||||
+
|
||||
+
|
||||
def json_dumps(data):
|
||||
"""Return data in nicely formatted json."""
|
||||
- return json.dumps(data, indent=1, sort_keys=True,
|
||||
- separators=(',', ': '), default=json_serialize_default)
|
||||
+ try:
|
||||
+ return json.dumps(
|
||||
+ data, indent=1, sort_keys=True, separators=(',', ': '),
|
||||
+ default=json_serialize_default)
|
||||
+ except UnicodeDecodeError:
|
||||
+ if sys.version_info[:2] == (2, 7):
|
||||
+ data = json_preserialize_binary(data)
|
||||
+ return json.dumps(data)
|
||||
+ raise
|
||||
|
||||
|
||||
def yaml_dumps(obj, explicit_start=True, explicit_end=True):
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
Name: cloud-init
|
||||
Version: 18.5
|
||||
Release: 4%{?dist}
|
||||
Release: 8%{?dist}
|
||||
Summary: Cloud instance init scripts
|
||||
|
||||
Group: System Environment/Base
|
||||
@ -37,6 +37,14 @@ Patch15: ci-Azure-Changes-to-the-Hyper-V-KVP-Reporter.patch
|
||||
Patch16: ci-DataSourceAzure-Adjust-timeout-for-polling-IMDS.patch
|
||||
# For bz#1691986 - [Azure] [RHEL 8.1] Cloud-init fixes to support fast provisioning for Azure
|
||||
Patch17: ci-cc_mounts-check-if-mount-a-on-no-change-fstab-path.patch
|
||||
# For bz#1692914 - [8.1] [WALA][cloud] cloud-init dhclient-hook script has some unexpected side-effects on Azure
|
||||
Patch18: ci-Revert-azure-ensure-that-networkmanager-hook-script-.patch
|
||||
# For bz#1691986 - [Azure] [RHEL 8.1] Cloud-init fixes to support fast provisioning for Azure
|
||||
Patch19: ci-Azure-Return-static-fallback-address-as-if-failed-to.patch
|
||||
# For bz#1706482 - [cloud-init][RHVM]cloud-init network configuration does not persist reboot [RHEL 8.2.0]
|
||||
Patch20: ci-Fix-for-network-configuration-not-persisting-after-r.patch
|
||||
# For bz#1744718 - [cloud-init][RHEL8][OpenStack] cloud-init can't persist instance-data.json
|
||||
Patch21: ci-util-json.dumps-on-python-2.7-will-handle-UnicodeDec.patch
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
@ -131,6 +139,12 @@ mv $RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/hook-network-manager \
|
||||
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
|
||||
cp rhel/systemd/* $RPM_BUILD_ROOT%{_unitdir}/
|
||||
|
||||
[ ! -d $RPM_BUILD_ROOT/usr/lib/systemd/system-generators ] && mkdir -p $RPM_BUILD_ROOT/usr/lib/systemd/system-generators
|
||||
cp -p systemd/cloud-init-generator $RPM_BUILD_ROOT/usr/lib/systemd/system-generators
|
||||
|
||||
[ ! -d $RPM_BUILD_ROOT/usr/lib/%{name} ] && mkdir -p $RPM_BUILD_ROOT/usr/lib/%{name}
|
||||
cp -p tools/ds-identify $RPM_BUILD_ROOT/usr/lib/%{name}/ds-identify
|
||||
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
@ -144,6 +158,7 @@ if [ $1 -eq 1 ] ; then
|
||||
/bin/systemctl enable cloud-final.service >/dev/null 2>&1 || :
|
||||
/bin/systemctl enable cloud-init.service >/dev/null 2>&1 || :
|
||||
/bin/systemctl enable cloud-init-local.service >/dev/null 2>&1 || :
|
||||
/bin/systemctl enable cloud-init.target >/dev/null 2>&1 || :
|
||||
elif [ $1 -eq 2 ]; then
|
||||
# Upgrade. If the upgrade is from a version older than 0.7.9-8,
|
||||
# there will be stale systemd config
|
||||
@ -158,6 +173,9 @@ elif [ $1 -eq 2 ]; then
|
||||
|
||||
/bin/systemctl is-enabled cloud-init-local.service >/dev/null 2>&1 &&
|
||||
/bin/systemctl reenable cloud-init-local.service >/dev/null 2>&1 || :
|
||||
|
||||
/bin/systemctl is-enabled cloud-init.target >/dev/null 2>&1 &&
|
||||
/bin/systemctl reenable cloud-init.target >/dev/null 2>&1 || :
|
||||
fi
|
||||
|
||||
%preun
|
||||
@ -167,6 +185,7 @@ if [ $1 -eq 0 ] ; then
|
||||
/bin/systemctl --no-reload disable cloud-final.service >/dev/null 2>&1 || :
|
||||
/bin/systemctl --no-reload disable cloud-init.service >/dev/null 2>&1 || :
|
||||
/bin/systemctl --no-reload disable cloud-init-local.service >/dev/null 2>&1 || :
|
||||
/bin/systemctl --no-reload disable cloud-init.target >/dev/null 2>&1 || :
|
||||
# One-shot services -> no need to stop
|
||||
fi
|
||||
|
||||
@ -188,22 +207,52 @@ fi
|
||||
%{_unitdir}/cloud-final.service
|
||||
%{_unitdir}/cloud-init-local.service
|
||||
%{_unitdir}/cloud-init.service
|
||||
%{_unitdir}/cloud-init.target
|
||||
%{_tmpfilesdir}/%{name}.conf
|
||||
%{python3_sitelib}/*
|
||||
%{_libexecdir}/%{name}
|
||||
%{_bindir}/cloud-init*
|
||||
%doc %{_datadir}/doc/%{name}
|
||||
%dir /run/cloud-init
|
||||
%dir %verify(not mode) /run/cloud-init
|
||||
%dir /var/lib/cloud
|
||||
/etc/NetworkManager/dispatcher.d/cloud-init-azure-hook
|
||||
%{_udevrulesdir}/66-azure-ephemeral.rules
|
||||
%{_sysconfdir}/bash_completion.d/cloud-init
|
||||
%{_bindir}/cloud-id
|
||||
/usr/lib/%{name}/ds-identify
|
||||
/usr/lib/systemd/system-generators/cloud-init-generator
|
||||
|
||||
|
||||
%dir %{_sysconfdir}/rsyslog.d
|
||||
%config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf
|
||||
|
||||
%changelog
|
||||
* Fri Nov 22 2019 Miroslav Rezanina <mrezanin@redhat.com> - 18.5-8.el8
|
||||
- ci-Fix-for-network-configuration-not-persisting-after-r.patch [bz#1706482]
|
||||
- ci-util-json.dumps-on-python-2.7-will-handle-UnicodeDec.patch [bz#1744718]
|
||||
- Resolves: bz#1706482
|
||||
([cloud-init][RHVM]cloud-init network configuration does not persist reboot [RHEL 8.2.0])
|
||||
- Resolves: bz#1744718
|
||||
([cloud-init][RHEL8][OpenStack] cloud-init can't persist instance-data.json)
|
||||
|
||||
* Mon Jul 15 2019 Miroslav Rezanina <mrezanin@redhat.com> - 18.5-7.el8
|
||||
- Fixing TPS [bz#1729864]
|
||||
- Resolves: bz#1729864
|
||||
(cloud-init tps fail)
|
||||
|
||||
* Thu Jul 04 2019 Miroslav Rezanina <mrezanin@redhat.com> - 18.5-6.el8
|
||||
- ci-Revert-azure-ensure-that-networkmanager-hook-script-.patch [bz#1692914]
|
||||
- ci-Azure-Return-static-fallback-address-as-if-failed-to.patch [bz#1691986]
|
||||
- Resolves: bz#1691986
|
||||
([Azure] [RHEL 8.1] Cloud-init fixes to support fast provisioning for Azure)
|
||||
- Resolves: bz#1692914
|
||||
([8.1] [WALA][cloud] cloud-init dhclient-hook script has some unexpected side-effects on Azure)
|
||||
|
||||
* Mon Jun 10 2019 Miroslav Rezanina <mrezanin@redhat.com> - 18.5-5.el8
|
||||
- Improved gating testing [bz#1682786]
|
||||
- Resolves: bz#1682786
|
||||
(cloud-init changes blocked until gating tests are added)
|
||||
|
||||
* Mon Jun 03 2019 Miroslav Rezanina <mrezanin@redhat.com> - 18.5-4.el8
|
||||
- ci-Azure-Ensure-platform-random_seed-is-always-serializ.patch [bz#1691986]
|
||||
- ci-DatasourceAzure-add-additional-logging-for-azure-dat.patch [bz#1691986]
|
||||
|
Loading…
Reference in New Issue
Block a user