forked from rpms/cloud-init
Compare commits
No commits in common. "c8" and "almalinux_9_support" have entirely different histories.
c8
...
almalinux_
@ -1,33 +1,32 @@
|
||||
From 5e1e568d7085fd4443b4e3ccc492f5e31747e270 Mon Sep 17 00:00:00 2001
|
||||
From: Amy Chen <xiachen@redhat.com>
|
||||
Date: Wed, 20 Apr 2022 10:59:48 +0800
|
||||
From 7daf47d1ee60a132244f2a9ec4e89ad496c32c3e Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Mon, 28 Mar 2022 14:08:05 +0200
|
||||
Subject: Add initial redhat setup
|
||||
|
||||
Merged patches (22.1)
|
||||
- d18029bf Add netifaces package as a Requires in cloud-init.spec.template
|
||||
- 31adf961 Add gdisk and openssl as deps to fix UEFI / Azure initialization
|
||||
- f4a2905d Add dhcp-client as a dependency
|
||||
- 290e14cc cloud-init.spec.template: update %systemd_postun parameter
|
||||
- 9be4ae9b (tag: cloud-init-21.1-1.el8) Update to cloud-init-21.1-1.el8
|
||||
Merged patches (22.1):
|
||||
- 70f80f82 Use _systemdgeneratordir macro for cloud-init-generator handling
|
||||
- 0f74e7b8 Add dhcp-client as a dependency
|
||||
- 791eb2b6 Report full specific version with "cloud-init --version"
|
||||
- 865805d6 source-git: Use dynamic SRPM_NAME
|
||||
- 45ddc666 add the drop-in also in the %files section of cloud-init.spec
|
||||
- 08d939b2 Add gdisk and openssl as deps to fix UEFI / Azure initialization
|
||||
- 0531cd68 Add netifaces package as a Requires in cloud-init.spec.template
|
||||
|
||||
Conflicts:
|
||||
cloudinit/config/cc_chef.py Using double quotes instead of single quotes
|
||||
- .gitignore
|
||||
- cloudinit/config/cc_chef.py = use double quotes instead of single quotes
|
||||
- cloudinit/settings.py = use rhel settings
|
||||
- cloudinit/sources/DataSourceAzure.py = remove temporary_hostname and helper
|
||||
- requirements.txt = just add netifaces and not jsonschema dep
|
||||
- setup.py = use double quotes instead of single quotes
|
||||
|
||||
cloudinit/settings.py
|
||||
- Using rhel settings
|
||||
- Using double quotes instead of single quotes
|
||||
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
|
||||
setup.py
|
||||
- Following the changes of 21.1 rebase
|
||||
- Using double quotes instead of single quotes
|
||||
|
||||
redhat/cloud-init.spec.template
|
||||
- Add the drop-in to the right cloud-init.spec used by our package builder, which is downstream-only part of the bz 2002492 fix.
|
||||
|
||||
redhat/Makefile.common
|
||||
- Backport the build handling fixes from patch "Update to cloud-init-21.1-1.el8"
|
||||
|
||||
Signed-off-by: Amy Chen <xiachen@redhat.com>
|
||||
Merged patches (RHEL-9/21.1):
|
||||
- 5688a1d0 Removing python-nose and python-tox as dependency
|
||||
- 237d57f9 Removing mock dependency
|
||||
- d1c2f496 Removing python-jsonschema dependency
|
||||
- 0d1cd14c Don't override default network configuration
|
||||
|
||||
Merged patches (21.1):
|
||||
- 915d30ad Change gating file to correct rhel version
|
||||
@ -60,61 +59,72 @@ Merged patches (18.5):
|
||||
|
||||
Conflicts:
|
||||
cloudinit/config/cc_chef.py:
|
||||
- Updated header documentation text
|
||||
- Replacing double quotes by simple quotes
|
||||
- Updated header documentation text
|
||||
- Replacing double quotes by simple quotes
|
||||
|
||||
setup.py:
|
||||
- Adding missing cmdclass info
|
||||
- Adding missing cmdclass info
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
|
||||
Changes:
|
||||
- move redhat to .distro to use new build script structure
|
||||
- Fixing changelog for RHEL 9
|
||||
|
||||
Merged patches (21.1):
|
||||
- 69bd7f71 DataSourceAzure.py: use hostnamectl to set hostname
|
||||
- 0407867e Remove race condition between cloud-init and NetworkManager
|
||||
|
||||
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
---
|
||||
.distro/.gitignore | 1 +
|
||||
.distro/Makefile | 74 ++++
|
||||
.distro/Makefile.common | 20 +
|
||||
.distro/cloud-init-tmpfiles.conf | 1 +
|
||||
.distro/cloud-init.spec.template | 505 ++++++++++++++++++++++++++
|
||||
.distro/gating.yaml | 8 +
|
||||
.distro/rpmbuild/BUILD/.gitignore | 3 +
|
||||
.distro/rpmbuild/RPMS/.gitignore | 3 +
|
||||
.distro/rpmbuild/SOURCES/.gitignore | 3 +
|
||||
.distro/rpmbuild/SPECS/.gitignore | 3 +
|
||||
.distro/rpmbuild/SRPMS/.gitignore | 3 +
|
||||
.distro/scripts/frh.py | 27 ++
|
||||
.distro/scripts/git-backport-diff | 327 +++++++++++++++++
|
||||
.distro/scripts/git-compile-check | 215 +++++++++++
|
||||
.distro/scripts/process-patches.sh | 88 +++++
|
||||
.distro/scripts/tarball_checksum.sh | 3 +
|
||||
.gitignore | 1 +
|
||||
cloudinit/config/cc_chef.py | 65 ++-
|
||||
cloudinit/settings.py | 7 +-
|
||||
redhat/.gitignore | 1 +
|
||||
redhat/Makefile | 71 +++
|
||||
redhat/Makefile.common | 37 ++
|
||||
redhat/cloud-init-tmpfiles.conf | 1 +
|
||||
redhat/cloud-init.spec.template | 696 ++++++++++++++++++++++++++
|
||||
redhat/gating.yaml | 8 +
|
||||
redhat/rpmbuild/BUILD/.gitignore | 3 +
|
||||
redhat/rpmbuild/RPMS/.gitignore | 3 +
|
||||
redhat/rpmbuild/SOURCES/.gitignore | 3 +
|
||||
redhat/rpmbuild/SPECS/.gitignore | 3 +
|
||||
redhat/rpmbuild/SRPMS/.gitignore | 3 +
|
||||
redhat/scripts/frh.py | 25 +
|
||||
redhat/scripts/git-backport-diff | 327 ++++++++++++
|
||||
redhat/scripts/git-compile-check | 215 ++++++++
|
||||
redhat/scripts/process-patches.sh | 92 ++++
|
||||
redhat/scripts/tarball_checksum.sh | 3 +
|
||||
cloudinit/config/cc_chef.py | 65 +++-
|
||||
cloudinit/settings.py | 21 +-
|
||||
requirements.txt | 3 -
|
||||
rhel/README.rhel | 5 +
|
||||
rhel/cloud-init-tmpfiles.conf | 1 +
|
||||
rhel/cloud.cfg | 69 +++
|
||||
rhel/cloud.cfg | 69 ++++
|
||||
rhel/systemd/cloud-config.service | 18 +
|
||||
rhel/systemd/cloud-config.target | 11 +
|
||||
rhel/systemd/cloud-final.service | 24 +
|
||||
rhel/systemd/cloud-final.service | 24 ++
|
||||
rhel/systemd/cloud-init-local.service | 31 ++
|
||||
rhel/systemd/cloud-init.service | 25 +
|
||||
rhel/systemd/cloud-init.service | 26 ++
|
||||
rhel/systemd/cloud-init.target | 7 +
|
||||
setup.py | 28 +-
|
||||
tools/read-version | 28 +-
|
||||
30 files changed, 1756 insertions(+), 55 deletions(-)
|
||||
create mode 100644 redhat/.gitignore
|
||||
create mode 100644 redhat/Makefile
|
||||
create mode 100644 redhat/Makefile.common
|
||||
create mode 100644 redhat/cloud-init-tmpfiles.conf
|
||||
create mode 100644 redhat/cloud-init.spec.template
|
||||
create mode 100644 redhat/gating.yaml
|
||||
create mode 100644 redhat/rpmbuild/BUILD/.gitignore
|
||||
create mode 100644 redhat/rpmbuild/RPMS/.gitignore
|
||||
create mode 100644 redhat/rpmbuild/SOURCES/.gitignore
|
||||
create mode 100644 redhat/rpmbuild/SPECS/.gitignore
|
||||
create mode 100644 redhat/rpmbuild/SRPMS/.gitignore
|
||||
create mode 100755 redhat/scripts/frh.py
|
||||
create mode 100755 redhat/scripts/git-backport-diff
|
||||
create mode 100755 redhat/scripts/git-compile-check
|
||||
create mode 100755 redhat/scripts/process-patches.sh
|
||||
create mode 100755 redhat/scripts/tarball_checksum.sh
|
||||
31 files changed, 1557 insertions(+), 65 deletions(-)
|
||||
create mode 100644 .distro/.gitignore
|
||||
create mode 100644 .distro/Makefile
|
||||
create mode 100644 .distro/Makefile.common
|
||||
create mode 100644 .distro/cloud-init-tmpfiles.conf
|
||||
create mode 100644 .distro/cloud-init.spec.template
|
||||
create mode 100644 .distro/gating.yaml
|
||||
create mode 100644 .distro/rpmbuild/BUILD/.gitignore
|
||||
create mode 100644 .distro/rpmbuild/RPMS/.gitignore
|
||||
create mode 100644 .distro/rpmbuild/SOURCES/.gitignore
|
||||
create mode 100644 .distro/rpmbuild/SPECS/.gitignore
|
||||
create mode 100644 .distro/rpmbuild/SRPMS/.gitignore
|
||||
create mode 100755 .distro/scripts/frh.py
|
||||
create mode 100755 .distro/scripts/git-backport-diff
|
||||
create mode 100755 .distro/scripts/git-compile-check
|
||||
create mode 100755 .distro/scripts/process-patches.sh
|
||||
create mode 100755 .distro/scripts/tarball_checksum.sh
|
||||
create mode 100644 rhel/README.rhel
|
||||
create mode 100644 rhel/cloud-init-tmpfiles.conf
|
||||
create mode 100644 rhel/cloud.cfg
|
||||
@ -202,28 +212,52 @@ index fdb3a6e3..d028c548 100644
|
||||
import itertools
|
||||
import json
|
||||
diff --git a/cloudinit/settings.py b/cloudinit/settings.py
|
||||
index ecc1403b..39650a5b 100644
|
||||
index ecc1403b..a780e21e 100644
|
||||
--- a/cloudinit/settings.py
|
||||
+++ b/cloudinit/settings.py
|
||||
@@ -50,13 +50,16 @@ CFG_BUILTIN = {
|
||||
@@ -48,16 +48,19 @@ CFG_BUILTIN = {
|
||||
# At the end to act as a 'catch' when none of the above work...
|
||||
"None",
|
||||
],
|
||||
"def_log_file": "/var/log/cloud-init.log",
|
||||
"log_cfgs": [],
|
||||
- "def_log_file": "/var/log/cloud-init.log",
|
||||
- "log_cfgs": [],
|
||||
- "syslog_fix_perms": ["syslog:adm", "root:adm", "root:wheel", "root:root"],
|
||||
+ "mount_default_fields": [None, None, "auto", "defaults,nofail", "0", "2"],
|
||||
+ "ssh_deletekeys": False,
|
||||
+ "ssh_genkeytypes": [],
|
||||
+ "syslog_fix_perms": [],
|
||||
"system_info": {
|
||||
"paths": {
|
||||
"cloud_dir": "/var/lib/cloud",
|
||||
"templates_dir": "/etc/cloud/templates/",
|
||||
- "system_info": {
|
||||
- "paths": {
|
||||
- "cloud_dir": "/var/lib/cloud",
|
||||
- "templates_dir": "/etc/cloud/templates/",
|
||||
+ 'def_log_file': '/var/log/cloud-init.log',
|
||||
+ 'log_cfgs': [],
|
||||
+ 'mount_default_fields': [None, None, 'auto', 'defaults,nofail', '0', '2'],
|
||||
+ 'ssh_deletekeys': False,
|
||||
+ 'ssh_genkeytypes': [],
|
||||
+ 'syslog_fix_perms': [],
|
||||
+ 'system_info': {
|
||||
+ 'paths': {
|
||||
+ 'cloud_dir': '/var/lib/cloud',
|
||||
+ 'templates_dir': '/etc/cloud/templates/',
|
||||
},
|
||||
- "distro": "ubuntu",
|
||||
+ "distro": "rhel",
|
||||
"network": {"renderers": None},
|
||||
- "network": {"renderers": None},
|
||||
+ 'distro': 'rhel',
|
||||
+ 'network': {'renderers': None},
|
||||
},
|
||||
"vendor_data": {"enabled": True, "prefix": []},
|
||||
"vendor_data2": {"enabled": True, "prefix": []},
|
||||
diff --git a/requirements.txt b/requirements.txt
|
||||
index c4adc455..f77f1d73 100644
|
||||
--- a/requirements.txt
|
||||
+++ b/requirements.txt
|
||||
@@ -30,9 +30,6 @@ requests
|
||||
# For patching pieces of cloud-config together
|
||||
jsonpatch
|
||||
|
||||
-# For validating cloud-config sections per schema definitions
|
||||
-jsonschema
|
||||
-
|
||||
# Used by DataSourceVMware to inspect the host's network configuration during
|
||||
# the "setup()" function.
|
||||
#
|
||||
diff --git a/rhel/README.rhel b/rhel/README.rhel
|
||||
new file mode 100644
|
||||
index 00000000..aa29630d
|
||||
@ -244,7 +278,7 @@ index 00000000..0c6d2a3b
|
||||
+d /run/cloud-init 0700 root root - -
|
||||
diff --git a/rhel/cloud.cfg b/rhel/cloud.cfg
|
||||
new file mode 100644
|
||||
index 00000000..82e8bf62
|
||||
index 00000000..9ecba215
|
||||
--- /dev/null
|
||||
+++ b/rhel/cloud.cfg
|
||||
@@ -0,0 +1,69 @@
|
||||
@ -256,7 +290,7 @@ index 00000000..82e8bf62
|
||||
+
|
||||
+mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']
|
||||
+resize_rootfs_tmp: /dev
|
||||
+ssh_deletekeys: 0
|
||||
+ssh_deletekeys: 1
|
||||
+ssh_genkeytypes: ~
|
||||
+syslog_fix_perms: ~
|
||||
+disable_vmware_customization: false
|
||||
@ -427,10 +461,10 @@ index 00000000..8f9f6c9f
|
||||
+WantedBy=cloud-init.target
|
||||
diff --git a/rhel/systemd/cloud-init.service b/rhel/systemd/cloud-init.service
|
||||
new file mode 100644
|
||||
index 00000000..d0023a05
|
||||
index 00000000..0b3d796d
|
||||
--- /dev/null
|
||||
+++ b/rhel/systemd/cloud-init.service
|
||||
@@ -0,0 +1,25 @@
|
||||
@@ -0,0 +1,26 @@
|
||||
+[Unit]
|
||||
+Description=Initial cloud-init job (metadata service crawler)
|
||||
+Wants=cloud-init-local.service
|
||||
@ -438,6 +472,7 @@ index 00000000..d0023a05
|
||||
+Wants=sshd.service
|
||||
+After=cloud-init-local.service
|
||||
+After=NetworkManager.service network.service
|
||||
+After=NetworkManager-wait-online.service
|
||||
+Before=network-online.target
|
||||
+Before=sshd-keygen.service
|
||||
+Before=sshd.service
|
519
SOURCES/0001-Fix-and-Improve-AlmaLinux-support.patch
Normal file
519
SOURCES/0001-Fix-and-Improve-AlmaLinux-support.patch
Normal file
@ -0,0 +1,519 @@
|
||||
From 7e1576b7ff7b6352ed685c3b3362888121f12088 Mon Sep 17 00:00:00 2001
|
||||
From: Elkhan Mammadli <elkhan.mammadli@protonmail.com>
|
||||
Date: Tue, 21 Feb 2023 00:53:46 +0400
|
||||
Subject: [PATCH] Fix and Improve AlmaLinux support
|
||||
|
||||
- Fix cc_yum_add_repo module
|
||||
- Fix cc_ntp module
|
||||
- Add support for cc_ca_certs module
|
||||
- Improve the AlmaLinux support in Cloud-init configuration
|
||||
- Improve the AlmaLinux support in Cloud-init systemd services
|
||||
- Add support to Rbx Cloud Datasource
|
||||
|
||||
Signed-off-by: Elkhan Mammadli <elkhan.mammadli@protonmail.com>
|
||||
---
|
||||
cloudinit/config/cc_ca_certs.py | 9 +++-
|
||||
cloudinit/settings.py | 2 +-
|
||||
cloudinit/sources/DataSourceRbxCloud.py | 2 +-
|
||||
config/cloud.cfg.tmpl | 10 ++--
|
||||
packages/pkg-deps.json | 14 ++++++
|
||||
systemd/cloud-config.service.tmpl | 2 +-
|
||||
systemd/cloud-final.service.tmpl | 4 +-
|
||||
systemd/cloud-init-local.service.tmpl | 12 ++---
|
||||
systemd/cloud-init.service.tmpl | 4 +-
|
||||
templates/chrony.conf.almalinux.tmpl | 45 ++++++++++++++++++
|
||||
templates/ntp.conf.almalinux.tmpl | 61 +++++++++++++++++++++++++
|
||||
tests/unittests/test_net.py | 1 +
|
||||
tests/unittests/test_render_cloudcfg.py | 2 +
|
||||
tools/read-dependencies | 8 +++-
|
||||
tools/run-container | 12 ++---
|
||||
15 files changed, 161 insertions(+), 27 deletions(-)
|
||||
create mode 100644 templates/chrony.conf.almalinux.tmpl
|
||||
create mode 100644 templates/ntp.conf.almalinux.tmpl
|
||||
|
||||
diff --git a/cloudinit/config/cc_ca_certs.py b/cloudinit/config/cc_ca_certs.py
|
||||
index 6084cb4..55746ea 100644
|
||||
--- a/cloudinit/config/cc_ca_certs.py
|
||||
+++ b/cloudinit/config/cc_ca_certs.py
|
||||
@@ -19,6 +19,13 @@ DEFAULT_CONFIG = {
|
||||
"ca_cert_update_cmd": ["update-ca-certificates"],
|
||||
}
|
||||
DISTRO_OVERRIDES = {
|
||||
+ "almalinux": {
|
||||
+ "ca_cert_path": "/usr/share/pki/ca-trust-source/",
|
||||
+ "ca_cert_filename": "anchors/cloud-init-ca-certs.crt",
|
||||
+ "ca_cert_config": None,
|
||||
+ "ca_cert_system_path": "/etc/pki/ca-trust/",
|
||||
+ "ca_cert_update_cmd": ["update-ca-trust"],
|
||||
+ },
|
||||
"rhel": {
|
||||
"ca_cert_path": "/usr/share/pki/ca-trust-source/",
|
||||
"ca_cert_filename": "anchors/cloud-init-ca-certs.crt",
|
||||
@@ -43,7 +50,7 @@ can be removed from the system with the configuration option
|
||||
ca-certificates package is installed but not if the
|
||||
ca-certificates-bundle package is installed.
|
||||
"""
|
||||
-distros = ["alpine", "debian", "ubuntu", "rhel"]
|
||||
+distros = ["almalinux", "alpine", "debian", "ubuntu", "rhel"]
|
||||
|
||||
meta: MetaSchema = {
|
||||
"id": "cc_ca_certs",
|
||||
diff --git a/cloudinit/settings.py b/cloudinit/settings.py
|
||||
index 38a90b7..19b9cf1 100644
|
||||
--- a/cloudinit/settings.py
|
||||
+++ b/cloudinit/settings.py
|
||||
@@ -58,7 +58,7 @@ CFG_BUILTIN = {
|
||||
'cloud_dir': '/var/lib/cloud',
|
||||
'templates_dir': '/etc/cloud/templates/',
|
||||
},
|
||||
- 'distro': 'rhel',
|
||||
+ 'distro': 'almalinux',
|
||||
'network': {'renderers': None},
|
||||
},
|
||||
"vendor_data": {"enabled": True, "prefix": []},
|
||||
diff --git a/cloudinit/sources/DataSourceRbxCloud.py b/cloudinit/sources/DataSourceRbxCloud.py
|
||||
index 14ac77e..7cd14a1 100644
|
||||
--- a/cloudinit/sources/DataSourceRbxCloud.py
|
||||
+++ b/cloudinit/sources/DataSourceRbxCloud.py
|
||||
@@ -55,7 +55,7 @@ def _sub_arp(cmd):
|
||||
|
||||
def gratuitous_arp(items, distro):
|
||||
source_param = "-S"
|
||||
- if distro.name in ["fedora", "centos", "rhel"]:
|
||||
+ if distro.name in ["almalinux", "fedora", "centos", "rhel"]:
|
||||
source_param = "-s"
|
||||
for item in items:
|
||||
try:
|
||||
diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl
|
||||
index 80ab4f9..ce63c1b 100644
|
||||
--- a/config/cloud.cfg.tmpl
|
||||
+++ b/config/cloud.cfg.tmpl
|
||||
@@ -34,7 +34,7 @@ disable_root: true
|
||||
|
||||
{% if variant in ["almalinux", "alpine", "amazon", "centos", "cloudlinux", "eurolinux",
|
||||
"fedora", "miraclelinux", "openEuler", "rhel", "rocky", "virtuozzo"] %}
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service,_netdev', '0', '2']
|
||||
{% else %}
|
||||
mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2']
|
||||
@@ -70,7 +70,7 @@ network:
|
||||
config: disabled
|
||||
{% endif %}
|
||||
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
# Default redhat settings:
|
||||
ssh_deletekeys: true
|
||||
ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519']
|
||||
@@ -119,7 +119,7 @@ cloud_config_modules:
|
||||
{% endif %}
|
||||
{% if variant not in ["photon"] %}
|
||||
- ssh-import-id
|
||||
-{% if variant not in ["rhel"] %}
|
||||
+{% if variant not in ["almalinux", "rhel"] %}
|
||||
- keyboard
|
||||
{% endif %}
|
||||
- locale
|
||||
@@ -128,7 +128,7 @@ cloud_config_modules:
|
||||
{% if variant in ["rhel"] %}
|
||||
- rh_subscription
|
||||
{% endif %}
|
||||
-{% if variant in ["rhel", "fedora", "photon"] %}
|
||||
+{% if variant in ["almalinux", "rhel", "fedora", "photon"] %}
|
||||
{% if variant not in ["photon"] %}
|
||||
- spacewalk
|
||||
{% endif %}
|
||||
@@ -275,7 +275,7 @@ system_info:
|
||||
groups: [adm, sudo]
|
||||
{% elif variant == "arch" %}
|
||||
groups: [wheel, users]
|
||||
-{% elif variant == "rhel" %}
|
||||
+{% elif variant in ["almalinux", "rhel"] %}
|
||||
groups: [adm, systemd-journal]
|
||||
{% else %}
|
||||
groups: [wheel, adm, systemd-journal]
|
||||
diff --git a/packages/pkg-deps.json b/packages/pkg-deps.json
|
||||
index eaf1346..0c22fd4 100644
|
||||
--- a/packages/pkg-deps.json
|
||||
+++ b/packages/pkg-deps.json
|
||||
@@ -13,6 +13,20 @@
|
||||
"procps"
|
||||
]
|
||||
},
|
||||
+ "almalinux" : {
|
||||
+ "build-requires" : [
|
||||
+ "python3-devel"
|
||||
+ ],
|
||||
+ "requires" : [
|
||||
+ "e2fsprogs",
|
||||
+ "iproute",
|
||||
+ "net-tools",
|
||||
+ "procps",
|
||||
+ "rsyslog",
|
||||
+ "shadow-utils",
|
||||
+ "sudo"
|
||||
+ ]
|
||||
+ },
|
||||
"centos" : {
|
||||
"build-requires" : [
|
||||
"python3-devel"
|
||||
diff --git a/systemd/cloud-config.service.tmpl b/systemd/cloud-config.service.tmpl
|
||||
index d5568a6..4b88f83 100644
|
||||
--- a/systemd/cloud-config.service.tmpl
|
||||
+++ b/systemd/cloud-config.service.tmpl
|
||||
@@ -4,7 +4,7 @@ Description=Apply the settings specified in cloud-config
|
||||
After=network-online.target cloud-config.target
|
||||
After=snapd.seeded.service
|
||||
Wants=network-online.target cloud-config.target
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||
ConditionKernelCommandLine=!cloud-init=disabled
|
||||
{% endif %}
|
||||
diff --git a/systemd/cloud-final.service.tmpl b/systemd/cloud-final.service.tmpl
|
||||
index 85f423a..aa5990c 100644
|
||||
--- a/systemd/cloud-final.service.tmpl
|
||||
+++ b/systemd/cloud-final.service.tmpl
|
||||
@@ -7,7 +7,7 @@ After=multi-user.target
|
||||
Before=apt-daily.service
|
||||
{% endif %}
|
||||
Wants=network-online.target cloud-config.service
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||
ConditionKernelCommandLine=!cloud-init=disabled
|
||||
{% endif %}
|
||||
@@ -19,7 +19,7 @@ ExecStart=/usr/bin/cloud-init modules --mode=final
|
||||
RemainAfterExit=yes
|
||||
TimeoutSec=0
|
||||
KillMode=process
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
# Restart NetworkManager if it is present and running.
|
||||
ExecStartPost=/bin/sh -c 'u=NetworkManager.service; \
|
||||
out=$(systemctl show --property=SubState $u) || exit; \
|
||||
diff --git a/systemd/cloud-init-local.service.tmpl b/systemd/cloud-init-local.service.tmpl
|
||||
index a6b8265..29ac717 100644
|
||||
--- a/systemd/cloud-init-local.service.tmpl
|
||||
+++ b/systemd/cloud-init-local.service.tmpl
|
||||
@@ -1,23 +1,23 @@
|
||||
## template:jinja
|
||||
[Unit]
|
||||
Description=Initial cloud-init job (pre-networking)
|
||||
-{% if variant in ["ubuntu", "unknown", "debian", "rhel" ] %}
|
||||
+{% if variant in ["almalinux", "ubuntu", "unknown", "debian", "rhel" ] %}
|
||||
DefaultDependencies=no
|
||||
{% endif %}
|
||||
Wants=network-pre.target
|
||||
After=hv_kvp_daemon.service
|
||||
After=systemd-remount-fs.service
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
Requires=dbus.socket
|
||||
After=dbus.socket
|
||||
{% endif %}
|
||||
Before=NetworkManager.service
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
Before=network.service
|
||||
{% endif %}
|
||||
Before=network-pre.target
|
||||
Before=shutdown.target
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
Before=firewalld.target
|
||||
Conflicts=shutdown.target
|
||||
{% endif %}
|
||||
@@ -26,14 +26,14 @@ Before=sysinit.target
|
||||
Conflicts=shutdown.target
|
||||
{% endif %}
|
||||
RequiresMountsFor=/var/lib/cloud
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||
ConditionKernelCommandLine=!cloud-init=disabled
|
||||
{% endif %}
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
ExecStartPre=/bin/mkdir -p /run/cloud-init
|
||||
ExecStartPre=/sbin/restorecon /run/cloud-init
|
||||
ExecStartPre=/usr/bin/touch /run/cloud-init/enabled
|
||||
diff --git a/systemd/cloud-init.service.tmpl b/systemd/cloud-init.service.tmpl
|
||||
index c170aef..08da708 100644
|
||||
--- a/systemd/cloud-init.service.tmpl
|
||||
+++ b/systemd/cloud-init.service.tmpl
|
||||
@@ -1,7 +1,7 @@
|
||||
## template:jinja
|
||||
[Unit]
|
||||
Description=Initial cloud-init job (metadata service crawler)
|
||||
-{% if variant not in ["photon", "rhel"] %}
|
||||
+{% if variant not in ["almalinux", "photon", "rhel"] %}
|
||||
DefaultDependencies=no
|
||||
{% endif %}
|
||||
Wants=cloud-init-local.service
|
||||
@@ -36,7 +36,7 @@ Before=shutdown.target
|
||||
Conflicts=shutdown.target
|
||||
{% endif %}
|
||||
Before=systemd-user-sessions.service
|
||||
-{% if variant == "rhel" %}
|
||||
+{% if variant in ["almalinux", "rhel"] %}
|
||||
ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||
ConditionKernelCommandLine=!cloud-init=disabled
|
||||
{% endif %}
|
||||
diff --git a/templates/chrony.conf.almalinux.tmpl b/templates/chrony.conf.almalinux.tmpl
|
||||
new file mode 100644
|
||||
index 0000000..5b3542e
|
||||
--- /dev/null
|
||||
+++ b/templates/chrony.conf.almalinux.tmpl
|
||||
@@ -0,0 +1,45 @@
|
||||
+## template:jinja
|
||||
+# Use public servers from the pool.ntp.org project.
|
||||
+# Please consider joining the pool (http://www.pool.ntp.org/join.html).
|
||||
+{% if pools %}# pools
|
||||
+{% endif %}
|
||||
+{% for pool in pools -%}
|
||||
+pool {{pool}} iburst
|
||||
+{% endfor %}
|
||||
+{%- if servers %}# servers
|
||||
+{% endif %}
|
||||
+{% for server in servers -%}
|
||||
+server {{server}} iburst
|
||||
+{% endfor %}
|
||||
+
|
||||
+# Record the rate at which the system clock gains/losses time.
|
||||
+driftfile /var/lib/chrony/drift
|
||||
+
|
||||
+# Allow the system clock to be stepped in the first three updates
|
||||
+# if its offset is larger than 1 second.
|
||||
+makestep 1.0 3
|
||||
+
|
||||
+# Enable kernel synchronization of the real-time clock (RTC).
|
||||
+rtcsync
|
||||
+
|
||||
+# Enable hardware timestamping on all interfaces that support it.
|
||||
+#hwtimestamp *
|
||||
+
|
||||
+# Increase the minimum number of selectable sources required to adjust
|
||||
+# the system clock.
|
||||
+#minsources 2
|
||||
+
|
||||
+# Allow NTP client access from local network.
|
||||
+#allow 192.168.0.0/16
|
||||
+
|
||||
+# Serve time even if not synchronized to a time source.
|
||||
+#local stratum 10
|
||||
+
|
||||
+# Specify file containing keys for NTP authentication.
|
||||
+#keyfile /etc/chrony.keys
|
||||
+
|
||||
+# Specify directory for log files.
|
||||
+logdir /var/log/chrony
|
||||
+
|
||||
+# Select which information is logged.
|
||||
+#log measurements statistics tracking
|
||||
diff --git a/templates/ntp.conf.almalinux.tmpl b/templates/ntp.conf.almalinux.tmpl
|
||||
new file mode 100644
|
||||
index 0000000..62b4776
|
||||
--- /dev/null
|
||||
+++ b/templates/ntp.conf.almalinux.tmpl
|
||||
@@ -0,0 +1,61 @@
|
||||
+## template:jinja
|
||||
+
|
||||
+# For more information about this file, see the man pages
|
||||
+# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
|
||||
+
|
||||
+driftfile /var/lib/ntp/drift
|
||||
+
|
||||
+# Permit time synchronization with our time source, but do not
|
||||
+# permit the source to query or modify the service on this system.
|
||||
+restrict default kod nomodify notrap nopeer noquery
|
||||
+restrict -6 default kod nomodify notrap nopeer noquery
|
||||
+
|
||||
+# Permit all access over the loopback interface. This could
|
||||
+# be tightened as well, but to do so would effect some of
|
||||
+# the administrative functions.
|
||||
+restrict 127.0.0.1
|
||||
+restrict -6 ::1
|
||||
+
|
||||
+# Hosts on local network are less restricted.
|
||||
+#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
|
||||
+
|
||||
+# Use public servers from the pool.ntp.org project.
|
||||
+# Please consider joining the pool (http://www.pool.ntp.org/join.html).
|
||||
+{% if pools %}# pools
|
||||
+{% endif %}
|
||||
+{% for pool in pools -%}
|
||||
+pool {{pool}} iburst
|
||||
+{% endfor %}
|
||||
+{%- if servers %}# servers
|
||||
+{% endif %}
|
||||
+{% for server in servers -%}
|
||||
+server {{server}} iburst
|
||||
+{% endfor %}
|
||||
+
|
||||
+#broadcast 192.168.1.255 autokey # broadcast server
|
||||
+#broadcastclient # broadcast client
|
||||
+#broadcast 224.0.1.1 autokey # multicast server
|
||||
+#multicastclient 224.0.1.1 # multicast client
|
||||
+#manycastserver 239.255.254.254 # manycast server
|
||||
+#manycastclient 239.255.254.254 autokey # manycast client
|
||||
+
|
||||
+# Enable public key cryptography.
|
||||
+#crypto
|
||||
+
|
||||
+includefile /etc/ntp/crypto/pw
|
||||
+
|
||||
+# Key file containing the keys and key identifiers used when operating
|
||||
+# with symmetric key cryptography.
|
||||
+keys /etc/ntp/keys
|
||||
+
|
||||
+# Specify the key identifiers which are trusted.
|
||||
+#trustedkey 4 8 42
|
||||
+
|
||||
+# Specify the key identifier to use with the ntpdc utility.
|
||||
+#requestkey 8
|
||||
+
|
||||
+# Specify the key identifier to use with the ntpq utility.
|
||||
+#controlkey 8
|
||||
+
|
||||
+# Enable writing of statistics records.
|
||||
+#statistics clockstats cryptostats loopstats peerstats
|
||||
diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py
|
||||
index 591241b..05aa3f9 100644
|
||||
--- a/tests/unittests/test_net.py
|
||||
+++ b/tests/unittests/test_net.py
|
||||
@@ -6254,6 +6254,7 @@ class TestNetRenderers(CiTestCase):
|
||||
def test_sysconfig_available_uses_variant_mapping(self, m_info, m_avail):
|
||||
m_avail.return_value = True
|
||||
variants = [
|
||||
+ "almalinux",
|
||||
"suse",
|
||||
"centos",
|
||||
"eurolinux",
|
||||
diff --git a/tests/unittests/test_render_cloudcfg.py b/tests/unittests/test_render_cloudcfg.py
|
||||
index 9f95d44..f1844e9 100644
|
||||
--- a/tests/unittests/test_render_cloudcfg.py
|
||||
+++ b/tests/unittests/test_render_cloudcfg.py
|
||||
@@ -9,6 +9,7 @@ from tests.unittests.helpers import cloud_init_project_dir
|
||||
|
||||
# TODO(Look to align with tools.render-cloudcfg or cloudinit.distos.OSFAMILIES)
|
||||
DISTRO_VARIANTS = [
|
||||
+ "almalinux",
|
||||
"amazon",
|
||||
"arch",
|
||||
"centos",
|
||||
@@ -66,6 +67,7 @@ class TestRenderCloudCfg:
|
||||
system_cfg = util.load_yaml(stream.read())
|
||||
|
||||
default_user_exceptions = {
|
||||
+ "almalinux": "almalinux",
|
||||
"amazon": "ec2-user",
|
||||
"debian": "ubuntu",
|
||||
"rhel": "cloud-user",
|
||||
diff --git a/tools/read-dependencies b/tools/read-dependencies
|
||||
index efa5879..7888c8f 100755
|
||||
--- a/tools/read-dependencies
|
||||
+++ b/tools/read-dependencies
|
||||
@@ -22,6 +22,7 @@ DEFAULT_REQUIREMENTS = 'requirements.txt'
|
||||
|
||||
# Map the appropriate package dir needed for each distro choice
|
||||
DISTRO_PKG_TYPE_MAP = {
|
||||
+ 'almalinux': 'redhat',
|
||||
'centos': 'redhat',
|
||||
'eurolinux': 'redhat',
|
||||
'miraclelinux': 'redhat',
|
||||
@@ -68,6 +69,7 @@ ZYPPER_INSTALL = [
|
||||
'--auto-agree-with-licenses']
|
||||
|
||||
DRY_DISTRO_INSTALL_PKG_CMD = {
|
||||
+ 'almalinux': ['yum', 'install', '--assumeyes'],
|
||||
'rocky': ['yum', 'install', '--assumeyes'],
|
||||
'centos': ['yum', 'install', '--assumeyes'],
|
||||
'eurolinux': ['yum', 'install', '--assumeyes'],
|
||||
@@ -76,6 +78,7 @@ DRY_DISTRO_INSTALL_PKG_CMD = {
|
||||
}
|
||||
|
||||
DISTRO_INSTALL_PKG_CMD = {
|
||||
+ 'almalinux': MAYBE_RELIABLE_YUM_INSTALL,
|
||||
'rocky': MAYBE_RELIABLE_YUM_INSTALL,
|
||||
'eurolinux': MAYBE_RELIABLE_YUM_INSTALL,
|
||||
'miraclelinux': MAYBE_RELIABLE_YUM_INSTALL,
|
||||
@@ -90,6 +93,7 @@ DISTRO_INSTALL_PKG_CMD = {
|
||||
|
||||
# List of base system packages required to enable ci automation
|
||||
CI_SYSTEM_BASE_PKGS = {
|
||||
+ 'almalinux': ['python3-tox'],
|
||||
'common': ['make', 'sudo', 'tar'],
|
||||
'eurolinux': ['python3-tox'],
|
||||
'miraclelinux': ['python3-tox'],
|
||||
@@ -285,10 +289,10 @@ def pkg_install(pkg_list, distro, test_distro=False, dry_run=False):
|
||||
cmd = DRY_DISTRO_INSTALL_PKG_CMD[distro]
|
||||
install_cmd.extend(cmd)
|
||||
|
||||
- if distro in ['centos', 'redhat', 'rocky', 'eurolinux']:
|
||||
+ if distro in ['almalinux', 'centos', 'redhat', 'rocky', 'eurolinux']:
|
||||
# CentOS and Redhat need epel-release to access oauthlib and jsonschema
|
||||
subprocess.check_call(install_cmd + ['epel-release'])
|
||||
- if distro in ['suse', 'opensuse', 'redhat', 'rocky', 'centos', 'eurolinux']:
|
||||
+ if distro in ['almalinux', 'suse', 'opensuse', 'redhat', 'rocky', 'centos', 'eurolinux']:
|
||||
pkg_list.append('rpm-build')
|
||||
subprocess.check_call(install_cmd + pkg_list)
|
||||
|
||||
diff --git a/tools/run-container b/tools/run-container
|
||||
index e049dfd..02088aa 100755
|
||||
--- a/tools/run-container
|
||||
+++ b/tools/run-container
|
||||
@@ -102,7 +102,7 @@ inject_cloud_init(){
|
||||
}
|
||||
local t=${gitdir%/*}
|
||||
case "$t" in
|
||||
- */worktrees)
|
||||
+ */worktrees)
|
||||
if [ -f "${t%worktrees}/config" ]; then
|
||||
gitdir="${t%worktrees}"
|
||||
fi
|
||||
@@ -191,7 +191,7 @@ os_info() {
|
||||
|
||||
get_os_info() {
|
||||
# run inside container, set OS_NAME, OS_VERSION
|
||||
- # example OS_NAME are centos, debian, opensuse, rockylinux
|
||||
+ # example OS_NAME are almalinux, centos, debian, opensuse, rockylinux
|
||||
[ -n "${OS_NAME:-}" -a -n "${OS_VERSION:-}" ] && return 0
|
||||
if [ -f /etc/os-release ]; then
|
||||
OS_NAME=$(sh -c '. /etc/os-release; echo $ID')
|
||||
@@ -247,7 +247,7 @@ apt_install() {
|
||||
install_packages() {
|
||||
get_os_info || return
|
||||
case "$OS_NAME" in
|
||||
- centos|rocky*) yum_install "$@";;
|
||||
+ almalinux|centos|rocky*) yum_install "$@";;
|
||||
opensuse) zypper_install "$@";;
|
||||
debian|ubuntu) apt_install "$@";;
|
||||
*) error "Do not know how to install packages on ${OS_NAME}";
|
||||
@@ -486,16 +486,16 @@ main() {
|
||||
|
||||
local build_pkg="" build_srcpkg="" pkg_ext="" distflag=""
|
||||
case "$OS_NAME" in
|
||||
- centos|rocky) distflag="--distro=redhat";;
|
||||
+ almalinux|centos|rocky) distflag="--distro=redhat";;
|
||||
opensuse) distflag="--distro=suse";;
|
||||
esac
|
||||
|
||||
case "$OS_NAME" in
|
||||
debian|ubuntu)
|
||||
- build_pkg="./packages/bddeb -d"
|
||||
+ build_pkg="./packages/bddeb -d"
|
||||
build_srcpkg="./packages/bddeb -S -d"
|
||||
pkg_ext=".deb";;
|
||||
- centos|opensuse|rocky)
|
||||
+ almalinux|centos|opensuse|rocky)
|
||||
build_pkg="./packages/brpm $distflag"
|
||||
build_srcpkg="./packages/brpm $distflag --srpm"
|
||||
pkg_ext=".rpm";;
|
||||
--
|
||||
2.39.2
|
||||
|
@ -1,4 +1,4 @@
|
||||
From e0dc628ac553072891fa6607dc91b652efd99be2 Mon Sep 17 00:00:00 2001
|
||||
From c521ec2ce5b1d9a7322ce152011b8792f121bf5c Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Fri, 7 May 2021 13:36:06 +0200
|
||||
Subject: Do not write NM_CONTROLLED=no in generated interface config files
|
||||
@ -8,16 +8,19 @@ Conflicts 20.3:
|
||||
mechanism to identify if cloud-init is running on RHEL, having the
|
||||
correct settings for NM_CONTROLLED.
|
||||
|
||||
Merged patches (21.1):
|
||||
- ecbace48 sysconfig: Don't write BOOTPROTO=dhcp for ipv6 dhcp
|
||||
- a1a00383 include 'NOZEROCONF=yes' in /etc/sysconfig/network
|
||||
X-downstream-only: true
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
Signed-off-by: Ryan McCabe <rmccabe@redhat.com>
|
||||
---
|
||||
cloudinit/net/sysconfig.py | 1 -
|
||||
cloudinit/net/sysconfig.py | 12 ++++++++++--
|
||||
tests/unittests/test_net.py | 28 ----------------------------
|
||||
2 files changed, 29 deletions(-)
|
||||
2 files changed, 10 insertions(+), 30 deletions(-)
|
||||
|
||||
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
|
||||
index ba85c4f6..e06ddee7 100644
|
||||
index ba85c4f6..d8c53312 100644
|
||||
--- a/cloudinit/net/sysconfig.py
|
||||
+++ b/cloudinit/net/sysconfig.py
|
||||
@@ -336,7 +336,6 @@ class Renderer(renderer.Renderer):
|
||||
@ -28,6 +31,24 @@ index ba85c4f6..e06ddee7 100644
|
||||
"BOOTPROTO": "none",
|
||||
},
|
||||
"suse": {"BOOTPROTO": "static", "STARTMODE": "auto"},
|
||||
@@ -1039,7 +1038,16 @@ class Renderer(renderer.Renderer):
|
||||
# Distros configuring /etc/sysconfig/network as a file e.g. Centos
|
||||
if sysconfig_path.endswith("network"):
|
||||
util.ensure_dir(os.path.dirname(sysconfig_path))
|
||||
- netcfg = [_make_header(), "NETWORKING=yes"]
|
||||
+ netcfg = []
|
||||
+ for line in util.load_file(sysconfig_path, quiet=True).split('\n'):
|
||||
+ if 'cloud-init' in line:
|
||||
+ break
|
||||
+ if not line.startswith(('NETWORKING=',
|
||||
+ 'IPV6_AUTOCONF=',
|
||||
+ 'NETWORKING_IPV6=')):
|
||||
+ netcfg.append(line)
|
||||
+ # Now generate the cloud-init portion of sysconfig/network
|
||||
+ netcfg.extend([_make_header(), 'NETWORKING=yes'])
|
||||
if network_state.use_ipv6:
|
||||
netcfg.append("NETWORKING_IPV6=yes")
|
||||
netcfg.append("IPV6_AUTOCONF=no")
|
||||
diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py
|
||||
index 47e4ba00..591241b3 100644
|
||||
--- a/tests/unittests/test_net.py
|
||||
|
@ -0,0 +1,42 @@
|
||||
From b952fa472be3f417e0d857c8647a1b930624c247 Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Fri, 25 Feb 2022 05:05:17 -0500
|
||||
Subject: Adding _netdev to the default mount configuration
|
||||
|
||||
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||
RH-MergeRequest: 21: Adding _netdev to the default mount configuration
|
||||
RH-Commit: [1/1] 250860a24db396a5088d207d6526a0028ac73eb3 (otubo/cloud-init-src)
|
||||
RH-Bugzilla: 1998445
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
|
||||
Adding _netdev option also to the default configuration for RHEL.
|
||||
|
||||
rhbz: 1998445
|
||||
x-downstream-only: yes
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
|
||||
patch_name: ci-Adding-_netdev-to-the-default-mount-configuration.patch
|
||||
present_in_specfile: true
|
||||
location_in_specfile: 29
|
||||
---
|
||||
rhel/cloud.cfg | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rhel/cloud.cfg b/rhel/cloud.cfg
|
||||
index 9ecba215..1ec1a6c6 100644
|
||||
--- a/rhel/cloud.cfg
|
||||
+++ b/rhel/cloud.cfg
|
||||
@@ -4,7 +4,7 @@ users:
|
||||
disable_root: 1
|
||||
ssh_pwauth: 0
|
||||
|
||||
-mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']
|
||||
+mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service,_netdev', '0', '2']
|
||||
resize_rootfs_tmp: /dev
|
||||
ssh_deletekeys: 1
|
||||
ssh_genkeytypes: ~
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,49 @@
|
||||
From a14df44ffdc880ae16c691901e2671458ab234ff Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Thu, 17 Feb 2022 15:32:35 +0100
|
||||
Subject: Setting highest autoconnect priority for network-scripts
|
||||
|
||||
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||
RH-MergeRequest: 22: Setting highest autoconnect priority for network-scripts
|
||||
RH-Commit: [1/1] 34f1d62f8934a983a124df95b861a1e448681d3b (otubo/cloud-init-src)
|
||||
RH-Bugzilla: 2036060
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
|
||||
Set the highest autoconnect priority for network-scripts which is
|
||||
loaded by NetworkManager ifcfg-rh plugin. Note that keyfile is the only
|
||||
and default existing plugin on RHEL9, by setting the highest autoconnect
|
||||
priority for network-scripts, NetworkManager will activate
|
||||
network-scripts but keyfile. Network-scripts path:
|
||||
|
||||
Since this is a blocking issue, we decided to have this one-liner
|
||||
downstream-only patch so we can move forward and have a better
|
||||
NetworkManager support later on the release.
|
||||
|
||||
rhbz: 2036060
|
||||
x-downstream-only: yes
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
|
||||
patch_name: ci-Setting-highest-autoconnect-priority-for-network-scr.patch
|
||||
present_in_specfile: true
|
||||
location_in_specfile: 30
|
||||
---
|
||||
cloudinit/net/sysconfig.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
|
||||
index d8c53312..b50035b5 100644
|
||||
--- a/cloudinit/net/sysconfig.py
|
||||
+++ b/cloudinit/net/sysconfig.py
|
||||
@@ -337,6 +337,7 @@ class Renderer(renderer.Renderer):
|
||||
"ONBOOT": True,
|
||||
"USERCTL": False,
|
||||
"BOOTPROTO": "none",
|
||||
+ "AUTOCONNECT_PRIORITY": 999
|
||||
},
|
||||
"suse": {"BOOTPROTO": "static", "STARTMODE": "auto"},
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,52 +0,0 @@
|
||||
From ffa647e83efd4293bd027e9e390274aad8a12d94 Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Fri, 7 May 2021 13:36:13 +0200
|
||||
Subject: include 'NOZEROCONF=yes' in /etc/sysconfig/network
|
||||
|
||||
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Message-id: <20190320114559.23708-1-otubo@redhat.com>
|
||||
Patchwork-id: 84937
|
||||
O-Subject: [RHEL-7.7 cloud-init PATCH] include 'NOZEROCONF=yes' in /etc/sysconfig/network
|
||||
Bugzilla: 1653131
|
||||
RH-Acked-by: Cathy Avery <cavery@redhat.com>
|
||||
RH-Acked-by: Mohammed Gamal <mgamal@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
|
||||
The option NOZEROCONF=yes is not included by default in
|
||||
/etc/sysconfig/network, which is required by Overcloud instances. The
|
||||
patch also includes tests for the modifications.
|
||||
|
||||
X-downstream-only: yes
|
||||
Resolves: rhbz#1653131
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
---
|
||||
cloudinit/net/sysconfig.py | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
|
||||
index e06ddee7..362e8d19 100644
|
||||
--- a/cloudinit/net/sysconfig.py
|
||||
+++ b/cloudinit/net/sysconfig.py
|
||||
@@ -1038,7 +1038,16 @@ class Renderer(renderer.Renderer):
|
||||
# Distros configuring /etc/sysconfig/network as a file e.g. Centos
|
||||
if sysconfig_path.endswith("network"):
|
||||
util.ensure_dir(os.path.dirname(sysconfig_path))
|
||||
- netcfg = [_make_header(), "NETWORKING=yes"]
|
||||
+ netcfg = []
|
||||
+ for line in util.load_file(sysconfig_path, quiet=True).split("\n"):
|
||||
+ if "cloud-init" in line:
|
||||
+ break
|
||||
+ if not line.startswith(("NETWORKING=",
|
||||
+ "IPV6_AUTOCONF=",
|
||||
+ "NETWORKING_IPV6=")):
|
||||
+ netcfg.append(line)
|
||||
+ # Now generate the cloud-init portion of sysconfig/network
|
||||
+ netcfg.extend([_make_header(), "NETWORKING=yes"])
|
||||
if network_state.use_ipv6:
|
||||
netcfg.append("NETWORKING_IPV6=yes")
|
||||
netcfg.append("IPV6_AUTOCONF=no")
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,148 +0,0 @@
|
||||
From 386f0a82bfdfd62e506bf4251c17263260d3250a Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Fri, 7 May 2021 13:36:14 +0200
|
||||
Subject: Remove race condition between cloud-init and NetworkManager
|
||||
|
||||
Message-id: <20200302104635.11648-1-otubo@redhat.com>
|
||||
Patchwork-id: 94098
|
||||
O-Subject: [RHEL-7.9/RHEL-8.2.0 cloud-init PATCH] Remove race condition between cloud-init and NetworkManager
|
||||
Bugzilla: 1807797
|
||||
RH-Acked-by: Cathy Avery <cavery@redhat.com>
|
||||
RH-Acked-by: Mohammed Gamal <mgamal@redhat.com>
|
||||
|
||||
BZ: 1748015
|
||||
BRANCH: rhel7/master-18.5
|
||||
BREW: 26924611
|
||||
|
||||
BZ: 1807797
|
||||
BRANCH: rhel820/master-18.5
|
||||
BREW: 26924957
|
||||
|
||||
cloud-init service is set to start before NetworkManager service starts,
|
||||
but this does not avoid a race condition between them. NetworkManager
|
||||
starts before cloud-init can write `dns=none' to the file:
|
||||
/etc/NetworkManager/conf.d/99-cloud-init.conf. This way NetworkManager
|
||||
doesn't read the configuration and erases all resolv.conf values upon
|
||||
shutdown. On the next reboot neither cloud-init or NetworkManager will
|
||||
write anything to resolv.conf, leaving it blank.
|
||||
|
||||
This patch introduces a NM reload (try-restart) at the end of cloud-init
|
||||
start up so it won't erase resolv.conf upon first shutdown.
|
||||
|
||||
x-downstream-only: yes
|
||||
resolves: rhbz#1748015, rhbz#1807797 and rhbz#1804780
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
This commit is a squash and also includes the folloowing commits:
|
||||
|
||||
commit 316a17b7c02a87fa9b2981535be0b20d165adc46
|
||||
Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Mon Jun 1 11:58:06 2020 +0200
|
||||
|
||||
Make cloud-init.service execute after network is up
|
||||
|
||||
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Message-id: <20200526090804.2047-1-otubo@redhat.com>
|
||||
Patchwork-id: 96809
|
||||
O-Subject: [RHEL-8.2.1 cloud-init PATCH] Make cloud-init.service execute after network is up
|
||||
Bugzilla: 1803928
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
cloud-init.service needs to wait until network is fully up before
|
||||
continuing executing and configuring its service.
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
|
||||
x-downstream-only: yes
|
||||
Resolves: rhbz#1831646
|
||||
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
commit 0422ba0e773d1a8257a3f2bf3db05f3bc7917eb7
|
||||
Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Thu May 28 08:44:08 2020 +0200
|
||||
|
||||
Remove race condition between cloud-init and NetworkManager
|
||||
|
||||
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Message-id: <20200327121911.17699-1-otubo@redhat.com>
|
||||
Patchwork-id: 94453
|
||||
O-Subject: [RHEL-7.9/RHEL-8.2.0 cloud-init PATCHv2] Remove race condition between cloud-init and NetworkManager
|
||||
Bugzilla: 1840648
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Cathy Avery <cavery@redhat.com>
|
||||
|
||||
cloud-init service is set to start before NetworkManager service starts,
|
||||
but this does not avoid a race condition between them. NetworkManager
|
||||
starts before cloud-init can write `dns=none' to the file:
|
||||
/etc/NetworkManager/conf.d/99-cloud-init.conf. This way NetworkManager
|
||||
doesn't read the configuration and erases all resolv.conf values upon
|
||||
shutdown. On the next reboot neither cloud-init or NetworkManager will
|
||||
write anything to resolv.conf, leaving it blank.
|
||||
|
||||
This patch introduces a NM reload (try-reload-or-restart) at the end of cloud-init
|
||||
start up so it won't erase resolv.conf upon first shutdown.
|
||||
|
||||
x-downstream-only: yes
|
||||
|
||||
Signed-off-by: Eduardo Otubo otubo@redhat.com
|
||||
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
commit e0b48a936433faea7f56dbc29dda35acf7d375f7
|
||||
Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Thu May 28 08:44:06 2020 +0200
|
||||
|
||||
Enable ssh_deletekeys by default
|
||||
|
||||
RH-Author: Eduardo Otubo <otubo@redhat.com>
|
||||
Message-id: <20200317091705.15715-1-otubo@redhat.com>
|
||||
Patchwork-id: 94365
|
||||
O-Subject: [RHEL-7.9/RHEL-8.2.0 cloud-init PATCH] Enable ssh_deletekeys by default
|
||||
Bugzilla: 1814152
|
||||
RH-Acked-by: Mohammed Gamal <mgamal@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
|
||||
The configuration option ssh_deletekeys will trigger the generation
|
||||
of new ssh keys for every new instance deployed.
|
||||
|
||||
x-downstream-only: yes
|
||||
resolves: rhbz#1814152
|
||||
|
||||
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
---
|
||||
rhel/cloud.cfg | 2 +-
|
||||
rhel/systemd/cloud-init.service | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rhel/cloud.cfg b/rhel/cloud.cfg
|
||||
index 82e8bf62..9ecba215 100644
|
||||
--- a/rhel/cloud.cfg
|
||||
+++ b/rhel/cloud.cfg
|
||||
@@ -6,7 +6,7 @@ ssh_pwauth: 0
|
||||
|
||||
mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']
|
||||
resize_rootfs_tmp: /dev
|
||||
-ssh_deletekeys: 0
|
||||
+ssh_deletekeys: 1
|
||||
ssh_genkeytypes: ~
|
||||
syslog_fix_perms: ~
|
||||
disable_vmware_customization: false
|
||||
diff --git a/rhel/systemd/cloud-init.service b/rhel/systemd/cloud-init.service
|
||||
index d0023a05..0b3d796d 100644
|
||||
--- a/rhel/systemd/cloud-init.service
|
||||
+++ b/rhel/systemd/cloud-init.service
|
||||
@@ -5,6 +5,7 @@ Wants=sshd-keygen.service
|
||||
Wants=sshd.service
|
||||
After=cloud-init-local.service
|
||||
After=NetworkManager.service network.service
|
||||
+After=NetworkManager-wait-online.service
|
||||
Before=network-online.target
|
||||
Before=sshd-keygen.service
|
||||
Before=sshd.service
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,4 +1,4 @@
|
||||
From cb7b35ca10c82c9725c3527e3ec5fb8cb7c61bc0 Mon Sep 17 00:00:00 2001
|
||||
From 40ad855b883050069393b9c00db2a6d222d949db Mon Sep 17 00:00:00 2001
|
||||
From: Eduardo Otubo <otubo@redhat.com>
|
||||
Date: Fri, 7 May 2021 13:36:08 +0200
|
||||
Subject: limit permissions on def_log_file
|
||||
@ -22,17 +22,17 @@ Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||
3 files changed, 6 insertions(+)
|
||||
|
||||
diff --git a/cloudinit/settings.py b/cloudinit/settings.py
|
||||
index 39650a5b..3c2145e9 100644
|
||||
index a780e21e..aa2d6b95 100644
|
||||
--- a/cloudinit/settings.py
|
||||
+++ b/cloudinit/settings.py
|
||||
@@ -49,6 +49,7 @@ CFG_BUILTIN = {
|
||||
"None",
|
||||
],
|
||||
"def_log_file": "/var/log/cloud-init.log",
|
||||
+ "def_log_file_mode": 0o600,
|
||||
"log_cfgs": [],
|
||||
"mount_default_fields": [None, None, "auto", "defaults,nofail", "0", "2"],
|
||||
"ssh_deletekeys": False,
|
||||
'def_log_file': '/var/log/cloud-init.log',
|
||||
+ 'def_log_file_mode': 0o600,
|
||||
'log_cfgs': [],
|
||||
'mount_default_fields': [None, None, 'auto', 'defaults,nofail', '0', '2'],
|
||||
'ssh_deletekeys': False,
|
||||
diff --git a/cloudinit/stages.py b/cloudinit/stages.py
|
||||
index 3f17294b..61db1dbd 100644
|
||||
--- a/cloudinit/stages.py
|
@ -1,4 +1,4 @@
|
||||
From b545a0cbabe8924d048b7172b30e7aad59ed32d5 Mon Sep 17 00:00:00 2001
|
||||
From 00f1f910d8d166ebe2913c12549f212c2d666c11 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Thu, 20 May 2021 08:53:55 +0200
|
||||
Subject: rhel/cloud.cfg: remove ssh_genkeytypes in settings.py and set in
|
||||
@ -35,24 +35,24 @@ Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/cloudinit/settings.py b/cloudinit/settings.py
|
||||
index 3c2145e9..71672e10 100644
|
||||
index aa2d6b95..38a90b70 100644
|
||||
--- a/cloudinit/settings.py
|
||||
+++ b/cloudinit/settings.py
|
||||
@@ -52,8 +52,6 @@ CFG_BUILTIN = {
|
||||
"def_log_file_mode": 0o600,
|
||||
"log_cfgs": [],
|
||||
"mount_default_fields": [None, None, "auto", "defaults,nofail", "0", "2"],
|
||||
- "ssh_deletekeys": False,
|
||||
- "ssh_genkeytypes": [],
|
||||
"syslog_fix_perms": [],
|
||||
"system_info": {
|
||||
"paths": {
|
||||
'def_log_file_mode': 0o600,
|
||||
'log_cfgs': [],
|
||||
'mount_default_fields': [None, None, 'auto', 'defaults,nofail', '0', '2'],
|
||||
- 'ssh_deletekeys': False,
|
||||
- 'ssh_genkeytypes': [],
|
||||
'syslog_fix_perms': [],
|
||||
'system_info': {
|
||||
'paths': {
|
||||
diff --git a/rhel/cloud.cfg b/rhel/cloud.cfg
|
||||
index 9ecba215..cbee197a 100644
|
||||
index 1ec1a6c6..75d5c84b 100644
|
||||
--- a/rhel/cloud.cfg
|
||||
+++ b/rhel/cloud.cfg
|
||||
@@ -7,7 +7,7 @@ ssh_pwauth: 0
|
||||
mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']
|
||||
mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service,_netdev', '0', '2']
|
||||
resize_rootfs_tmp: /dev
|
||||
ssh_deletekeys: 1
|
||||
-ssh_genkeytypes: ~
|
||||
|
@ -1,15 +1,14 @@
|
||||
From 0d93e53fd05c44b62e3456b7580c9de8135e6b5a Mon Sep 17 00:00:00 2001
|
||||
From f0ae77cbf4a5e269da54fc2783a2a836023bbd86 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Mon, 2 May 2022 14:21:24 +0200
|
||||
Subject: [PATCH 1/4] Add native NetworkManager support (#1224)
|
||||
Date: Mon, 2 May 2022 14:42:52 +0200
|
||||
Subject: [PATCH 1/5] Add native NetworkManager support (#1224)
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 57: Add native NetworkManager support (#1224)
|
||||
RH-Commit: [1/2] 56b9ed40840a4930c421c2749e8aa385097bef93
|
||||
RH-Bugzilla: 2059872
|
||||
RH-MergeRequest: 24: Add native NetworkManager support (#1224)
|
||||
RH-Commit: [1/3] 65231ba68460c505646807faf186c704d67678b5 (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2056964
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Eduardo Otubo <otubo@redhat.com>
|
||||
|
||||
commit feda344e6cf9d37b09bc13cf333a717d1654c26c
|
||||
Author: Lubomir Rintel <lkundrak@v3.sk>
|
||||
@ -570,7 +569,7 @@ index c755f04c..7edc34b5 100644
|
||||
"netbsd",
|
||||
"openbsd",
|
||||
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
|
||||
index 362e8d19..c3b0c795 100644
|
||||
index b50035b5..2a45a4fa 100644
|
||||
--- a/cloudinit/net/sysconfig.py
|
||||
+++ b/cloudinit/net/sysconfig.py
|
||||
@@ -5,8 +5,6 @@ import io
|
||||
@ -607,7 +606,7 @@ index 362e8d19..c3b0c795 100644
|
||||
class ConfigMap(object):
|
||||
"""Sysconfig like dictionary object."""
|
||||
|
||||
@@ -1031,8 +1011,6 @@ class Renderer(renderer.Renderer):
|
||||
@@ -1032,8 +1012,6 @@ class Renderer(renderer.Renderer):
|
||||
netrules_content = self._render_persistent_net(network_state)
|
||||
netrules_path = subp.target_path(target, self.netrules_path)
|
||||
util.write_file(netrules_path, netrules_content, file_mode)
|
||||
@ -616,7 +615,7 @@ index 362e8d19..c3b0c795 100644
|
||||
|
||||
sysconfig_path = subp.target_path(target, templates.get("control"))
|
||||
# Distros configuring /etc/sysconfig/network as a file e.g. Centos
|
||||
@@ -1071,14 +1049,9 @@ def _supported_vlan_names(rdev, vid):
|
||||
@@ -1072,14 +1050,9 @@ def _supported_vlan_names(rdev, vid):
|
||||
|
||||
|
||||
def available(target=None):
|
||||
@ -633,7 +632,7 @@ index 362e8d19..c3b0c795 100644
|
||||
expected = ["ifup", "ifdown"]
|
||||
search = ["/sbin", "/usr/sbin"]
|
||||
for p in expected:
|
||||
@@ -1095,10 +1068,4 @@ def available_sysconfig(target=None):
|
||||
@@ -1096,10 +1069,4 @@ def available_sysconfig(target=None):
|
||||
return False
|
||||
|
||||
|
||||
@ -2296,5 +2295,5 @@ index 3c29e2f7..4525c49c 100644
|
||||
|
||||
NETWORKD_BRING_DOWN_CALL_LIST = [
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -1,15 +1,14 @@
|
||||
From 5c99ba05086b1ec83ce7e0c64edb4add4b47d923 Mon Sep 17 00:00:00 2001
|
||||
From 8e599c618ba33f7ed572f752fc9201ca44e41868 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Thu, 19 May 2022 11:14:39 +0200
|
||||
Subject: [PATCH 3/4] Align rhel custom files with upstream (#1431)
|
||||
Date: Wed, 18 May 2022 16:21:45 +0200
|
||||
Subject: [PATCH 4/5] Align rhel custom files with upstream (#1431)
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 65: Align rhel custom files with upstream (#1431)
|
||||
RH-Commit: [1/2] 5d9067175688b1006472a477b0916b81c73d5e07
|
||||
RH-Bugzilla: 2082071
|
||||
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||
RH-Acked-by: Eduardo Otubo <otubo@redhat.com>
|
||||
RH-MergeRequest: 26: Align rhel custom files with upstream (#1431)
|
||||
RH-Commit: [1/2] edac80c4fa3a11d093ee0e7260796566a7eb141e (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2088448
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
commit 9624758f91b61f4711e8d7b5c83075b5d23e0c43
|
||||
Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
@ -253,5 +252,5 @@ index 30fbd1a4..9f95d448 100644
|
||||
}
|
||||
default_user = system_cfg["system_info"]["default_user"]["name"]
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
135
SOURCES/ci-Honor-system-locale-for-RHEL-1355.patch
Normal file
135
SOURCES/ci-Honor-system-locale-for-RHEL-1355.patch
Normal file
@ -0,0 +1,135 @@
|
||||
From 53e3f8ab9008fec8400f96918c2129f7defe6a70 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Fri, 10 Jun 2022 20:51:55 +0200
|
||||
Subject: [PATCH 1/3] Honor system locale for RHEL (#1355)
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 29: Honor system locale for RHEL (#1355)
|
||||
RH-Commit: [1/1] d571126fe6add8dc34a22c869d4e1a07a7373d8d (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2061604
|
||||
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
|
||||
commit 58da7d856274e9ca2b507128d6f186e0e6abfe06
|
||||
Author: Wei Shi <wshi@redhat.com>
|
||||
Date: Wed Mar 30 23:55:30 2022 +0800
|
||||
|
||||
Honor system locale for RHEL (#1355)
|
||||
|
||||
Make sure to use system locale as default on RHEL if locale is not
|
||||
set in cloud-config.
|
||||
|
||||
RHEL has a pre-installed cloud image using C.UTF-8 for system locale
|
||||
just like ubuntu-minimal cloud image, without this patch, locale
|
||||
module will set it to en_US.UTF-8 from ds default value during config
|
||||
stage.
|
||||
|
||||
Authored-by: Wei Shi <shi2wei3@hotmail.com>
|
||||
|
||||
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
---
|
||||
cloudinit/distros/rhel.py | 32 +++++++++++++++++++++++++
|
||||
tests/unittests/distros/test_generic.py | 10 ++++----
|
||||
tools/.github-cla-signers | 1 +
|
||||
3 files changed, 39 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/cloudinit/distros/rhel.py b/cloudinit/distros/rhel.py
|
||||
index 84744ece..320f4ba1 100644
|
||||
--- a/cloudinit/distros/rhel.py
|
||||
+++ b/cloudinit/distros/rhel.py
|
||||
@@ -7,6 +7,7 @@
|
||||
# Author: Joshua Harlow <harlowja@yahoo-inc.com>
|
||||
#
|
||||
# This file is part of cloud-init. See LICENSE file for license information.
|
||||
+import os
|
||||
|
||||
from cloudinit import distros, helpers
|
||||
from cloudinit import log as logging
|
||||
@@ -57,11 +58,25 @@ class Distro(distros.Distro):
|
||||
# should only happen say once per instance...)
|
||||
self._runner = helpers.Runners(paths)
|
||||
self.osfamily = "redhat"
|
||||
+ self.default_locale = "en_US.UTF-8"
|
||||
+ self.system_locale = None
|
||||
cfg["ssh_svcname"] = "sshd"
|
||||
|
||||
def install_packages(self, pkglist):
|
||||
self.package_command("install", pkgs=pkglist)
|
||||
|
||||
+ def get_locale(self):
|
||||
+ """Return the default locale if set, else use system locale"""
|
||||
+
|
||||
+ # read system locale value
|
||||
+ if not self.system_locale:
|
||||
+ self.system_locale = self._read_system_locale()
|
||||
+
|
||||
+ # Return system_locale setting if valid, else use default locale
|
||||
+ return (
|
||||
+ self.system_locale if self.system_locale else self.default_locale
|
||||
+ )
|
||||
+
|
||||
def apply_locale(self, locale, out_fn=None):
|
||||
if self.uses_systemd():
|
||||
if not out_fn:
|
||||
@@ -75,6 +90,23 @@ class Distro(distros.Distro):
|
||||
}
|
||||
rhel_util.update_sysconfig_file(out_fn, locale_cfg)
|
||||
|
||||
+ def _read_system_locale(self, keyname="LANG"):
|
||||
+ """Read system default locale setting, if present"""
|
||||
+ if self.uses_systemd():
|
||||
+ locale_fn = self.systemd_locale_conf_fn
|
||||
+ else:
|
||||
+ locale_fn = self.locale_conf_fn
|
||||
+
|
||||
+ if not locale_fn:
|
||||
+ raise ValueError("Invalid path: %s" % locale_fn)
|
||||
+
|
||||
+ if os.path.exists(locale_fn):
|
||||
+ (_exists, contents) = rhel_util.read_sysconfig_file(locale_fn)
|
||||
+ if keyname in contents:
|
||||
+ return contents[keyname]
|
||||
+ else:
|
||||
+ return None
|
||||
+
|
||||
def _write_hostname(self, hostname, filename):
|
||||
# systemd will never update previous-hostname for us, so
|
||||
# we need to do it ourselves
|
||||
diff --git a/tests/unittests/distros/test_generic.py b/tests/unittests/distros/test_generic.py
|
||||
index 93c5395c..fedc7300 100644
|
||||
--- a/tests/unittests/distros/test_generic.py
|
||||
+++ b/tests/unittests/distros/test_generic.py
|
||||
@@ -187,12 +187,14 @@ class TestGenericDistro(helpers.FilesystemMockingTestCase):
|
||||
locale = d.get_locale()
|
||||
self.assertEqual("C.UTF-8", locale)
|
||||
|
||||
- def test_get_locale_rhel(self):
|
||||
- """Test rhel distro returns NotImplementedError exception"""
|
||||
+ @mock.patch("cloudinit.distros.rhel.Distro._read_system_locale")
|
||||
+ def test_get_locale_rhel(self, m_locale):
|
||||
+ """Test rhel distro returns locale set to C.UTF-8"""
|
||||
+ m_locale.return_value = "C.UTF-8"
|
||||
cls = distros.fetch("rhel")
|
||||
d = cls("rhel", {}, None)
|
||||
- with self.assertRaises(NotImplementedError):
|
||||
- d.get_locale()
|
||||
+ locale = d.get_locale()
|
||||
+ self.assertEqual("C.UTF-8", locale)
|
||||
|
||||
def test_expire_passwd_uses_chpasswd(self):
|
||||
"""Test ubuntu.expire_passwd uses the passwd command."""
|
||||
diff --git a/tools/.github-cla-signers b/tools/.github-cla-signers
|
||||
index 9f71ea0c..9eb2ae38 100644
|
||||
--- a/tools/.github-cla-signers
|
||||
+++ b/tools/.github-cla-signers
|
||||
@@ -70,6 +70,7 @@ renanrodrigo
|
||||
rhansen
|
||||
riedel
|
||||
sarahwzadara
|
||||
+shi2wei3
|
||||
slingamn
|
||||
slyon
|
||||
smoser
|
||||
--
|
||||
2.35.1
|
||||
|
@ -1,15 +1,14 @@
|
||||
From d43f0d93386f123892451d923c2b3c6fe7130c39 Mon Sep 17 00:00:00 2001
|
||||
From 0ae221fe8f29555370520d05f6558eb75fe3cd42 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Thu, 19 May 2022 11:38:22 +0200
|
||||
Subject: [PATCH 4/4] Remove rhel specific files
|
||||
Date: Thu, 5 May 2022 11:31:33 +0200
|
||||
Subject: [PATCH 5/5] Remove rhel specific files
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 65: Align rhel custom files with upstream (#1431)
|
||||
RH-Commit: [2/2] 5e31f0bcb500682e7746ccbd2e628c2ef339d6c6
|
||||
RH-Bugzilla: 2082071
|
||||
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||
RH-Acked-by: Eduardo Otubo <otubo@redhat.com>
|
||||
RH-MergeRequest: 26: Align rhel custom files with upstream (#1431)
|
||||
RH-Commit: [2/2] 0b9687ebab4f4039d5bbe05c00806ec7923e898d (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2088448
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
|
||||
Remove all files in rhel/ directory and related commands that copy
|
||||
and replace them with the generated ones.
|
||||
@ -26,7 +25,6 @@ X-downstream-only: yes
|
||||
|
||||
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
---
|
||||
redhat/cloud-init.spec.template | 21 ++------
|
||||
rhel/README.rhel | 5 --
|
||||
rhel/cloud-init-tmpfiles.conf | 1 -
|
||||
rhel/cloud.cfg | 69 ---------------------------
|
||||
@ -48,7 +46,6 @@ Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
delete mode 100644 rhel/systemd/cloud-init.service
|
||||
delete mode 100644 rhel/systemd/cloud-init.target
|
||||
|
||||
|
||||
diff --git a/rhel/README.rhel b/rhel/README.rhel
|
||||
deleted file mode 100644
|
||||
index aa29630d..00000000
|
||||
@ -69,7 +66,7 @@ index 0c6d2a3b..00000000
|
||||
-d /run/cloud-init 0700 root root - -
|
||||
diff --git a/rhel/cloud.cfg b/rhel/cloud.cfg
|
||||
deleted file mode 100644
|
||||
index cbee197a..00000000
|
||||
index 75d5c84b..00000000
|
||||
--- a/rhel/cloud.cfg
|
||||
+++ /dev/null
|
||||
@@ -1,69 +0,0 @@
|
||||
@ -79,7 +76,7 @@ index cbee197a..00000000
|
||||
-disable_root: 1
|
||||
-ssh_pwauth: 0
|
||||
-
|
||||
-mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']
|
||||
-mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service,_netdev', '0', '2']
|
||||
-resize_rootfs_tmp: /dev
|
||||
-ssh_deletekeys: 1
|
||||
-ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519']
|
||||
@ -369,5 +366,5 @@ index 3c377eaa..a9132d2c 100755
|
||||
"console_scripts": [
|
||||
"cloud-init = cloudinit.cmd.main:main",
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -1,18 +1,19 @@
|
||||
From f1836e78d20ef34b05b6aba002fc10a97eceb454 Mon Sep 17 00:00:00 2001
|
||||
From 35bd50e66f636a3f3923b6980bdee3ba33f7457d Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Mon, 8 Aug 2022 10:08:50 +0200
|
||||
Subject: [PATCH 1/2] Revert "Add native NetworkManager support (#1224)"
|
||||
Date: Mon, 8 Aug 2022 10:01:16 +0200
|
||||
Subject: [PATCH 1/3] Revert "Add native NetworkManager support (#1224)"
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 81: Revert "Use Network-Manager and Netplan as default renderers for RHEL and Fedora (#1465)"
|
||||
RH-Commit: [1/2] 5b3e51502a89c2dcfbc97dc08a86b792454fedd3
|
||||
RH-Bugzilla: 2107464 2110066 2117526 2104393 2098624
|
||||
RH-MergeRequest: 31: Revert "Revert "Setting highest autoconnect priority for network-scripts""
|
||||
RH-Commit: [1/3] 38dcbc9ec19412601e96305fcac09642c89d73b8 (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2107463 2104389 2117532 2098501
|
||||
RH-Acked-by: Eduardo Otubo <otubo@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||
|
||||
NM is not yet stable, so we don't want to support it for now.
|
||||
This reverts commit 0d93e53fd05c44b62e3456b7580c9de8135e6b5a.
|
||||
NM is still not stable, revert it for now.
|
||||
|
||||
This reverts commit 588deeb5b3f87ffe40d9ecaf6da3639176f806c4.
|
||||
|
||||
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
---
|
||||
@ -540,7 +541,7 @@ index 7edc34b5..c755f04c 100644
|
||||
"netbsd",
|
||||
"openbsd",
|
||||
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
|
||||
index c3b0c795..362e8d19 100644
|
||||
index dc401d78..d8c53312 100644
|
||||
--- a/cloudinit/net/sysconfig.py
|
||||
+++ b/cloudinit/net/sysconfig.py
|
||||
@@ -5,6 +5,8 @@ import io
|
||||
@ -2262,5 +2263,5 @@ index 4525c49c..3c29e2f7 100644
|
||||
|
||||
NETWORKD_BRING_DOWN_CALL_LIST = [
|
||||
--
|
||||
2.27.0
|
||||
2.31.1
|
||||
|
||||
|
@ -0,0 +1,37 @@
|
||||
From c843f5cf7152846da3422185a6ad344dd47604e6 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Mon, 8 Aug 2022 10:02:48 +0200
|
||||
Subject: [PATCH 3/3] Revert "Revert "Setting highest autoconnect priority for
|
||||
network-scripts""
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 31: Revert "Revert "Setting highest autoconnect priority for network-scripts""
|
||||
RH-Commit: [3/3] 09b83fb559675a2fcd4fc5394b251f034b92c1bc (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2107463 2104389 2117532 2098501
|
||||
RH-Acked-by: Eduardo Otubo <otubo@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||
|
||||
Reverting NM means we also need to restore this patch
|
||||
This reverts commit 0eba5c6194017ef493a735cb24757c57d8af7b59.
|
||||
|
||||
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
---
|
||||
cloudinit/net/sysconfig.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
|
||||
index d8c53312..b50035b5 100644
|
||||
--- a/cloudinit/net/sysconfig.py
|
||||
+++ b/cloudinit/net/sysconfig.py
|
||||
@@ -337,6 +337,7 @@ class Renderer(renderer.Renderer):
|
||||
"ONBOOT": True,
|
||||
"USERCTL": False,
|
||||
"BOOTPROTO": "none",
|
||||
+ "AUTOCONNECT_PRIORITY": 999
|
||||
},
|
||||
"suse": {"BOOTPROTO": "static", "STARTMODE": "auto"},
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
@ -0,0 +1,37 @@
|
||||
From e5e2ba9e21ac40ec7b8fe1c1dcf501eaeb9f66bf Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Mon, 2 May 2022 14:43:17 +0200
|
||||
Subject: [PATCH 3/5] Revert "Setting highest autoconnect priority for
|
||||
network-scripts"
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 24: Add native NetworkManager support (#1224)
|
||||
RH-Commit: [3/3] 06c87581fc42b6827ad9df600f3dd76d51ced0d0 (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2056964
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
|
||||
This reverts commit 0ef0c86350aa5f800f8393a432f431e2818c8938,
|
||||
since it was a temporary downstream-only patch while we waited for
|
||||
"Add native NetworkManager support (#1224)".
|
||||
|
||||
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
---
|
||||
cloudinit/net/sysconfig.py | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
|
||||
index 2a45a4fa..dc401d78 100644
|
||||
--- a/cloudinit/net/sysconfig.py
|
||||
+++ b/cloudinit/net/sysconfig.py
|
||||
@@ -317,7 +317,6 @@ class Renderer(renderer.Renderer):
|
||||
"ONBOOT": True,
|
||||
"USERCTL": False,
|
||||
"BOOTPROTO": "none",
|
||||
- "AUTOCONNECT_PRIORITY": 999
|
||||
},
|
||||
"suse": {"BOOTPROTO": "static", "STARTMODE": "auto"},
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,19 +1,19 @@
|
||||
From 02e7b89c157f8c3243f0d91cf5652cf27db44b72 Mon Sep 17 00:00:00 2001
|
||||
From c063021168dee7937281decd8f9b601f49a7d0f3 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Mon, 8 Aug 2022 10:10:26 +0200
|
||||
Subject: [PATCH 2/2] Revert "Use Network-Manager and Netplan as default
|
||||
Date: Mon, 8 Aug 2022 10:02:17 +0200
|
||||
Subject: [PATCH 2/3] Revert "Use Network-Manager and Netplan as default
|
||||
renderers for RHEL and Fedora (#1465)"
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 81: Revert "Use Network-Manager and Netplan as default renderers for RHEL and Fedora (#1465)"
|
||||
RH-Commit: [2/2] 746b2e33356376e250b799261031676174e8ccc9
|
||||
RH-Bugzilla: 2107464 2110066 2117526 2104393 2098624
|
||||
RH-MergeRequest: 31: Revert "Revert "Setting highest autoconnect priority for network-scripts""
|
||||
RH-Commit: [2/3] bd662b768dc694c748cab9e36bc5ff0eb009e128 (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2107463 2104389 2117532 2098501
|
||||
RH-Acked-by: Eduardo Otubo <otubo@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||
|
||||
As NM is reverted, remove also documentation and any trace of it.
|
||||
This reverts commit 13ded463a6a0b1b0bf0dffc0a997f006dd25c4f3.
|
||||
This reverts commit bbd9f47a7988e15a2823b065cd539d7c9562d77e.
|
||||
|
||||
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
---
|
||||
@ -71,5 +71,5 @@ index f503caab..c461a3fe 100644
|
||||
|
||||
Network Configuration Tools
|
||||
--
|
||||
2.27.0
|
||||
2.31.1
|
||||
|
||||
|
@ -1,12 +1,13 @@
|
||||
From fbec3008305845072a787f46008bbb82d89dec53 Mon Sep 17 00:00:00 2001
|
||||
From f5e9ed6c698eddd30e8e97d6f71070e7b75b1381 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Mon, 30 May 2022 16:46:41 +0200
|
||||
Subject: [PATCH] Support EC2 tags in instance metadata (#1309)
|
||||
Date: Mon, 30 May 2022 16:45:08 +0200
|
||||
Subject: [PATCH 1/2] Support EC2 tags in instance metadata (#1309)
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 70: Support EC2 tags in instance metadata (#1309)
|
||||
RH-Commit: [1/1] 2497547016173a4c6e7d3c900f80de390d445c44
|
||||
RH-Bugzilla: 2082686
|
||||
RH-MergeRequest: 27: Support EC2 tags in instance metadata (#1309)
|
||||
RH-Commit: [1/1] f6a03e1619316959d3cd1806981b0bebf12bd3b0 (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2091640
|
||||
RH-Acked-by: Eduardo Otubo <otubo@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||
|
||||
@ -160,5 +161,5 @@ index ac157a2f..9f71ea0c 100644
|
||||
eslerm
|
||||
esposem
|
||||
--
|
||||
2.27.0
|
||||
2.31.1
|
||||
|
||||
|
@ -1,16 +1,15 @@
|
||||
From 13ded463a6a0b1b0bf0dffc0a997f006dd25c4f3 Mon Sep 17 00:00:00 2001
|
||||
From 840d6f7ca86fe9822c613f0f2c21f136271ce3b6 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Thu, 19 May 2022 15:51:27 +0200
|
||||
Subject: [PATCH 2/4] Use Network-Manager and Netplan as default renderers for
|
||||
Date: Thu, 19 May 2022 15:44:03 +0200
|
||||
Subject: [PATCH 2/5] Use Network-Manager and Netplan as default renderers for
|
||||
RHEL and Fedora (#1465)
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 57: Add native NetworkManager support (#1224)
|
||||
RH-Commit: [2/2] f2f977564bea496b0d76c0cef242959d03c2c73e
|
||||
RH-Bugzilla: 2059872
|
||||
RH-MergeRequest: 24: Add native NetworkManager support (#1224)
|
||||
RH-Commit: [2/3] e33081b15a8558967bb480ed659116e7e0872840 (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2056964
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
|
||||
RH-Acked-by: Eduardo Otubo <otubo@redhat.com>
|
||||
|
||||
commit 7703aa98b89c8daba207c28a0422268ead10019a
|
||||
Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
@ -106,5 +105,5 @@ index c461a3fe..f503caab 100644
|
||||
|
||||
Network Configuration Tools
|
||||
--
|
||||
2.35.3
|
||||
2.31.1
|
||||
|
||||
|
@ -0,0 +1,801 @@
|
||||
From d1790e6462e509e3cd87fc449df84fbd02ca1d89 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Thu, 2 Jun 2022 16:03:43 +0200
|
||||
Subject: [PATCH 2/2] cc_set_hostname: do not write "localhost" when no
|
||||
hostname is given (#1453)
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 28: cc_set_hostname: do not write "localhost" when no hostname is given (#1453)
|
||||
RH-Commit: [1/1] 4370e9149371dc89be82cb05d30d33e4d2638cec (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 1980403
|
||||
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
||||
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||
|
||||
commit 74e43496f353db52e15d96abeb54ad63baac5be9
|
||||
Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Tue May 31 16:03:44 2022 +0200
|
||||
|
||||
cc_set_hostname: do not write "localhost" when no hostname is given (#1453)
|
||||
|
||||
Systemd used to sometimes ignore localhost in /etc/hostnames, and many programs
|
||||
like cloud-init used this as a workaround to set a default hostname.
|
||||
|
||||
From https://github.com/systemd/systemd/commit/d39079fcaa05e23540d2b1f0270fa31c22a7e9f1:
|
||||
|
||||
We would sometimes ignore localhost-style names in /etc/hostname. That is
|
||||
brittle. If the user configured some hostname, it's most likely because they
|
||||
want to use that as the hostname. If they don't want to use such a hostname,
|
||||
they should just not create the config. Everything becomes simples if we just
|
||||
use the configured hostname as-is.
|
||||
|
||||
This behaviour seems to have been a workaround for Anaconda installer and other
|
||||
tools writing out /etc/hostname with the default of "localhost.localdomain".
|
||||
Anaconda PR to stop doing that: rhinstaller/anaconda#3040.
|
||||
That might have been useful as a work-around for other programs misbehaving if
|
||||
/etc/hostname was not present, but nowadays it's not useful because systemd
|
||||
mostly controls the hostname and it is perfectly happy without that file.
|
||||
|
||||
Apart from making things simpler, this allows users to set a hostname like
|
||||
"localhost" and have it honoured, if such a whim strikes them.
|
||||
|
||||
As also suggested by the Anaconda PR, we need to stop writing default "localhost"
|
||||
in /etc/hostnames, and let the right service (networking, user) do that if they
|
||||
need to. Otherwise, "localhost" will permanently stay as hostname and will
|
||||
prevent other tools like NetworkManager from setting the right one.
|
||||
|
||||
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
|
||||
RHBZ: 1980403
|
||||
|
||||
Conflicts:
|
||||
cloudinit/config/cc_update_etc_hosts.py
|
||||
cloudinit/sources/DataSourceCloudSigma.py
|
||||
cloudinit/util.py
|
||||
tests/unittests/test_util.py
|
||||
Additional imports and/or conditionals that are not present in this version
|
||||
|
||||
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
---
|
||||
cloudinit/cmd/main.py | 2 +-
|
||||
cloudinit/config/cc_apt_configure.py | 2 +-
|
||||
cloudinit/config/cc_debug.py | 2 +-
|
||||
cloudinit/config/cc_phone_home.py | 4 +-
|
||||
cloudinit/config/cc_set_hostname.py | 6 ++-
|
||||
cloudinit/config/cc_spacewalk.py | 2 +-
|
||||
cloudinit/config/cc_update_etc_hosts.py | 4 +-
|
||||
cloudinit/config/cc_update_hostname.py | 7 +++-
|
||||
cloudinit/sources/DataSourceAliYun.py | 8 +++-
|
||||
cloudinit/sources/DataSourceCloudSigma.py | 6 ++-
|
||||
cloudinit/sources/DataSourceGCE.py | 5 ++-
|
||||
cloudinit/sources/DataSourceScaleway.py | 3 +-
|
||||
cloudinit/sources/__init__.py | 28 ++++++++++---
|
||||
cloudinit/util.py | 29 +++++++++++---
|
||||
.../unittests/config/test_cc_set_hostname.py | 40 ++++++++++++++++++-
|
||||
tests/unittests/sources/test_aliyun.py | 2 +-
|
||||
tests/unittests/sources/test_cloudsigma.py | 8 ++--
|
||||
tests/unittests/sources/test_digitalocean.py | 2 +-
|
||||
tests/unittests/sources/test_gce.py | 4 +-
|
||||
tests/unittests/sources/test_hetzner.py | 2 +-
|
||||
tests/unittests/sources/test_init.py | 29 +++++++++-----
|
||||
tests/unittests/sources/test_scaleway.py | 2 +-
|
||||
tests/unittests/sources/test_vmware.py | 4 +-
|
||||
tests/unittests/test_util.py | 17 ++++----
|
||||
tests/unittests/util.py | 3 +-
|
||||
25 files changed, 166 insertions(+), 55 deletions(-)
|
||||
|
||||
diff --git a/cloudinit/cmd/main.py b/cloudinit/cmd/main.py
|
||||
index c9be41b3..816d31aa 100644
|
||||
--- a/cloudinit/cmd/main.py
|
||||
+++ b/cloudinit/cmd/main.py
|
||||
@@ -813,7 +813,7 @@ def _maybe_set_hostname(init, stage, retry_stage):
|
||||
@param retry_stage: String represented logs upon error setting hostname.
|
||||
"""
|
||||
cloud = init.cloudify()
|
||||
- (hostname, _fqdn) = util.get_hostname_fqdn(
|
||||
+ (hostname, _fqdn, _) = util.get_hostname_fqdn(
|
||||
init.cfg, cloud, metadata_only=True
|
||||
)
|
||||
if hostname: # meta-data or user-data hostname content
|
||||
diff --git a/cloudinit/config/cc_apt_configure.py b/cloudinit/config/cc_apt_configure.py
|
||||
index c558311a..0e6466ec 100644
|
||||
--- a/cloudinit/config/cc_apt_configure.py
|
||||
+++ b/cloudinit/config/cc_apt_configure.py
|
||||
@@ -753,7 +753,7 @@ def search_for_mirror_dns(configured, mirrortype, cfg, cloud):
|
||||
raise ValueError("unknown mirror type")
|
||||
|
||||
# if we have a fqdn, then search its domain portion first
|
||||
- (_, fqdn) = util.get_hostname_fqdn(cfg, cloud)
|
||||
+ fqdn = util.get_hostname_fqdn(cfg, cloud).fqdn
|
||||
mydom = ".".join(fqdn.split(".")[1:])
|
||||
if mydom:
|
||||
doms.append(".%s" % mydom)
|
||||
diff --git a/cloudinit/config/cc_debug.py b/cloudinit/config/cc_debug.py
|
||||
index c51818c3..a00f2823 100644
|
||||
--- a/cloudinit/config/cc_debug.py
|
||||
+++ b/cloudinit/config/cc_debug.py
|
||||
@@ -95,7 +95,7 @@ def handle(name, cfg, cloud, log, args):
|
||||
"Datasource: %s\n" % (type_utils.obj_name(cloud.datasource))
|
||||
)
|
||||
to_print.write("Distro: %s\n" % (type_utils.obj_name(cloud.distro)))
|
||||
- to_print.write("Hostname: %s\n" % (cloud.get_hostname(True)))
|
||||
+ to_print.write("Hostname: %s\n" % (cloud.get_hostname(True).hostname))
|
||||
to_print.write("Instance ID: %s\n" % (cloud.get_instance_id()))
|
||||
to_print.write("Locale: %s\n" % (cloud.get_locale()))
|
||||
to_print.write("Launch IDX: %s\n" % (cloud.launch_index))
|
||||
diff --git a/cloudinit/config/cc_phone_home.py b/cloudinit/config/cc_phone_home.py
|
||||
index a0e1da78..1cf270aa 100644
|
||||
--- a/cloudinit/config/cc_phone_home.py
|
||||
+++ b/cloudinit/config/cc_phone_home.py
|
||||
@@ -119,8 +119,8 @@ def handle(name, cfg, cloud, log, args):
|
||||
|
||||
all_keys = {}
|
||||
all_keys["instance_id"] = cloud.get_instance_id()
|
||||
- all_keys["hostname"] = cloud.get_hostname()
|
||||
- all_keys["fqdn"] = cloud.get_hostname(fqdn=True)
|
||||
+ all_keys["hostname"] = cloud.get_hostname().hostname
|
||||
+ all_keys["fqdn"] = cloud.get_hostname(fqdn=True).hostname
|
||||
|
||||
pubkeys = {
|
||||
"pub_key_dsa": "/etc/ssh/ssh_host_dsa_key.pub",
|
||||
diff --git a/cloudinit/config/cc_set_hostname.py b/cloudinit/config/cc_set_hostname.py
|
||||
index eb0ca328..2674fa20 100644
|
||||
--- a/cloudinit/config/cc_set_hostname.py
|
||||
+++ b/cloudinit/config/cc_set_hostname.py
|
||||
@@ -76,7 +76,7 @@ def handle(name, cfg, cloud, log, _args):
|
||||
if hostname_fqdn is not None:
|
||||
cloud.distro.set_option("prefer_fqdn_over_hostname", hostname_fqdn)
|
||||
|
||||
- (hostname, fqdn) = util.get_hostname_fqdn(cfg, cloud)
|
||||
+ (hostname, fqdn, is_default) = util.get_hostname_fqdn(cfg, cloud)
|
||||
# Check for previous successful invocation of set-hostname
|
||||
|
||||
# set-hostname artifact file accounts for both hostname and fqdn
|
||||
@@ -94,6 +94,10 @@ def handle(name, cfg, cloud, log, _args):
|
||||
if not hostname_changed:
|
||||
log.debug("No hostname changes. Skipping set-hostname")
|
||||
return
|
||||
+ if is_default and hostname == "localhost":
|
||||
+ # https://github.com/systemd/systemd/commit/d39079fcaa05e23540d2b1f0270fa31c22a7e9f1
|
||||
+ log.debug("Hostname is localhost. Let other services handle this.")
|
||||
+ return
|
||||
log.debug("Setting the hostname to %s (%s)", fqdn, hostname)
|
||||
try:
|
||||
cloud.distro.set_hostname(hostname, fqdn)
|
||||
diff --git a/cloudinit/config/cc_spacewalk.py b/cloudinit/config/cc_spacewalk.py
|
||||
index 3fa6c388..419c8b32 100644
|
||||
--- a/cloudinit/config/cc_spacewalk.py
|
||||
+++ b/cloudinit/config/cc_spacewalk.py
|
||||
@@ -89,7 +89,7 @@ def handle(name, cfg, cloud, log, _args):
|
||||
if not is_registered():
|
||||
do_register(
|
||||
spacewalk_server,
|
||||
- cloud.datasource.get_hostname(fqdn=True),
|
||||
+ cloud.datasource.get_hostname(fqdn=True).hostname,
|
||||
proxy=cfg.get("proxy"),
|
||||
log=log,
|
||||
activation_key=cfg.get("activation_key"),
|
||||
diff --git a/cloudinit/config/cc_update_etc_hosts.py b/cloudinit/config/cc_update_etc_hosts.py
|
||||
index f0aa9b0f..d2ee6f45 100644
|
||||
--- a/cloudinit/config/cc_update_etc_hosts.py
|
||||
+++ b/cloudinit/config/cc_update_etc_hosts.py
|
||||
@@ -62,7 +62,7 @@ def handle(name, cfg, cloud, log, _args):
|
||||
hosts_fn = cloud.distro.hosts_fn
|
||||
|
||||
if util.translate_bool(manage_hosts, addons=["template"]):
|
||||
- (hostname, fqdn) = util.get_hostname_fqdn(cfg, cloud)
|
||||
+ (hostname, fqdn, _) = util.get_hostname_fqdn(cfg, cloud)
|
||||
if not hostname:
|
||||
log.warning(
|
||||
"Option 'manage_etc_hosts' was set, but no hostname was found"
|
||||
@@ -84,7 +84,7 @@ def handle(name, cfg, cloud, log, _args):
|
||||
)
|
||||
|
||||
elif manage_hosts == "localhost":
|
||||
- (hostname, fqdn) = util.get_hostname_fqdn(cfg, cloud)
|
||||
+ (hostname, fqdn, _) = util.get_hostname_fqdn(cfg, cloud)
|
||||
if not hostname:
|
||||
log.warning(
|
||||
"Option 'manage_etc_hosts' was set, but no hostname was found"
|
||||
diff --git a/cloudinit/config/cc_update_hostname.py b/cloudinit/config/cc_update_hostname.py
|
||||
index 09f6f6da..e2046020 100644
|
||||
--- a/cloudinit/config/cc_update_hostname.py
|
||||
+++ b/cloudinit/config/cc_update_hostname.py
|
||||
@@ -56,7 +56,12 @@ def handle(name, cfg, cloud, log, _args):
|
||||
if hostname_fqdn is not None:
|
||||
cloud.distro.set_option("prefer_fqdn_over_hostname", hostname_fqdn)
|
||||
|
||||
- (hostname, fqdn) = util.get_hostname_fqdn(cfg, cloud)
|
||||
+ (hostname, fqdn, is_default) = util.get_hostname_fqdn(cfg, cloud)
|
||||
+ if is_default and hostname == "localhost":
|
||||
+ # https://github.com/systemd/systemd/commit/d39079fcaa05e23540d2b1f0270fa31c22a7e9f1
|
||||
+ log.debug("Hostname is localhost. Let other services handle this.")
|
||||
+ return
|
||||
+
|
||||
try:
|
||||
prev_fn = os.path.join(cloud.get_cpath("data"), "previous-hostname")
|
||||
log.debug("Updating hostname to %s (%s)", fqdn, hostname)
|
||||
diff --git a/cloudinit/sources/DataSourceAliYun.py b/cloudinit/sources/DataSourceAliYun.py
|
||||
index 37f512e3..b9390aca 100644
|
||||
--- a/cloudinit/sources/DataSourceAliYun.py
|
||||
+++ b/cloudinit/sources/DataSourceAliYun.py
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
from cloudinit import dmi, sources
|
||||
from cloudinit.sources import DataSourceEc2 as EC2
|
||||
+from cloudinit.sources import DataSourceHostname
|
||||
|
||||
ALIYUN_PRODUCT = "Alibaba Cloud ECS"
|
||||
|
||||
@@ -16,7 +17,12 @@ class DataSourceAliYun(EC2.DataSourceEc2):
|
||||
extended_metadata_versions = []
|
||||
|
||||
def get_hostname(self, fqdn=False, resolve_ip=False, metadata_only=False):
|
||||
- return self.metadata.get("hostname", "localhost.localdomain")
|
||||
+ hostname = self.metadata.get("hostname")
|
||||
+ is_default = False
|
||||
+ if hostname is None:
|
||||
+ hostname = "localhost.localdomain"
|
||||
+ is_default = True
|
||||
+ return DataSourceHostname(hostname, is_default)
|
||||
|
||||
def get_public_ssh_keys(self):
|
||||
return parse_public_keys(self.metadata.get("public-keys", {}))
|
||||
diff --git a/cloudinit/sources/DataSourceCloudSigma.py b/cloudinit/sources/DataSourceCloudSigma.py
|
||||
index de71c3e9..91ebb084 100644
|
||||
--- a/cloudinit/sources/DataSourceCloudSigma.py
|
||||
+++ b/cloudinit/sources/DataSourceCloudSigma.py
|
||||
@@ -11,6 +11,7 @@ from cloudinit import dmi
|
||||
from cloudinit import log as logging
|
||||
from cloudinit import sources
|
||||
from cloudinit.cs_utils import SERIAL_PORT, Cepko
|
||||
+from cloudinit.sources import DataSourceHostname
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
@@ -90,9 +91,10 @@ class DataSourceCloudSigma(sources.DataSource):
|
||||
the first part from uuid is being used.
|
||||
"""
|
||||
if re.match(r"^[A-Za-z0-9 -_\.]+$", self.metadata["name"]):
|
||||
- return self.metadata["name"][:61]
|
||||
+ ret = self.metadata["name"][:61]
|
||||
else:
|
||||
- return self.metadata["uuid"].split("-")[0]
|
||||
+ ret = self.metadata["uuid"].split("-")[0]
|
||||
+ return DataSourceHostname(ret, False)
|
||||
|
||||
def get_public_ssh_keys(self):
|
||||
return [self.ssh_public_key]
|
||||
diff --git a/cloudinit/sources/DataSourceGCE.py b/cloudinit/sources/DataSourceGCE.py
|
||||
index c470bea8..f7ec6b52 100644
|
||||
--- a/cloudinit/sources/DataSourceGCE.py
|
||||
+++ b/cloudinit/sources/DataSourceGCE.py
|
||||
@@ -12,6 +12,7 @@ from cloudinit import log as logging
|
||||
from cloudinit import sources, url_helper, util
|
||||
from cloudinit.distros import ug_util
|
||||
from cloudinit.net.dhcp import EphemeralDHCPv4
|
||||
+from cloudinit.sources import DataSourceHostname
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
@@ -122,7 +123,9 @@ class DataSourceGCE(sources.DataSource):
|
||||
|
||||
def get_hostname(self, fqdn=False, resolve_ip=False, metadata_only=False):
|
||||
# GCE has long FDQN's and has asked for short hostnames.
|
||||
- return self.metadata["local-hostname"].split(".")[0]
|
||||
+ return DataSourceHostname(
|
||||
+ self.metadata["local-hostname"].split(".")[0], False
|
||||
+ )
|
||||
|
||||
@property
|
||||
def availability_zone(self):
|
||||
diff --git a/cloudinit/sources/DataSourceScaleway.py b/cloudinit/sources/DataSourceScaleway.py
|
||||
index 8e5dd82c..8f08dc6d 100644
|
||||
--- a/cloudinit/sources/DataSourceScaleway.py
|
||||
+++ b/cloudinit/sources/DataSourceScaleway.py
|
||||
@@ -30,6 +30,7 @@ from cloudinit import log as logging
|
||||
from cloudinit import net, sources, url_helper, util
|
||||
from cloudinit.event import EventScope, EventType
|
||||
from cloudinit.net.dhcp import EphemeralDHCPv4, NoDHCPLeaseError
|
||||
+from cloudinit.sources import DataSourceHostname
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
@@ -282,7 +283,7 @@ class DataSourceScaleway(sources.DataSource):
|
||||
return ssh_keys
|
||||
|
||||
def get_hostname(self, fqdn=False, resolve_ip=False, metadata_only=False):
|
||||
- return self.metadata["hostname"]
|
||||
+ return DataSourceHostname(self.metadata["hostname"], False)
|
||||
|
||||
@property
|
||||
def availability_zone(self):
|
||||
diff --git a/cloudinit/sources/__init__.py b/cloudinit/sources/__init__.py
|
||||
index 88028cfa..77b24fd7 100644
|
||||
--- a/cloudinit/sources/__init__.py
|
||||
+++ b/cloudinit/sources/__init__.py
|
||||
@@ -148,6 +148,11 @@ URLParams = namedtuple(
|
||||
],
|
||||
)
|
||||
|
||||
+DataSourceHostname = namedtuple(
|
||||
+ "DataSourceHostname",
|
||||
+ ["hostname", "is_default"],
|
||||
+)
|
||||
+
|
||||
|
||||
class DataSource(CloudInitPickleMixin, metaclass=abc.ABCMeta):
|
||||
|
||||
@@ -291,7 +296,7 @@ class DataSource(CloudInitPickleMixin, metaclass=abc.ABCMeta):
|
||||
|
||||
def _get_standardized_metadata(self, instance_data):
|
||||
"""Return a dictionary of standardized metadata keys."""
|
||||
- local_hostname = self.get_hostname()
|
||||
+ local_hostname = self.get_hostname().hostname
|
||||
instance_id = self.get_instance_id()
|
||||
availability_zone = self.availability_zone
|
||||
# In the event of upgrade from existing cloudinit, pickled datasource
|
||||
@@ -697,22 +702,33 @@ class DataSource(CloudInitPickleMixin, metaclass=abc.ABCMeta):
|
||||
@param metadata_only: Boolean, set True to avoid looking up hostname
|
||||
if meta-data doesn't have local-hostname present.
|
||||
|
||||
- @return: hostname or qualified hostname. Optionally return None when
|
||||
+ @return: a DataSourceHostname namedtuple
|
||||
+ <hostname or qualified hostname>, <is_default> (str, bool).
|
||||
+ is_default is a bool and
|
||||
+ it's true only if hostname is localhost and was
|
||||
+ returned by util.get_hostname() as a default.
|
||||
+ This is used to differentiate with a user-defined
|
||||
+ localhost hostname.
|
||||
+ Optionally return (None, False) when
|
||||
metadata_only is True and local-hostname data is not available.
|
||||
"""
|
||||
defdomain = "localdomain"
|
||||
defhost = "localhost"
|
||||
domain = defdomain
|
||||
+ is_default = False
|
||||
|
||||
if not self.metadata or not self.metadata.get("local-hostname"):
|
||||
if metadata_only:
|
||||
- return None
|
||||
+ return DataSourceHostname(None, is_default)
|
||||
# this is somewhat questionable really.
|
||||
# the cloud datasource was asked for a hostname
|
||||
# and didn't have one. raising error might be more appropriate
|
||||
# but instead, basically look up the existing hostname
|
||||
toks = []
|
||||
hostname = util.get_hostname()
|
||||
+ if hostname == "localhost":
|
||||
+ # default hostname provided by socket.gethostname()
|
||||
+ is_default = True
|
||||
hosts_fqdn = util.get_fqdn_from_hosts(hostname)
|
||||
if hosts_fqdn and hosts_fqdn.find(".") > 0:
|
||||
toks = str(hosts_fqdn).split(".")
|
||||
@@ -745,9 +761,9 @@ class DataSource(CloudInitPickleMixin, metaclass=abc.ABCMeta):
|
||||
hostname = toks[0]
|
||||
|
||||
if fqdn and domain != defdomain:
|
||||
- return "%s.%s" % (hostname, domain)
|
||||
- else:
|
||||
- return hostname
|
||||
+ hostname = "%s.%s" % (hostname, domain)
|
||||
+
|
||||
+ return DataSourceHostname(hostname, is_default)
|
||||
|
||||
def get_package_mirror_info(self):
|
||||
return self.distro.get_package_mirror_info(data_source=self)
|
||||
diff --git a/cloudinit/util.py b/cloudinit/util.py
|
||||
index 569fc215..4cb21551 100644
|
||||
--- a/cloudinit/util.py
|
||||
+++ b/cloudinit/util.py
|
||||
@@ -32,7 +32,8 @@ import subprocess
|
||||
import sys
|
||||
import time
|
||||
from base64 import b64decode, b64encode
|
||||
-from errno import ENOENT
|
||||
+from collections import deque, namedtuple
|
||||
+from errno import EACCES, ENOENT
|
||||
from functools import lru_cache
|
||||
from typing import List
|
||||
from urllib import parse
|
||||
@@ -1072,6 +1073,12 @@ def dos2unix(contents):
|
||||
return contents.replace("\r\n", "\n")
|
||||
|
||||
|
||||
+HostnameFqdnInfo = namedtuple(
|
||||
+ "HostnameFqdnInfo",
|
||||
+ ["hostname", "fqdn", "is_default"],
|
||||
+)
|
||||
+
|
||||
+
|
||||
def get_hostname_fqdn(cfg, cloud, metadata_only=False):
|
||||
"""Get hostname and fqdn from config if present and fallback to cloud.
|
||||
|
||||
@@ -1079,9 +1086,17 @@ def get_hostname_fqdn(cfg, cloud, metadata_only=False):
|
||||
@param cloud: Cloud instance from init.cloudify().
|
||||
@param metadata_only: Boolean, set True to only query cloud meta-data,
|
||||
returning None if not present in meta-data.
|
||||
- @return: a Tuple of strings <hostname>, <fqdn>. Values can be none when
|
||||
+ @return: a namedtuple of
|
||||
+ <hostname>, <fqdn>, <is_default> (str, str, bool).
|
||||
+ Values can be none when
|
||||
metadata_only is True and no cfg or metadata provides hostname info.
|
||||
+ is_default is a bool and
|
||||
+ it's true only if hostname is localhost and was
|
||||
+ returned by util.get_hostname() as a default.
|
||||
+ This is used to differentiate with a user-defined
|
||||
+ localhost hostname.
|
||||
"""
|
||||
+ is_default = False
|
||||
if "fqdn" in cfg:
|
||||
# user specified a fqdn. Default hostname then is based off that
|
||||
fqdn = cfg["fqdn"]
|
||||
@@ -1095,12 +1110,16 @@ def get_hostname_fqdn(cfg, cloud, metadata_only=False):
|
||||
else:
|
||||
# no fqdn set, get fqdn from cloud.
|
||||
# get hostname from cfg if available otherwise cloud
|
||||
- fqdn = cloud.get_hostname(fqdn=True, metadata_only=metadata_only)
|
||||
+ fqdn = cloud.get_hostname(
|
||||
+ fqdn=True, metadata_only=metadata_only
|
||||
+ ).hostname
|
||||
if "hostname" in cfg:
|
||||
hostname = cfg["hostname"]
|
||||
else:
|
||||
- hostname = cloud.get_hostname(metadata_only=metadata_only)
|
||||
- return (hostname, fqdn)
|
||||
+ hostname, is_default = cloud.get_hostname(
|
||||
+ metadata_only=metadata_only
|
||||
+ )
|
||||
+ return HostnameFqdnInfo(hostname, fqdn, is_default)
|
||||
|
||||
|
||||
def get_fqdn_from_hosts(hostname, filename="/etc/hosts"):
|
||||
diff --git a/tests/unittests/config/test_cc_set_hostname.py b/tests/unittests/config/test_cc_set_hostname.py
|
||||
index fd994c4e..3d1d86ee 100644
|
||||
--- a/tests/unittests/config/test_cc_set_hostname.py
|
||||
+++ b/tests/unittests/config/test_cc_set_hostname.py
|
||||
@@ -11,6 +11,7 @@ from configobj import ConfigObj
|
||||
|
||||
from cloudinit import cloud, distros, helpers, util
|
||||
from cloudinit.config import cc_set_hostname
|
||||
+from cloudinit.sources import DataSourceNone
|
||||
from tests.unittests import helpers as t_help
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
@@ -153,7 +154,8 @@ class TestHostname(t_help.FilesystemMockingTestCase):
|
||||
)
|
||||
] not in m_subp.call_args_list
|
||||
|
||||
- def test_multiple_calls_skips_unchanged_hostname(self):
|
||||
+ @mock.patch("cloudinit.util.get_hostname", return_value="localhost")
|
||||
+ def test_multiple_calls_skips_unchanged_hostname(self, get_hostname):
|
||||
"""Only new hostname or fqdn values will generate a hostname call."""
|
||||
distro = self._fetch_distro("debian")
|
||||
paths = helpers.Paths({"cloud_dir": self.tmp})
|
||||
@@ -182,6 +184,42 @@ class TestHostname(t_help.FilesystemMockingTestCase):
|
||||
self.logs.getvalue(),
|
||||
)
|
||||
|
||||
+ @mock.patch("cloudinit.util.get_hostname", return_value="localhost")
|
||||
+ def test_localhost_default_hostname(self, get_hostname):
|
||||
+ """
|
||||
+ No hostname set. Default value returned is localhost,
|
||||
+ but we shouldn't write it in /etc/hostname
|
||||
+ """
|
||||
+ distro = self._fetch_distro("debian")
|
||||
+ paths = helpers.Paths({"cloud_dir": self.tmp})
|
||||
+ ds = DataSourceNone.DataSourceNone({}, None, paths)
|
||||
+ cc = cloud.Cloud(ds, paths, {}, distro, None)
|
||||
+ self.patchUtils(self.tmp)
|
||||
+
|
||||
+ util.write_file("/etc/hostname", "")
|
||||
+ cc_set_hostname.handle("cc_set_hostname", {}, cc, LOG, [])
|
||||
+ contents = util.load_file("/etc/hostname")
|
||||
+ self.assertEqual("", contents.strip())
|
||||
+
|
||||
+ @mock.patch("cloudinit.util.get_hostname", return_value="localhost")
|
||||
+ def test_localhost_user_given_hostname(self, get_hostname):
|
||||
+ """
|
||||
+ User set hostname is localhost. We should write it in /etc/hostname
|
||||
+ """
|
||||
+ distro = self._fetch_distro("debian")
|
||||
+ paths = helpers.Paths({"cloud_dir": self.tmp})
|
||||
+ ds = DataSourceNone.DataSourceNone({}, None, paths)
|
||||
+ cc = cloud.Cloud(ds, paths, {}, distro, None)
|
||||
+ self.patchUtils(self.tmp)
|
||||
+
|
||||
+ # user-provided localhost should not be ignored
|
||||
+ util.write_file("/etc/hostname", "")
|
||||
+ cc_set_hostname.handle(
|
||||
+ "cc_set_hostname", {"hostname": "localhost"}, cc, LOG, []
|
||||
+ )
|
||||
+ contents = util.load_file("/etc/hostname")
|
||||
+ self.assertEqual("localhost", contents.strip())
|
||||
+
|
||||
def test_error_on_distro_set_hostname_errors(self):
|
||||
"""Raise SetHostnameError on exceptions from distro.set_hostname."""
|
||||
distro = self._fetch_distro("debian")
|
||||
diff --git a/tests/unittests/sources/test_aliyun.py b/tests/unittests/sources/test_aliyun.py
|
||||
index 8a61d5ee..e628dc02 100644
|
||||
--- a/tests/unittests/sources/test_aliyun.py
|
||||
+++ b/tests/unittests/sources/test_aliyun.py
|
||||
@@ -149,7 +149,7 @@ class TestAliYunDatasource(test_helpers.HttprettyTestCase):
|
||||
|
||||
def _test_host_name(self):
|
||||
self.assertEqual(
|
||||
- self.default_metadata["hostname"], self.ds.get_hostname()
|
||||
+ self.default_metadata["hostname"], self.ds.get_hostname().hostname
|
||||
)
|
||||
|
||||
@mock.patch("cloudinit.sources.DataSourceAliYun._is_aliyun")
|
||||
diff --git a/tests/unittests/sources/test_cloudsigma.py b/tests/unittests/sources/test_cloudsigma.py
|
||||
index a2f26245..3dca7ea8 100644
|
||||
--- a/tests/unittests/sources/test_cloudsigma.py
|
||||
+++ b/tests/unittests/sources/test_cloudsigma.py
|
||||
@@ -58,12 +58,14 @@ class DataSourceCloudSigmaTest(test_helpers.CiTestCase):
|
||||
|
||||
def test_get_hostname(self):
|
||||
self.datasource.get_data()
|
||||
- self.assertEqual("test_server", self.datasource.get_hostname())
|
||||
+ self.assertEqual(
|
||||
+ "test_server", self.datasource.get_hostname().hostname
|
||||
+ )
|
||||
self.datasource.metadata["name"] = ""
|
||||
- self.assertEqual("65b2fb23", self.datasource.get_hostname())
|
||||
+ self.assertEqual("65b2fb23", self.datasource.get_hostname().hostname)
|
||||
utf8_hostname = b"\xd1\x82\xd0\xb5\xd1\x81\xd1\x82".decode("utf-8")
|
||||
self.datasource.metadata["name"] = utf8_hostname
|
||||
- self.assertEqual("65b2fb23", self.datasource.get_hostname())
|
||||
+ self.assertEqual("65b2fb23", self.datasource.get_hostname().hostname)
|
||||
|
||||
def test_get_public_ssh_keys(self):
|
||||
self.datasource.get_data()
|
||||
diff --git a/tests/unittests/sources/test_digitalocean.py b/tests/unittests/sources/test_digitalocean.py
|
||||
index f3e6224e..47e46c66 100644
|
||||
--- a/tests/unittests/sources/test_digitalocean.py
|
||||
+++ b/tests/unittests/sources/test_digitalocean.py
|
||||
@@ -178,7 +178,7 @@ class TestDataSourceDigitalOcean(CiTestCase):
|
||||
self.assertEqual(DO_META.get("vendor_data"), ds.get_vendordata_raw())
|
||||
self.assertEqual(DO_META.get("region"), ds.availability_zone)
|
||||
self.assertEqual(DO_META.get("droplet_id"), ds.get_instance_id())
|
||||
- self.assertEqual(DO_META.get("hostname"), ds.get_hostname())
|
||||
+ self.assertEqual(DO_META.get("hostname"), ds.get_hostname().hostname)
|
||||
|
||||
# Single key
|
||||
self.assertEqual(
|
||||
diff --git a/tests/unittests/sources/test_gce.py b/tests/unittests/sources/test_gce.py
|
||||
index e030931b..1ce0c6ec 100644
|
||||
--- a/tests/unittests/sources/test_gce.py
|
||||
+++ b/tests/unittests/sources/test_gce.py
|
||||
@@ -126,7 +126,7 @@ class TestDataSourceGCE(test_helpers.HttprettyTestCase):
|
||||
self.ds.get_data()
|
||||
|
||||
shostname = GCE_META.get("instance/hostname").split(".")[0]
|
||||
- self.assertEqual(shostname, self.ds.get_hostname())
|
||||
+ self.assertEqual(shostname, self.ds.get_hostname().hostname)
|
||||
|
||||
self.assertEqual(
|
||||
GCE_META.get("instance/id"), self.ds.get_instance_id()
|
||||
@@ -147,7 +147,7 @@ class TestDataSourceGCE(test_helpers.HttprettyTestCase):
|
||||
)
|
||||
|
||||
shostname = GCE_META_PARTIAL.get("instance/hostname").split(".")[0]
|
||||
- self.assertEqual(shostname, self.ds.get_hostname())
|
||||
+ self.assertEqual(shostname, self.ds.get_hostname().hostname)
|
||||
|
||||
def test_userdata_no_encoding(self):
|
||||
"""check that user-data is read."""
|
||||
diff --git a/tests/unittests/sources/test_hetzner.py b/tests/unittests/sources/test_hetzner.py
|
||||
index f80ed45f..193b7e42 100644
|
||||
--- a/tests/unittests/sources/test_hetzner.py
|
||||
+++ b/tests/unittests/sources/test_hetzner.py
|
||||
@@ -116,7 +116,7 @@ class TestDataSourceHetzner(CiTestCase):
|
||||
|
||||
self.assertTrue(m_readmd.called)
|
||||
|
||||
- self.assertEqual(METADATA.get("hostname"), ds.get_hostname())
|
||||
+ self.assertEqual(METADATA.get("hostname"), ds.get_hostname().hostname)
|
||||
|
||||
self.assertEqual(METADATA.get("public-keys"), ds.get_public_ssh_keys())
|
||||
|
||||
diff --git a/tests/unittests/sources/test_init.py b/tests/unittests/sources/test_init.py
|
||||
index ce8fc970..79fc9c5b 100644
|
||||
--- a/tests/unittests/sources/test_init.py
|
||||
+++ b/tests/unittests/sources/test_init.py
|
||||
@@ -272,9 +272,11 @@ class TestDataSource(CiTestCase):
|
||||
self.assertEqual(
|
||||
"test-subclass-hostname", datasource.metadata["local-hostname"]
|
||||
)
|
||||
- self.assertEqual("test-subclass-hostname", datasource.get_hostname())
|
||||
+ self.assertEqual(
|
||||
+ "test-subclass-hostname", datasource.get_hostname().hostname
|
||||
+ )
|
||||
datasource.metadata["local-hostname"] = "hostname.my.domain.com"
|
||||
- self.assertEqual("hostname", datasource.get_hostname())
|
||||
+ self.assertEqual("hostname", datasource.get_hostname().hostname)
|
||||
|
||||
def test_get_hostname_with_fqdn_returns_local_hostname_with_domain(self):
|
||||
"""Datasource.get_hostname with fqdn set gets qualified hostname."""
|
||||
@@ -285,7 +287,8 @@ class TestDataSource(CiTestCase):
|
||||
self.assertTrue(datasource.get_data())
|
||||
datasource.metadata["local-hostname"] = "hostname.my.domain.com"
|
||||
self.assertEqual(
|
||||
- "hostname.my.domain.com", datasource.get_hostname(fqdn=True)
|
||||
+ "hostname.my.domain.com",
|
||||
+ datasource.get_hostname(fqdn=True).hostname,
|
||||
)
|
||||
|
||||
def test_get_hostname_without_metadata_uses_system_hostname(self):
|
||||
@@ -300,10 +303,12 @@ class TestDataSource(CiTestCase):
|
||||
with mock.patch(mock_fqdn) as m_fqdn:
|
||||
m_gethost.return_value = "systemhostname.domain.com"
|
||||
m_fqdn.return_value = None # No maching fqdn in /etc/hosts
|
||||
- self.assertEqual("systemhostname", datasource.get_hostname())
|
||||
+ self.assertEqual(
|
||||
+ "systemhostname", datasource.get_hostname().hostname
|
||||
+ )
|
||||
self.assertEqual(
|
||||
"systemhostname.domain.com",
|
||||
- datasource.get_hostname(fqdn=True),
|
||||
+ datasource.get_hostname(fqdn=True).hostname,
|
||||
)
|
||||
|
||||
def test_get_hostname_without_metadata_returns_none(self):
|
||||
@@ -316,9 +321,13 @@ class TestDataSource(CiTestCase):
|
||||
mock_fqdn = "cloudinit.sources.util.get_fqdn_from_hosts"
|
||||
with mock.patch("cloudinit.sources.util.get_hostname") as m_gethost:
|
||||
with mock.patch(mock_fqdn) as m_fqdn:
|
||||
- self.assertIsNone(datasource.get_hostname(metadata_only=True))
|
||||
self.assertIsNone(
|
||||
- datasource.get_hostname(fqdn=True, metadata_only=True)
|
||||
+ datasource.get_hostname(metadata_only=True).hostname
|
||||
+ )
|
||||
+ self.assertIsNone(
|
||||
+ datasource.get_hostname(
|
||||
+ fqdn=True, metadata_only=True
|
||||
+ ).hostname
|
||||
)
|
||||
self.assertEqual([], m_gethost.call_args_list)
|
||||
self.assertEqual([], m_fqdn.call_args_list)
|
||||
@@ -335,10 +344,12 @@ class TestDataSource(CiTestCase):
|
||||
with mock.patch(mock_fqdn) as m_fqdn:
|
||||
m_gethost.return_value = "systemhostname.domain.com"
|
||||
m_fqdn.return_value = "fqdnhostname.domain.com"
|
||||
- self.assertEqual("fqdnhostname", datasource.get_hostname())
|
||||
+ self.assertEqual(
|
||||
+ "fqdnhostname", datasource.get_hostname().hostname
|
||||
+ )
|
||||
self.assertEqual(
|
||||
"fqdnhostname.domain.com",
|
||||
- datasource.get_hostname(fqdn=True),
|
||||
+ datasource.get_hostname(fqdn=True).hostname,
|
||||
)
|
||||
|
||||
def test_get_data_does_not_write_instance_data_on_failure(self):
|
||||
diff --git a/tests/unittests/sources/test_scaleway.py b/tests/unittests/sources/test_scaleway.py
|
||||
index d7e8b969..56735dd0 100644
|
||||
--- a/tests/unittests/sources/test_scaleway.py
|
||||
+++ b/tests/unittests/sources/test_scaleway.py
|
||||
@@ -236,7 +236,7 @@ class TestDataSourceScaleway(HttprettyTestCase):
|
||||
].sort(),
|
||||
)
|
||||
self.assertEqual(
|
||||
- self.datasource.get_hostname(),
|
||||
+ self.datasource.get_hostname().hostname,
|
||||
MetadataResponses.FAKE_METADATA["hostname"],
|
||||
)
|
||||
self.assertEqual(
|
||||
diff --git a/tests/unittests/sources/test_vmware.py b/tests/unittests/sources/test_vmware.py
|
||||
index dd331349..753bb774 100644
|
||||
--- a/tests/unittests/sources/test_vmware.py
|
||||
+++ b/tests/unittests/sources/test_vmware.py
|
||||
@@ -368,7 +368,9 @@ class TestDataSourceVMwareGuestInfo_InvalidPlatform(FilesystemMockingTestCase):
|
||||
|
||||
def assert_metadata(test_obj, ds, metadata):
|
||||
test_obj.assertEqual(metadata.get("instance-id"), ds.get_instance_id())
|
||||
- test_obj.assertEqual(metadata.get("local-hostname"), ds.get_hostname())
|
||||
+ test_obj.assertEqual(
|
||||
+ metadata.get("local-hostname"), ds.get_hostname().hostname
|
||||
+ )
|
||||
|
||||
expected_public_keys = metadata.get("public_keys")
|
||||
if not isinstance(expected_public_keys, list):
|
||||
diff --git a/tests/unittests/test_util.py b/tests/unittests/test_util.py
|
||||
index 3765511b..528b7f36 100644
|
||||
--- a/tests/unittests/test_util.py
|
||||
+++ b/tests/unittests/test_util.py
|
||||
@@ -19,6 +19,7 @@ import pytest
|
||||
import yaml
|
||||
|
||||
from cloudinit import importer, subp, util
|
||||
+from cloudinit.sources import DataSourceHostname
|
||||
from tests.unittests import helpers
|
||||
from tests.unittests.helpers import CiTestCase
|
||||
|
||||
@@ -331,8 +332,8 @@ class FakeCloud(object):
|
||||
myargs["metadata_only"] = metadata_only
|
||||
self.calls.append(myargs)
|
||||
if fqdn:
|
||||
- return self.fqdn
|
||||
- return self.hostname
|
||||
+ return DataSourceHostname(self.fqdn, False)
|
||||
+ return DataSourceHostname(self.hostname, False)
|
||||
|
||||
|
||||
class TestUtil(CiTestCase):
|
||||
@@ -420,7 +421,7 @@ class TestShellify(CiTestCase):
|
||||
class TestGetHostnameFqdn(CiTestCase):
|
||||
def test_get_hostname_fqdn_from_only_cfg_fqdn(self):
|
||||
"""When cfg only has the fqdn key, derive hostname and fqdn from it."""
|
||||
- hostname, fqdn = util.get_hostname_fqdn(
|
||||
+ hostname, fqdn, _ = util.get_hostname_fqdn(
|
||||
cfg={"fqdn": "myhost.domain.com"}, cloud=None
|
||||
)
|
||||
self.assertEqual("myhost", hostname)
|
||||
@@ -428,7 +429,7 @@ class TestGetHostnameFqdn(CiTestCase):
|
||||
|
||||
def test_get_hostname_fqdn_from_cfg_fqdn_and_hostname(self):
|
||||
"""When cfg has both fqdn and hostname keys, return them."""
|
||||
- hostname, fqdn = util.get_hostname_fqdn(
|
||||
+ hostname, fqdn, _ = util.get_hostname_fqdn(
|
||||
cfg={"fqdn": "myhost.domain.com", "hostname": "other"}, cloud=None
|
||||
)
|
||||
self.assertEqual("other", hostname)
|
||||
@@ -436,7 +437,7 @@ class TestGetHostnameFqdn(CiTestCase):
|
||||
|
||||
def test_get_hostname_fqdn_from_cfg_hostname_with_domain(self):
|
||||
"""When cfg has only hostname key which represents a fqdn, use that."""
|
||||
- hostname, fqdn = util.get_hostname_fqdn(
|
||||
+ hostname, fqdn, _ = util.get_hostname_fqdn(
|
||||
cfg={"hostname": "myhost.domain.com"}, cloud=None
|
||||
)
|
||||
self.assertEqual("myhost", hostname)
|
||||
@@ -445,7 +446,7 @@ class TestGetHostnameFqdn(CiTestCase):
|
||||
def test_get_hostname_fqdn_from_cfg_hostname_without_domain(self):
|
||||
"""When cfg has a hostname without a '.' query cloud.get_hostname."""
|
||||
mycloud = FakeCloud("cloudhost", "cloudhost.mycloud.com")
|
||||
- hostname, fqdn = util.get_hostname_fqdn(
|
||||
+ hostname, fqdn, _ = util.get_hostname_fqdn(
|
||||
cfg={"hostname": "myhost"}, cloud=mycloud
|
||||
)
|
||||
self.assertEqual("myhost", hostname)
|
||||
@@ -457,7 +458,7 @@ class TestGetHostnameFqdn(CiTestCase):
|
||||
def test_get_hostname_fqdn_from_without_fqdn_or_hostname(self):
|
||||
"""When cfg has neither hostname nor fqdn cloud.get_hostname."""
|
||||
mycloud = FakeCloud("cloudhost", "cloudhost.mycloud.com")
|
||||
- hostname, fqdn = util.get_hostname_fqdn(cfg={}, cloud=mycloud)
|
||||
+ hostname, fqdn, _ = util.get_hostname_fqdn(cfg={}, cloud=mycloud)
|
||||
self.assertEqual("cloudhost", hostname)
|
||||
self.assertEqual("cloudhost.mycloud.com", fqdn)
|
||||
self.assertEqual(
|
||||
@@ -468,7 +469,7 @@ class TestGetHostnameFqdn(CiTestCase):
|
||||
def test_get_hostname_fqdn_from_passes_metadata_only_to_cloud(self):
|
||||
"""Calls to cloud.get_hostname pass the metadata_only parameter."""
|
||||
mycloud = FakeCloud("cloudhost", "cloudhost.mycloud.com")
|
||||
- _hn, _fqdn = util.get_hostname_fqdn(
|
||||
+ _hn, _fqdn, _def_hostname = util.get_hostname_fqdn(
|
||||
cfg={}, cloud=mycloud, metadata_only=True
|
||||
)
|
||||
self.assertEqual(
|
||||
diff --git a/tests/unittests/util.py b/tests/unittests/util.py
|
||||
index 79a6e1d0..6fb39506 100644
|
||||
--- a/tests/unittests/util.py
|
||||
+++ b/tests/unittests/util.py
|
||||
@@ -1,5 +1,6 @@
|
||||
# This file is part of cloud-init. See LICENSE file for license information.
|
||||
from cloudinit import cloud, distros, helpers
|
||||
+from cloudinit.sources import DataSourceHostname
|
||||
from cloudinit.sources.DataSourceNone import DataSourceNone
|
||||
|
||||
|
||||
@@ -37,7 +38,7 @@ def abstract_to_concrete(abclass):
|
||||
|
||||
class DataSourceTesting(DataSourceNone):
|
||||
def get_hostname(self, fqdn=False, resolve_ip=False, metadata_only=False):
|
||||
- return "hostname"
|
||||
+ return DataSourceHostname("hostname", False)
|
||||
|
||||
def persist_instance_data(self):
|
||||
return True
|
||||
--
|
||||
2.31.1
|
||||
|
@ -1,14 +1,14 @@
|
||||
From ed7060ac1d5003f70fc3da4d6006a1a958a47b04 Mon Sep 17 00:00:00 2001
|
||||
From f771d841dbdef8fbb1c1a3d1b8d51ff101354502 Mon Sep 17 00:00:00 2001
|
||||
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
Date: Mon, 20 Jun 2022 10:31:14 +0200
|
||||
Subject: [PATCH 2/2] setup.py: adjust udev/rules default path (#1513)
|
||||
Date: Fri, 17 Jun 2022 09:41:23 +0200
|
||||
Subject: [PATCH 3/3] setup.py: adjust udev/rules default path (#1513)
|
||||
|
||||
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
RH-MergeRequest: 80: setup.py: adjust udev/rules default path (#1513)
|
||||
RH-Commit: [2/2] 2cb64b004acbe1b6a30f943b0da51d2d1f2f0d50 (eesposit/cloud-init)
|
||||
RH-Bugzilla: 2096269
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
RH-MergeRequest: 30: setup.py: adjust udev/rules default path (#1513)
|
||||
RH-Commit: [2/2] b71362acefa15587b2c72e8981708065d2fcfa07 (eesposit/cloud-init-centos-)
|
||||
RH-Bugzilla: 2096270
|
||||
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
|
||||
commit 70715125f3af118ae242770e61064c24f41e9a02
|
||||
Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||
@ -53,5 +53,5 @@ index a9132d2c..fdf27cd7 100755
|
||||
ETC + "/systemd/system/sshd-keygen@.service.d/",
|
||||
["systemd/disable-sshd-keygen-if-cloud-init-active.conf"],
|
||||
--
|
||||
2.31.1
|
||||
2.35.1
|
||||
|
||||
|
@ -1,50 +1,56 @@
|
||||
%{!?license: %global license %%doc}
|
||||
|
||||
# The only reason we are archful is because dmidecode is ExclusiveArch
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1067089
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: cloud-init
|
||||
Version: 22.1
|
||||
Release: 5%{?dist}
|
||||
Summary: Cloud instance init scripts
|
||||
|
||||
Group: System Environment/Base
|
||||
License: GPLv3
|
||||
License: ASL 2.0 or GPLv3
|
||||
URL: http://launchpad.net/cloud-init
|
||||
Source0: https://launchpad.net/cloud-init/trunk/%{version}/+download/%{name}-%{version}.tar.gz
|
||||
Source1: cloud-init-tmpfiles.conf
|
||||
|
||||
Patch0001: 0001-Add-initial-redhat-setup.patch
|
||||
Patch0001: 0001-Add-initial-redhat-changes.patch
|
||||
Patch0002: 0002-Do-not-write-NM_CONTROLLED-no-in-generated-interface.patch
|
||||
Patch0003: 0003-limit-permissions-on-def_log_file.patch
|
||||
Patch0004: 0004-include-NOZEROCONF-yes-in-etc-sysconfig-network.patch
|
||||
Patch0005: 0005-Remove-race-condition-between-cloud-init-and-Network.patch
|
||||
Patch0003: 0003-Adding-_netdev-to-the-default-mount-configuration.patch
|
||||
Patch0004: 0004-Setting-highest-autoconnect-priority-for-network-scr.patch
|
||||
Patch0005: 0005-limit-permissions-on-def_log_file.patch
|
||||
Patch0006: 0006-rhel-cloud.cfg-remove-ssh_genkeytypes-in-settings.py.patch
|
||||
# For bz#2059872 - [RHEL-8]Rebase cloud-init from Fedora so it can configure networking using NM keyfiles
|
||||
# For bz#2056964 - [RHEL-9]Rebase cloud-init from Fedora so it can configure networking using NM keyfiles
|
||||
Patch7: ci-Add-native-NetworkManager-support-1224.patch
|
||||
# For bz#2059872 - [RHEL-8]Rebase cloud-init from Fedora so it can configure networking using NM keyfiles
|
||||
# For bz#2056964 - [RHEL-9]Rebase cloud-init from Fedora so it can configure networking using NM keyfiles
|
||||
Patch8: ci-Use-Network-Manager-and-Netplan-as-default-renderers.patch
|
||||
# For bz#2082071 - Align cloud.cfg file and systemd with cloud-init upstream .tmpl files
|
||||
Patch9: ci-Align-rhel-custom-files-with-upstream-1431.patch
|
||||
# For bz#2082071 - Align cloud.cfg file and systemd with cloud-init upstream .tmpl files
|
||||
Patch10: ci-Remove-rhel-specific-files.patch
|
||||
# For bz#2082686 - [cloud][init] Add support for reading tags from instance metadata
|
||||
Patch11: ci-Support-EC2-tags-in-instance-metadata-1309.patch
|
||||
# For bz#2096269 - Adjust udev/rules default path[RHEL-8]
|
||||
Patch12: ci-setup.py-adjust-udev-rules-default-path-1513.patch
|
||||
# For bz#2107464 - [RHEL-8.7] Cannot run sysconfig when changing the priority of network renderers
|
||||
# For bz#2110066 - DNS integration with OpenStack/cloud-init/NetworkManager is not working
|
||||
# For bz#2117526 - [RHEL8.7] Revert patch of configuring networking by NM keyfiles
|
||||
# For bz#2104393 - [RHEL-8.7]Failed to config static IP and IPv6 according to VMware Customization Config File
|
||||
# For bz#2098624 - [RHEL-8.7] IPv6 not workable when cloud-init configure network using NM keyfiles
|
||||
Patch13: ci-Revert-Add-native-NetworkManager-support-1224.patch
|
||||
# For bz#2107464 - [RHEL-8.7] Cannot run sysconfig when changing the priority of network renderers
|
||||
# For bz#2110066 - DNS integration with OpenStack/cloud-init/NetworkManager is not working
|
||||
# For bz#2117526 - [RHEL8.7] Revert patch of configuring networking by NM keyfiles
|
||||
# For bz#2104393 - [RHEL-8.7]Failed to config static IP and IPv6 according to VMware Customization Config File
|
||||
# For bz#2098624 - [RHEL-8.7] IPv6 not workable when cloud-init configure network using NM keyfiles
|
||||
Patch14: ci-Revert-Use-Network-Manager-and-Netplan-as-default-re.patch
|
||||
# For bz#2056964 - [RHEL-9]Rebase cloud-init from Fedora so it can configure networking using NM keyfiles
|
||||
Patch9: ci-Revert-Setting-highest-autoconnect-priority-for-netw.patch
|
||||
# For bz#2088448 - Align cloud.cfg file and systemd with cloud-init upstream .tmpl files
|
||||
Patch10: ci-Align-rhel-custom-files-with-upstream-1431.patch
|
||||
# For bz#2088448 - Align cloud.cfg file and systemd with cloud-init upstream .tmpl files
|
||||
Patch11: ci-Remove-rhel-specific-files.patch
|
||||
# For bz#2091640 - [cloud][init] Add support for reading tags from instance metadata
|
||||
Patch12: ci-Support-EC2-tags-in-instance-metadata-1309.patch
|
||||
# For bz#1980403 - [RHV] RHEL 9 VM with cloud-init without hostname set doesn't result in the FQDN as hostname
|
||||
Patch13: ci-cc_set_hostname-do-not-write-localhost-when-no-hostn.patch
|
||||
# For bz#2061604 - cloud-config will change /etc/locale.conf back to en_US.UTF-8 on rhel-guest-image-9.0
|
||||
Patch14: ci-Honor-system-locale-for-RHEL-1355.patch
|
||||
# For bz#2096270 - Adjust udev/rules default path[rhel-9]
|
||||
Patch15: ci-setup.py-adjust-udev-rules-default-path-1513.patch
|
||||
# For bz#2107463 - [RHEL-9.1] Cannot run sysconfig when changing the priority of network renderers
|
||||
# For bz#2104389 - [RHEL-9.1]Failed to config static IP and IPv6 according to VMware Customization Config File
|
||||
# For bz#2117532 - [RHEL9.1] Revert patch of configuring networking by NM keyfiles
|
||||
# For bz#2098501 - [RHEL-9.1] IPv6 not workable when cloud-init configure network using NM keyfiles
|
||||
Patch16: ci-Revert-Add-native-NetworkManager-support-1224.patch
|
||||
# For bz#2107463 - [RHEL-9.1] Cannot run sysconfig when changing the priority of network renderers
|
||||
# For bz#2104389 - [RHEL-9.1]Failed to config static IP and IPv6 according to VMware Customization Config File
|
||||
# For bz#2117532 - [RHEL9.1] Revert patch of configuring networking by NM keyfiles
|
||||
# For bz#2098501 - [RHEL-9.1] IPv6 not workable when cloud-init configure network using NM keyfiles
|
||||
Patch17: ci-Revert-Use-Network-Manager-and-Netplan-as-default-re.patch
|
||||
# For bz#2107463 - [RHEL-9.1] Cannot run sysconfig when changing the priority of network renderers
|
||||
# For bz#2104389 - [RHEL-9.1]Failed to config static IP and IPv6 according to VMware Customization Config File
|
||||
# For bz#2117532 - [RHEL9.1] Revert patch of configuring networking by NM keyfiles
|
||||
# For bz#2098501 - [RHEL-9.1] IPv6 not workable when cloud-init configure network using NM keyfiles
|
||||
Patch18: ci-Revert-Revert-Setting-highest-autoconnect-priority-f.patch
|
||||
|
||||
# AlmaLinux patches
|
||||
Patch100: 0001-Fix-and-Improve-AlmaLinux-support.patch
|
||||
|
||||
# Source-git patches
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
@ -56,20 +62,18 @@ BuildRequires: systemd
|
||||
# For tests
|
||||
BuildRequires: iproute
|
||||
BuildRequires: python3-configobj
|
||||
# # https://bugzilla.redhat.com/show_bug.cgi?id=1417029
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1695953
|
||||
BuildRequires: python3-distro
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1417029
|
||||
BuildRequires: python3-httpretty >= 0.8.14-2
|
||||
BuildRequires: python3-jinja2
|
||||
BuildRequires: python3-jsonpatch
|
||||
BuildRequires: python3-jsonschema
|
||||
BuildRequires: python3-mock
|
||||
BuildRequires: python3-nose
|
||||
BuildRequires: python3-oauthlib
|
||||
BuildRequires: python3-prettytable
|
||||
BuildRequires: python3-pyserial
|
||||
BuildRequires: python3-PyYAML
|
||||
BuildRequires: python3-requests
|
||||
BuildRequires: python3-six
|
||||
BuildRequires: python3-unittest2
|
||||
# dnf is needed to make cc_ntp unit tests work
|
||||
# https://bugs.launchpad.net/cloud-init/+bug/1721573
|
||||
BuildRequires: /usr/bin/dnf
|
||||
@ -80,9 +84,10 @@ Requires: libselinux-python3
|
||||
Requires: policycoreutils-python3
|
||||
Requires: procps
|
||||
Requires: python3-configobj
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1695953
|
||||
Requires: python3-distro
|
||||
Requires: python3-jinja2
|
||||
Requires: python3-jsonpatch
|
||||
Requires: python3-jsonschema
|
||||
Requires: python3-oauthlib
|
||||
Requires: python3-prettytable
|
||||
Requires: python3-pyserial
|
||||
@ -93,7 +98,7 @@ Requires: shadow-utils
|
||||
Requires: util-linux
|
||||
Requires: xfsprogs
|
||||
Requires: dhcp-client
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2039697
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2032524
|
||||
Requires: gdisk
|
||||
Requires: openssl
|
||||
Requires: python3-netifaces
|
||||
@ -120,6 +125,10 @@ sed -i -e 's|#!/usr/bin/env python|#!/usr/bin/env python3|' \
|
||||
%install
|
||||
%py3_install --
|
||||
|
||||
%if 0%{?fedora}
|
||||
python3 tools/render-cloudcfg --variant fedora > $RPM_BUILD_ROOT/%{_sysconfdir}/cloud/cloud.cfg
|
||||
%endif
|
||||
|
||||
sed -i "s,@@PACKAGED_VERSION@@,%{version}-%{release}," $RPM_BUILD_ROOT/%{python3_sitelib}/cloudinit/version.py
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/var/lib/cloud
|
||||
@ -136,9 +145,9 @@ cp -p tools/21-cloudinit.conf $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudi
|
||||
mv $RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/hook-network-manager \
|
||||
$RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/cloud-init-azure-hook
|
||||
|
||||
[ ! -d $RPM_BUILD_ROOT/usr/lib/systemd/system-generators ] && mkdir -p $RPM_BUILD_ROOT/usr/lib/systemd/system-generators
|
||||
python3 tools/render-cloudcfg --variant rhel systemd/cloud-init-generator.tmpl > $RPM_BUILD_ROOT/usr/lib/systemd/system-generators/cloud-init-generator
|
||||
chmod 755 $RPM_BUILD_ROOT/usr/lib/systemd/system-generators/cloud-init-generator
|
||||
[ ! -d $RPM_BUILD_ROOT%{_systemdgeneratordir} ] && mkdir -p $RPM_BUILD_ROOT%{_systemdgeneratordir}
|
||||
python3 tools/render-cloudcfg --variant rhel systemd/cloud-init-generator.tmpl > $RPM_BUILD_ROOT%{_systemdgeneratordir}/cloud-init-generator
|
||||
chmod 755 $RPM_BUILD_ROOT%{_systemdgeneratordir}/cloud-init-generator
|
||||
|
||||
# installing man pages
|
||||
mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man1/
|
||||
@ -193,6 +202,7 @@ fi
|
||||
%postun
|
||||
%systemd_postun cloud-config.service cloud-config.target cloud-final.service cloud-init.service cloud-init.target cloud-init-local.service
|
||||
|
||||
|
||||
%files
|
||||
%license LICENSE
|
||||
%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg
|
||||
@ -222,460 +232,281 @@ fi
|
||||
%{_udevrulesdir}/66-azure-ephemeral.rules
|
||||
%{_datadir}/bash-completion/completions/cloud-init
|
||||
%{_bindir}/cloud-id
|
||||
/usr/lib/systemd/system-generators/cloud-init-generator
|
||||
%{_systemdgeneratordir}/cloud-init-generator
|
||||
%{_sysconfdir}/systemd/system/sshd-keygen@.service.d/disable-sshd-keygen-if-cloud-init-active.conf
|
||||
|
||||
|
||||
%dir %{_sysconfdir}/rsyslog.d
|
||||
%config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf
|
||||
|
||||
%changelog
|
||||
* Wed Aug 17 2022 Jon Maloy <jmaloy@redhat.com> - 22.1-5
|
||||
- ci-Revert-Add-native-NetworkManager-support-1224.patch [bz#2107464 bz#2110066 bz#2117526 bz#2104393 bz#2098624]
|
||||
- ci-Revert-Use-Network-Manager-and-Netplan-as-default-re.patch [bz#2107464 bz#2110066 bz#2117526 bz#2104393 bz#2098624]
|
||||
- Resolves: bz#2107464
|
||||
([RHEL-8.7] Cannot run sysconfig when changing the priority of network renderers)
|
||||
- Resolves: bz#2110066
|
||||
(DNS integration with OpenStack/cloud-init/NetworkManager is not working)
|
||||
- Resolves: bz#2117526
|
||||
([RHEL8.7] Revert patch of configuring networking by NM keyfiles)
|
||||
- Resolves: bz#2104393
|
||||
([RHEL-8.7]Failed to config static IP and IPv6 according to VMware Customization Config File)
|
||||
- Resolves: bz#2098624
|
||||
([RHEL-8.7] IPv6 not workable when cloud-init configure network using NM keyfiles)
|
||||
* Wed Aug 17 2022 Miroslav Rezanina <mrezanin@redhat.com> - 22.1-5
|
||||
- ci-Revert-Add-native-NetworkManager-support-1224.patch [bz#2107463 bz#2104389 bz#2117532 bz#2098501]
|
||||
- ci-Revert-Use-Network-Manager-and-Netplan-as-default-re.patch [bz#2107463 bz#2104389 bz#2117532 bz#2098501]
|
||||
- ci-Revert-Revert-Setting-highest-autoconnect-priority-f.patch [bz#2107463 bz#2104389 bz#2117532 bz#2098501]
|
||||
- Resolves: bz#2107463
|
||||
([RHEL-9.1] Cannot run sysconfig when changing the priority of network renderers)
|
||||
- Resolves: bz#2104389
|
||||
([RHEL-9.1]Failed to config static IP and IPv6 according to VMware Customization Config File)
|
||||
- Resolves: bz#2117532
|
||||
([RHEL9.1] Revert patch of configuring networking by NM keyfiles)
|
||||
- Resolves: bz#2098501
|
||||
([RHEL-9.1] IPv6 not workable when cloud-init configure network using NM keyfiles)
|
||||
|
||||
* Tue Jul 12 2022 Miroslav Rezanina <mrezanin@redhat.com> - 22.1-4
|
||||
- ci-cloud-init.spec-adjust-path-for-66-azure-ephemeral.r.patch [bz#2096269]
|
||||
- ci-setup.py-adjust-udev-rules-default-path-1513.patch [bz#2096269]
|
||||
- Resolves: bz#2096269
|
||||
(Adjust udev/rules default path[RHEL-8])
|
||||
* Thu Jun 23 2022 Jon Maloy <jmaloy@redhat.com> - 22.1-4
|
||||
- ci-Honor-system-locale-for-RHEL-1355.patch [bz#2061604]
|
||||
- ci-cloud-init.spec-adjust-path-for-66-azure-ephemeral.r.patch [bz#2096270]
|
||||
- ci-setup.py-adjust-udev-rules-default-path-1513.patch [bz#2096270]
|
||||
- Resolves: bz#2061604
|
||||
(cloud-config will change /etc/locale.conf back to en_US.UTF-8 on rhel-guest-image-9.0)
|
||||
- Resolves: bz#2096270
|
||||
(Adjust udev/rules default path[rhel-9])
|
||||
|
||||
* Thu Jun 23 2022 Jon Maloy <jmaloy@redhat.com> - 22.1-3
|
||||
- ci-Support-EC2-tags-in-instance-metadata-1309.patch [bz#2082686]
|
||||
- Resolves: bz#2082686
|
||||
* Wed Jun 08 2022 Miroslav Rezanina <mrezanin@redhat.com> - 22.1-3
|
||||
- ci-Support-EC2-tags-in-instance-metadata-1309.patch [bz#2091640]
|
||||
- ci-cc_set_hostname-do-not-write-localhost-when-no-hostn.patch [bz#1980403]
|
||||
- Resolves: bz#2091640
|
||||
([cloud][init] Add support for reading tags from instance metadata)
|
||||
- Resolves: bz#1980403
|
||||
([RHV] RHEL 9 VM with cloud-init without hostname set doesn't result in the FQDN as hostname)
|
||||
|
||||
* Tue May 31 2022 Jon Maloy <jmaloy@redhat.com> - 22.1-2
|
||||
- ci-Add-native-NetworkManager-support-1224.patch [bz#2059872]
|
||||
- ci-Use-Network-Manager-and-Netplan-as-default-renderers.patch [bz#2059872]
|
||||
- ci-Align-rhel-custom-files-with-upstream-1431.patch [bz#2082071]
|
||||
- ci-Remove-rhel-specific-files.patch [bz#2082071]
|
||||
- Resolves: bz#2059872
|
||||
([RHEL-8]Rebase cloud-init from Fedora so it can configure networking using NM keyfiles)
|
||||
- Resolves: bz#2082071
|
||||
* Tue May 31 2022 Miroslav Rezanina <mrezanin@redhat.com> - 22.1-2
|
||||
- ci-Add-native-NetworkManager-support-1224.patch [bz#2056964]
|
||||
- ci-Use-Network-Manager-and-Netplan-as-default-renderers.patch [bz#2056964]
|
||||
- ci-Revert-Setting-highest-autoconnect-priority-for-netw.patch [bz#2056964]
|
||||
- ci-Align-rhel-custom-files-with-upstream-1431.patch [bz#2088448]
|
||||
- ci-Remove-rhel-specific-files.patch [bz#2088448]
|
||||
- Resolves: bz#2056964
|
||||
([RHEL-9]Rebase cloud-init from Fedora so it can configure networking using NM keyfiles)
|
||||
- Resolves: bz#2088448
|
||||
(Align cloud.cfg file and systemd with cloud-init upstream .tmpl files)
|
||||
|
||||
* Mon Apr 25 2022 Amy Chen <xiachen@redhat.com> - 22.1-1
|
||||
- Rebaes to 22.1 [bz#2065544]
|
||||
- Resolves: bz#2065544
|
||||
([RHEL-8.7.0] cloud-init rebase to 22.1)
|
||||
* Tue Apr 19 2022 Emanuele Giuseppe Esposito <eesposit@redhat.com> - 22.1-1
|
||||
- Rebase to 22.1 [bz#2065548]
|
||||
- Resolves: bz#2065548
|
||||
([RHEL-9.1] cloud-init rebase to 22.1)
|
||||
|
||||
* Fri Apr 01 2022 Camilla Conte <cconte@redhat.com> - 21.1-15
|
||||
- ci-Detect-a-Python-version-change-and-clear-the-cache-8.patch [bz#1935826]
|
||||
- ci-Fix-MIME-policy-failure-on-python-version-upgrade-93.patch [bz#1935826]
|
||||
|
||||
* Fri Feb 25 2022 Jon Maloy <jmaloy@redhat.com> - 21.1-14
|
||||
- ci-Fix-IPv6-netmask-format-for-sysconfig-1215.patch [bz#2046540]
|
||||
- Resolves: bz#2046540
|
||||
* Fri Feb 25 2022 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-19
|
||||
- ci-Fix-IPv6-netmask-format-for-sysconfig-1215.patch [bz#2053546]
|
||||
- ci-Adding-_netdev-to-the-default-mount-configuration.patch [bz#1998445]
|
||||
- ci-Setting-highest-autoconnect-priority-for-network-scr.patch [bz#2036060]
|
||||
- Resolves: bz#2053546
|
||||
(cloud-init writes route6-$DEVICE config with a HEX netmask. ip route does not like : Error: inet6 prefix is expected rather than "fd00:fd00:fd00::/ffff:ffff:ffff:ffff::".)
|
||||
- Resolves: bz#1998445
|
||||
([Azure][RHEL-9] ordering cycle exists after reboot)
|
||||
- Resolves: bz#2036060
|
||||
([cloud-init][ESXi][RHEL-9] Failed to config static IP according to VMware Customization Config File)
|
||||
|
||||
* Tue Jan 25 2022 Jon Maloy <jmaloy@redhat.com> - 21.1-13
|
||||
- ci-Add-flexibility-to-IMDS-api-version-793.patch [bz#2023940]
|
||||
- ci-Azure-helper-Ensure-Azure-http-handler-sleeps-betwee.patch [bz#2023940]
|
||||
- ci-azure-Removing-ability-to-invoke-walinuxagent-799.patch [bz#2023940]
|
||||
- ci-Azure-eject-the-provisioning-iso-before-reporting-re.patch [bz#2023940]
|
||||
- ci-Azure-Retrieve-username-and-hostname-from-IMDS-865.patch [bz#2023940]
|
||||
- ci-Azure-Retry-net-metadata-during-nic-attach-for-non-t.patch [bz#2023940]
|
||||
- ci-Azure-adding-support-for-consuming-userdata-from-IMD.patch [bz#2023940]
|
||||
- Resolves: bz#2023940
|
||||
([RHEL-8] Support for provisioning Azure VM with userdata)
|
||||
* Fri Feb 11 2022 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-18
|
||||
- ci-Add-_netdev-option-to-mount-Azure-ephemeral-disk-121.patch [bz#1998445]
|
||||
- Resolves: bz#1998445
|
||||
([Azure][RHEL-9] ordering cycle exists after reboot)
|
||||
|
||||
* Wed Jan 19 2022 Jon Maloy <jmaloy@redhat.com> - 21.1-12
|
||||
- ci-Add-gdisk-and-openssl-as-deps-to-fix-UEFI-Azure-init.patch [bz#2039697]
|
||||
- ci-Datasource-for-VMware-953.patch [bz#2026587]
|
||||
- ci-Change-netifaces-dependency-to-0.10.4-965.patch [bz#2026587]
|
||||
- ci-Update-dscheck_VMware-s-rpctool-check-970.patch [bz#2026587]
|
||||
- ci-Revert-unnecesary-lcase-in-ds-identify-978.patch [bz#2026587]
|
||||
- ci-Add-netifaces-package-as-a-Requires-in-cloud-init.sp.patch [bz#2026587]
|
||||
- Resolves: bz#2039697
|
||||
([RHEL8] [Azure] cloud-init fails to configure the system)
|
||||
- Resolves: bz#2026587
|
||||
([cloud-init][RHEL8] Support for cloud-init datasource 'cloud-init-vmware-guestinfo')
|
||||
* Mon Feb 07 2022 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-17
|
||||
- ci-Add-flexibility-to-IMDS-api-version-793.patch [bz#2042351]
|
||||
- ci-Azure-helper-Ensure-Azure-http-handler-sleeps-betwee.patch [bz#2042351]
|
||||
- ci-azure-Removing-ability-to-invoke-walinuxagent-799.patch [bz#2042351]
|
||||
- ci-Azure-eject-the-provisioning-iso-before-reporting-re.patch [bz#2042351]
|
||||
- ci-Azure-Retrieve-username-and-hostname-from-IMDS-865.patch [bz#2042351]
|
||||
- ci-Azure-Retry-net-metadata-during-nic-attach-for-non-t.patch [bz#2042351]
|
||||
- ci-Azure-adding-support-for-consuming-userdata-from-IMD.patch [bz#2042351]
|
||||
- Resolves: bz#2042351
|
||||
([RHEL-9] Support for provisioning Azure VM with userdata)
|
||||
|
||||
* Wed Dec 08 2021 Jon Maloy <jmaloy@redhat.com> - 21.1-11
|
||||
- ci-cloudinit-net-handle-two-different-routes-for-the-sa.patch [bz#2028028]
|
||||
- Resolves: bz#2028028
|
||||
([RHEL-8] Above 19.2 of cloud-init fails to configure routes when configuring static and default routes to the same destination IP)
|
||||
* Fri Jan 21 2022 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-16
|
||||
- ci-Datasource-for-VMware-953.patch [bz#2040090]
|
||||
- ci-Change-netifaces-dependency-to-0.10.4-965.patch [bz#2040090]
|
||||
- ci-Update-dscheck_VMware-s-rpctool-check-970.patch [bz#2040090]
|
||||
- ci-Revert-unnecesary-lcase-in-ds-identify-978.patch [bz#2040090]
|
||||
- ci-Add-netifaces-package-as-a-Requires-in-cloud-init.sp.patch [bz#2040090]
|
||||
- Resolves: bz#2040090
|
||||
([cloud-init][RHEL9] Support for cloud-init datasource 'cloud-init-vmware-guestinfo')
|
||||
|
||||
* Mon Dec 06 2021 Jon Maloy <jmaloy@redhat.com> - 21.1-10
|
||||
- ci-fix-error-on-upgrade-caused-by-new-vendordata2-attri.patch [bz#2021538]
|
||||
- Resolves: bz#2021538
|
||||
* Thu Jan 13 2022 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-15
|
||||
- ci-Add-gdisk-and-openssl-as-deps-to-fix-UEFI-Azure-init.patch [bz#2032524]
|
||||
- Resolves: bz#2032524
|
||||
([RHEL9] [Azure] cloud-init fails to configure the system)
|
||||
|
||||
* Tue Dec 14 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-14
|
||||
- ci-cloudinit-net-handle-two-different-routes-for-the-sa.patch [bz#2028031]
|
||||
- Resolves: bz#2028031
|
||||
([RHEL-9] Above 19.2 of cloud-init fails to configure routes when configuring static and default routes to the same destination IP)
|
||||
|
||||
* Mon Dec 06 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-13
|
||||
- ci-fix-error-on-upgrade-caused-by-new-vendordata2-attri.patch [bz#2028381]
|
||||
- Resolves: bz#2028381
|
||||
(cloud-init.service fails to start after package update)
|
||||
|
||||
* Mon Oct 25 2021 Jon Maloy <jmaloy@redhat.com> - 21.1-9
|
||||
- ci-cc_ssh.py-fix-private-key-group-owner-and-permission.patch [bz#2013644]
|
||||
- Resolves: bz#2013644
|
||||
* Mon Nov 01 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-12
|
||||
- ci-remove-unnecessary-EOF-string-in-disable-sshd-keygen.patch [bz#2016305]
|
||||
- Resolves: bz#2016305
|
||||
(disable-sshd-keygen-if-cloud-init-active.conf:8: Missing '=', ignoring line)
|
||||
|
||||
* Tue Oct 26 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-11
|
||||
- ci-cc_ssh.py-fix-private-key-group-owner-and-permission.patch [bz#2015974]
|
||||
- Resolves: bz#2015974
|
||||
(cloud-init fails to set host key permissions correctly)
|
||||
|
||||
* Thu Sep 23 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-8
|
||||
- ci-ssh_utils.py-ignore-when-sshd_config-options-are-not.patch [bz#1862933]
|
||||
- Resolves: bz#1862933
|
||||
(cloud-init fails with ValueError: need more than 1 value to unpack[rhel-8])
|
||||
* Mon Oct 18 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-10
|
||||
- ci-Inhibit-sshd-keygen-.service-if-cloud-init-is-active.patch [bz#2002492]
|
||||
- ci-add-the-drop-in-also-in-the-files-section-of-cloud-i.patch [bz#2002492]
|
||||
- Resolves: bz#2002492
|
||||
(util.py[WARNING]: Failed generating key type rsa to file /etc/ssh/ssh_host_rsa_key)
|
||||
|
||||
* Fri Aug 27 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-7
|
||||
- ci-Fix-home-permissions-modified-by-ssh-module-SC-338-9.patch [bz#1995840]
|
||||
- Resolves: bz#1995840
|
||||
* Fri Sep 10 2021 Miroslav Rezanina mrezanin@redhat.com - 21.1-9
|
||||
- ci-ssh_utils.py-ignore-when-sshd_config-options-are-not.patch [bz#2002302]
|
||||
- Resolves: bz#2002302
|
||||
(cloud-init fails with ValueError: need more than 1 value to unpack[rhel-9])
|
||||
|
||||
* Fri Sep 03 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-8
|
||||
- ci-Fix-home-permissions-modified-by-ssh-module-SC-338-9.patch [bz#1995843]
|
||||
- Resolves: bz#1995843
|
||||
([cloudinit] Fix home permissions modified by ssh module)
|
||||
|
||||
* Wed Aug 11 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-6
|
||||
- ci-Stop-copying-ssh-system-keys-and-check-folder-permis.patch [bz#1862967]
|
||||
- Resolves: bz#1862967
|
||||
([cloud-init]Customize ssh AuthorizedKeysFile causes login failure)
|
||||
* Mon Aug 16 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-7
|
||||
- ci-Stop-copying-ssh-system-keys-and-check-folder-permis.patch [bz#1979099]
|
||||
- ci-Report-full-specific-version-with-cloud-init-version.patch [bz#1971002]
|
||||
- Resolves: bz#1979099
|
||||
([cloud-init]Customize ssh AuthorizedKeysFile causes login failure[RHEL-9.0])
|
||||
- Resolves: bz#1971002
|
||||
(cloud-init should report full specific full version with "cloud-init --version" [rhel-9])
|
||||
|
||||
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 21.1-6
|
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||
Related: rhbz#1991688
|
||||
|
||||
* Fri Aug 06 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-5
|
||||
- ci-Add-dhcp-client-as-a-dependency.patch [bz#1977385]
|
||||
- Resolves: bz#1977385
|
||||
([Azure][RHEL-8] cloud-init must require dhcp-client on Azure)
|
||||
- ci-Add-dhcp-client-as-a-dependency.patch [bz#1964900]
|
||||
- Resolves: bz#1964900
|
||||
([Azure][RHEL-9] cloud-init must require dhcp-client on Azure)
|
||||
|
||||
* Mon Jul 19 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-4
|
||||
- ci-ssh-util-allow-cloudinit-to-merge-all-ssh-keys-into-.patch [bz#1862967]
|
||||
- Resolves: bz#1862967
|
||||
([cloud-init]Customize ssh AuthorizedKeysFile causes login failure)
|
||||
* Thu Jul 15 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-4
|
||||
- ci-write-passwords-only-to-serial-console-lock-down-clo.patch [bz#1945892]
|
||||
- ci-ssh-util-allow-cloudinit-to-merge-all-ssh-keys-into-.patch [bz#1979099]
|
||||
- Resolves: bz#1945892
|
||||
(CVE-2021-3429 cloud-init: randomly generated passwords logged in clear-text to world-readable file [rhel-9.0])
|
||||
- Resolves: bz#1979099
|
||||
([cloud-init]Customize ssh AuthorizedKeysFile causes login failure[RHEL-9.0])
|
||||
|
||||
* Mon Jul 12 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-3
|
||||
- ci-write-passwords-only-to-serial-console-lock-down-clo.patch [bz#1945891]
|
||||
- Resolves: bz#1945891
|
||||
(CVE-2021-3429 cloud-init: randomly generated passwords logged in clear-text to world-readable file [rhel-8])
|
||||
* Fri Jul 02 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-3
|
||||
- ci-Fix-requiring-device-number-on-EC2-derivatives-836.patch [bz#1943511]
|
||||
- Resolves: bz#1943511
|
||||
([Aliyun][RHEL9.0][cloud-init] cloud-init service failed to start with Alibaba instance)
|
||||
|
||||
* Fri Jun 11 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-2
|
||||
- ci-rhel-cloud.cfg-remove-ssh_genkeytypes-in-settings.py.patch [bz#1957532]
|
||||
- ci-cloud-init.spec.template-update-systemd_postun-param.patch [bz#1952089]
|
||||
- Resolves: bz#1957532
|
||||
([cloud-init] From RHEL 82+ cloud-init no longer displays sshd keys fingerprints from instance launched from a backup image)
|
||||
- Resolves: bz#1952089
|
||||
(cloud-init brew build fails on Fedora 33)
|
||||
* Mon Jun 21 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-2
|
||||
- ci-rhel-cloud.cfg-remove-ssh_genkeytypes-in-settings.py.patch [bz#1970909]
|
||||
- ci-Use-_systemdgeneratordir-macro-for-cloud-init-genera.patch [bz#1971480]
|
||||
- Resolves: bz#1970909
|
||||
([cloud-init] From RHEL 82+ cloud-init no longer displays sshd keys fingerprints from instance launched from a backup image[rhel-9])
|
||||
- Resolves: bz#1971480
|
||||
(Use systemdgenerators macro in spec file)
|
||||
|
||||
* Thu May 27 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-1.el8
|
||||
- Rebaes to 21.1 [bz#1958174]
|
||||
- Resolves: bz#1958174
|
||||
([RHEL-8.5.0] Rebase cloud-init to 21.1)
|
||||
* Thu Jun 10 2021 Miroslav Rezanina <mrezanin@redhat.com> - 21.1-1
|
||||
- Rebase to 21.1 [bz#1958209]
|
||||
- Resolves: bz#1958209
|
||||
([RHEL-9.0] Rebase cloud-init to 21.1)
|
||||
|
||||
* Thu May 13 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-10.el8_4.3
|
||||
- ci-get_interfaces-don-t-exclude-Open-vSwitch-bridge-bon.patch [bz#1957135]
|
||||
- ci-net-exclude-OVS-internal-interfaces-in-get_interface.patch [bz#1957135]
|
||||
- Resolves: bz#1957135
|
||||
(Intermittent failure to start cloud-init due to failure to detect macs [rhel-8.4.0.z])
|
||||
* Wed Apr 21 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20.4-5
|
||||
- Removing python-mock dependency
|
||||
- Resolves: bz#1922323
|
||||
|
||||
* Tue Apr 06 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-10.el8_4.1
|
||||
- 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])
|
||||
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 20.4-4
|
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||
|
||||
* 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]
|
||||
- Resolves: bz#1913127
|
||||
(A typo in cloud-init man page)
|
||||
* Wed Apr 07 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20.4-3.el9
|
||||
- ci-Removing-python-nose-and-python-tox-as-dependency.patch [bz#1916777 bz#1918892]
|
||||
- Resolves: bz#1916777
|
||||
(cloud-init requires python-nose)
|
||||
- Resolves: bz#1918892
|
||||
(cloud-init requires tox)
|
||||
|
||||
* Tue Jan 26 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-9.el8
|
||||
- ci-DataSourceAzure-update-password-for-defuser-if-exist.patch [bz#1900892]
|
||||
- ci-Revert-ssh_util-handle-non-default-AuthorizedKeysFil.patch [bz#1919972]
|
||||
- Resolves: bz#1900892
|
||||
([Azure] Update existing user password RHEL8x)
|
||||
- Resolves: bz#1919972
|
||||
([RHEL-8.4] ssh keys can be shared across users giving potential root access)
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 20.4-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Thu Jan 21 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-8.el8
|
||||
- ci-Missing-IPV6_AUTOCONF-no-to-render-sysconfig-dhcp6-s.patch [bz#1859695]
|
||||
- Resolves: bz#1859695
|
||||
([Cloud-init] DHCPv6 assigned address is not added to VM's interface)
|
||||
* Thu Dec 03 2020 Eduardo Otubo <otubo@redhat.com> - 20.4-2
|
||||
- Updated to 20.4 [bz#1902250]
|
||||
|
||||
* Tue Jan 05 2021 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-7.el8
|
||||
- ci-Report-full-specific-version-with-cloud-init-version.patch [bz#1898949]
|
||||
- Resolves: bz#1898949
|
||||
(cloud-init should report full specific full version with "cloud-init --version")
|
||||
* Mon Sep 07 2020 Eduardo Otubo <otubo@redhat.com> - 19.4-7
|
||||
- Fix execution fail with backtrace
|
||||
|
||||
* Mon Dec 14 2020 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-6.el8
|
||||
- ci-Installing-man-pages-in-the-correct-place-with-corre.patch [bz#1612573]
|
||||
- ci-Adding-BOOTPROTO-dhcp-to-render-sysconfig-dhcp6-stat.patch [bz#1859695]
|
||||
- ci-Fix-unit-failure-of-cloud-final.service-if-NetworkMa.patch [bz#1898943]
|
||||
- ci-ssh_util-handle-non-default-AuthorizedKeysFile-confi.patch [bz#1862967]
|
||||
- Resolves: bz#1612573
|
||||
(Man page scan results for cloud-init)
|
||||
- Resolves: bz#1859695
|
||||
([Cloud-init] DHCPv6 assigned address is not added to VM's interface)
|
||||
- Resolves: bz#1898943
|
||||
([rhel-8]cloud-final.service fails if NetworkManager not installed.)
|
||||
- Resolves: bz#1862967
|
||||
([cloud-init]Customize ssh AuthorizedKeysFile causes login failure)
|
||||
* Mon Sep 07 2020 Eduardo Otubo <otubo@redhat.com> - 19.4-6
|
||||
- Adding missing patches to spec file
|
||||
|
||||
* Fri Nov 27 2020 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-5.el8
|
||||
- ci-network-Fix-type-and-respect-name-when-rendering-vla.patch [bz#1881462]
|
||||
- Resolves: bz#1881462
|
||||
([rhel8][cloud-init] ifup bond0.504 Error: Connection activation failed: No suitable device found for this connection)
|
||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 19.4-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue Nov 24 2020 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-4.el8
|
||||
- ci-Changing-permission-of-cloud-init-generator-to-755.patch [bz#1897528]
|
||||
- Resolves: bz#1897528
|
||||
(Change permission on ./systemd/cloud-init-generator.tmpl to 755 instead of 771)
|
||||
* Mon May 25 2020 Miro Hrončok <mhroncok@redhat.com> - 19.4-4
|
||||
- Rebuilt for Python 3.9
|
||||
|
||||
* Fri Nov 13 2020 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-3.el8
|
||||
- ci--Removing-net-tools-dependency.patch [bz#1881871]
|
||||
- ci--Adding-man-pages-to-Red-Hat-spec-file.patch [bz#1612573]
|
||||
- Resolves: bz#1881871
|
||||
(Remove net-tools legacy dependency from spec file)
|
||||
- Resolves: bz#1612573
|
||||
(Man page scan results for cloud-init)
|
||||
* Tue Apr 14 2020 Eduardo Otubo <otubo@redhat.com> - 19.4-3
|
||||
- Fix BZ#1798729 - CVE-2020-8632 cloud-init: Too short random password length
|
||||
in cc_set_password in config/cc_set_passwords.py
|
||||
- Fix BZ#1798732 - CVE-2020-8631 cloud-init: Use of random.choice when
|
||||
generating random password
|
||||
|
||||
* Tue Nov 03 2020 Miroslav Rezanina <mrezanin@redhat.com> - 20.3-2.el8
|
||||
- ci-Explicit-set-IPV6_AUTOCONF-and-IPV6_FORCE_ACCEPT_RA-.patch [bz#1889635]
|
||||
- ci-Add-config-modules-for-controlling-IBM-PowerVM-RMC.-.patch [bz#1886430]
|
||||
- Resolves: bz#1886430
|
||||
(Support for cloud-init config modules for PowerVM Hypervisor in Red Hat cloud-init)
|
||||
- Resolves: bz#1889635
|
||||
(Add support for ipv6_autoconf on cloud-init-20.3)
|
||||
* Sun Feb 23 2020 Dusty Mabe <dusty@dustymabe.com> - 19.4-2
|
||||
- Fix sed substitutions for unittest2 and assertItemsEqual
|
||||
- Fix failing unittests by including `BuildRequires: passwd`
|
||||
- The unittests started failing because of upstream commit
|
||||
7c07af2 where cloud-init can now support using `usermod` to
|
||||
lock an account if `passwd` isn't installed. Since `passwd`
|
||||
wasn't installed in our mock buildroot it was choosing to
|
||||
use `usermod` and the unittests were failing. See:
|
||||
https://github.com/canonical/cloud-init/commit/7c07af2
|
||||
- Add missing files to package
|
||||
- /usr/bin/cloud-id
|
||||
- /usr/share/bash-completion/completions/cloud-init
|
||||
|
||||
* Fri Oct 23 2020 Eduardo Otubo <otubo@redhat.com> - 20.3-1.el8
|
||||
- Rebase to cloud-init 20.3 [bz#1885185]
|
||||
- Resolves: bz#1885185
|
||||
([RHEL-8.4.0] cloud-init rebase to 20.3)
|
||||
* Fri Feb 14 2020 Eduardo Otubo <otubo@redhat.com> - 19.4-1
|
||||
- Updated to 19.4
|
||||
- Rebasing the Fedora specific patches but removing patches that don't apply anymore
|
||||
|
||||
* Wed Sep 02 2020 Miroslav Rezanina <mrezanin@redhat.com> - 19.4-11.el8
|
||||
- ci-cc_mounts-fix-incorrect-format-specifiers-316.patch [bz#1794664]
|
||||
- Resolves: bz#1794664
|
||||
([RHEL8] swapon fails with "swapfile has holes" when created on a xfs filesystem by cloud-init)
|
||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 17.1-15
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Mon Aug 31 2020 Miroslav Rezanina <mrezanin@redhat.com> - 19.4-10.el8
|
||||
- ci-Changing-notation-of-subp-call.patch [bz#1839662]
|
||||
- Resolves: bz#1839662
|
||||
([ESXi][RHEL8.3][cloud-init]ERROR log in cloud-init.log after clone VM on ESXi platform)
|
||||
* Fri Nov 08 2019 Miro Hrončok <mhroncok@redhat.com> - 17.1-14
|
||||
- Drop unneeded build dependency on python3-unittest2
|
||||
|
||||
* Mon Aug 24 2020 Miroslav Rezanina <mrezanin@redhat.com> - 19.4-9.el8
|
||||
- ci-Do-not-use-fallocate-in-swap-file-creation-on-xfs.-7.patch [bz#1794664]
|
||||
- ci-swap-file-size-being-used-before-checked-if-str-315.patch [bz#1794664]
|
||||
- ci-Detect-kernel-version-before-swap-file-creation-428.patch [bz#1794664]
|
||||
- Resolves: bz#1794664
|
||||
([RHEL8] swapon fails with "swapfile has holes" when created on a xfs filesystem by cloud-init)
|
||||
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 17.1-13
|
||||
- Rebuilt for Python 3.8.0rc1 (#1748018)
|
||||
|
||||
* Mon Aug 17 2020 Miroslav Rezanina <mrezanin@redhat.com> - 19.4-8.el8
|
||||
- ci-When-tools.conf-does-not-exist-running-cmd-vmware-to.patch [bz#1839662]
|
||||
- ci-ssh-exit-with-non-zero-status-on-disabled-user-472.patch [bz#1833874]
|
||||
- Resolves: bz#1833874
|
||||
([rhel-8.3]using root user error should cause a non-zero exit code)
|
||||
- Resolves: bz#1839662
|
||||
([ESXi][RHEL8.3][cloud-init]ERROR log in cloud-init.log after clone VM on ESXi platform)
|
||||
* Sun Aug 18 2019 Miro Hrončok <mhroncok@redhat.com> - 17.1-12
|
||||
- Rebuilt for Python 3.8
|
||||
|
||||
* Fri Jun 26 2020 Miroslav Rezanina <mrezanin@redhat.com> - 19.4-7.el8
|
||||
- Fixing cloud-init-generator permissions [bz#1834173]
|
||||
- Resolves: bz#1834173
|
||||
([rhel-8.3]Incorrect ds-identify check in cloud-init-generator)
|
||||
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 17.1-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
* Thu Jun 25 2020 Miroslav Rezanina <mrezanin@redhat.com> - 19.4-6.el8
|
||||
- ci-ec2-only-redact-token-request-headers-in-logs-avoid-.patch [bz#1822343]
|
||||
- Resolves: bz#1822343
|
||||
([RHEL8.3] Do not log IMDSv2 token values into cloud-init.log)
|
||||
* Tue Apr 23 2019 Björn Esser <besser82@fedoraproject.org> - 17.1-10
|
||||
- Add patch to replace platform.dist() [RH:1695953]
|
||||
- Add (Build)Requires: python3-distro
|
||||
|
||||
* Wed Jun 24 2020 Miroslav Rezanina <mrezanin@redhat.com> - 19.4-5.el8
|
||||
- ci-ec2-Do-not-log-IMDSv2-token-values-instead-use-REDAC.patch [bz#1822343]
|
||||
- ci-Render-the-generator-from-template-instead-of-cp.patch [bz#1834173]
|
||||
- ci-Change-from-redhat-to-rhel-in-systemd-generator-tmpl.patch [bz#1834173]
|
||||
- ci-cloud-init.service.tmpl-use-rhel-instead-of-redhat-4.patch [bz#1834173]
|
||||
- Resolves: bz#1822343
|
||||
([RHEL8.3] Do not log IMDSv2 token values into cloud-init.log)
|
||||
- Resolves: bz#1834173
|
||||
([rhel-8.3]Incorrect ds-identify check in cloud-init-generator)
|
||||
* Tue Apr 23 2019 Björn Esser <besser82@fedoraproject.org> - 17.1-9
|
||||
- Fix %%systemd_postun macro [RH:1695953]
|
||||
- Add patch to fix failing test for EPOCHREALTIME bash env [RH:1695953]
|
||||
|
||||
* Tue Jun 09 2020 Miroslav Rezanina <mrezanin@redhat.com> - 19.4-4.el8
|
||||
- ci-changing-ds-identify-patch-from-usr-lib-to-usr-libex.patch [bz#1834173]
|
||||
- Resolves: bz#1834173
|
||||
([rhel-8.3]Incorrect ds-identify check in cloud-init-generator)
|
||||
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 17.1-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||
|
||||
* Mon Jun 01 2020 Miroslav Rezanina <mrezanin@redhat.com> - 19.4-3.el8
|
||||
- ci-Make-cloud-init.service-execute-after-network-is-up.patch [bz#1803928]
|
||||
- Resolves: bz#1803928
|
||||
([RHEL8.3] Race condition of starting cloud-init and NetworkManager)
|
||||
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 17.1-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||
|
||||
* Thu May 28 2020 Miroslav Rezanina <mrezanin@redhat.com> - 19.4-2.el8
|
||||
- ci-cc_set_password-increase-random-pwlength-from-9-to-2.patch [bz#1812171]
|
||||
- ci-utils-use-SystemRandom-when-generating-random-passwo.patch [bz#1812174]
|
||||
- ci-Enable-ssh_deletekeys-by-default.patch [bz#1814152]
|
||||
- ci-Remove-race-condition-between-cloud-init-and-Network.patch [bz#1840648]
|
||||
- Resolves: bz#1812171
|
||||
(CVE-2020-8632 cloud-init: Too short random password length in cc_set_password in config/cc_set_passwords.py [rhel-8])
|
||||
- Resolves: bz#1812174
|
||||
(CVE-2020-8631 cloud-init: Use of random.choice when generating random password [rhel-8])
|
||||
- Resolves: bz#1814152
|
||||
(CVE-2018-10896 cloud-init: default configuration disabled deletion of SSH host keys [rhel-8])
|
||||
- Resolves: bz#1840648
|
||||
([cloud-init][RHEL-8.2.0] /etc/resolv.conf lose config after reboot (initial instance is ok))
|
||||
* Mon Jun 18 2018 Miro Hrončok <mhroncok@redhat.com> - 17.1-6
|
||||
- Rebuilt for Python 3.7
|
||||
|
||||
* Mon Apr 20 2020 Miroslav Rezanina <mrezanin@redhat.coM> - 19.4-1.el8.1
|
||||
- Rebase to cloud-init 19.4 [bz#1811912]
|
||||
- Resolves: bz#1811912
|
||||
([RHEL-8.2.1] cloud-init rebase to 19.4)
|
||||
* Sat Apr 21 2018 Lars Kellogg-Stedman <lars@redhat.com> - 17.1-5
|
||||
- Enable dhcp on EC2 interfaces with only local ipv4 addresses [RH:1569321]
|
||||
(cherry pick upstream commit eb292c1)
|
||||
|
||||
* Tue Mar 10 2020 Miroslav Rezanina <mrezanin@redhat.com> - 18.5-12.el8
|
||||
- ci-Remove-race-condition-between-cloud-init-and-Network.patch [bz#1807797]
|
||||
- Resolves: bz#1807797
|
||||
([cloud-init][RHEL-8.2.0] /etc/resolv.conf lose config after reboot (initial instance is ok))
|
||||
* Mon Mar 26 2018 Patrick Uiterwijk <puiterwijk@redhat.com> - 17.1-4
|
||||
- Make sure the patch does not add infinitely many entries
|
||||
|
||||
* Thu Feb 20 2020 Miroslav Rezanina <mrezanin@redhat.com> - 18.5-11.el8
|
||||
- ci-azure-avoid-re-running-cloud-init-when-instance-id-i.patch [bz#1788684]
|
||||
- ci-net-skip-bond-interfaces-in-get_interfaces.patch [bz#1768770]
|
||||
- ci-net-add-is_master-check-for-filtering-device-list.patch [bz#1768770]
|
||||
- Resolves: bz#1768770
|
||||
(cloud-init complaining about enslaved mac)
|
||||
- Resolves: bz#1788684
|
||||
([RHEL-8] cloud-init Azure byte swap (hyperV Gen2 Only))
|
||||
* Mon Mar 26 2018 Patrick Uiterwijk <puiterwijk@redhat.com> - 17.1-3
|
||||
- Add patch to retain old values of /etc/sysconfig/network
|
||||
|
||||
* Thu Feb 13 2020 Miroslav Rezanina <mrezanin@redhat.com> - 18.5-10.el8
|
||||
- ci-cmd-main.py-Fix-missing-modules-init-key-in-modes-di.patch [bz#1802140]
|
||||
- Resolves: bz#1802140
|
||||
([cloud-init][RHEL8.2]cloud-init cloud-final.service fail with KeyError: 'modules-init' after upgrade to version 18.2-1.el7_6.1 in RHV)
|
||||
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 17.1-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Tue Jan 28 2020 Miroslav Rezanina <mrezanin@redhat.com> - 18.5-9.el8
|
||||
- ci-Removing-cloud-user-from-wheel.patch [bz#1785648]
|
||||
- Resolves: bz#1785648
|
||||
([RHEL8]cloud-user added to wheel group and sudoers.d causes 'sudo -v' prompts for passphrase)
|
||||
|
||||
* 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 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]
|
||||
- ci-Azure-Changes-to-the-Hyper-V-KVP-Reporter.patch [bz#1691986]
|
||||
- ci-DataSourceAzure-Adjust-timeout-for-polling-IMDS.patch [bz#1691986]
|
||||
- ci-cc_mounts-check-if-mount-a-on-no-change-fstab-path.patch [bz#1691986]
|
||||
- Resolves: bz#1691986
|
||||
([Azure] [RHEL 8.1] Cloud-init fixes to support fast provisioning for Azure)
|
||||
|
||||
* Tue Apr 16 2019 Danilo Cesar Lemes de Paula <ddepaula@redhat.com> - 18.5-3.el8
|
||||
- ci-Adding-gating-tests-for-Azure-ESXi-and-AWS.patch [bz#1682786]
|
||||
- Resolves: bz#1682786
|
||||
(cloud-init changes blocked until gating tests are added)
|
||||
|
||||
* Wed Apr 10 2019 Danilo C. L. de Paula <ddepaula@redhat.com> - 18.5-2
|
||||
- Adding gating.yaml file
|
||||
- Resolves: rhbz#1682786
|
||||
(cloud-init changes blocked until gating tests are added)
|
||||
|
||||
|
||||
* Wed Apr 10 2019 Danilo de Paula <ddepaula@redhat.com: - 18.5-1.el8
|
||||
- Rebase to cloud-init 18.5
|
||||
- Resolves: bz#1687563
|
||||
(cloud-init 18.5 rebase for fast provisioning on Azure [RHEL 8.0.1])
|
||||
|
||||
* Wed Jan 23 2019 Miroslav Rezanina <mrezanin@redhat.com> - 18.2-6.el8
|
||||
- ci-net-Make-sysconfig-renderer-compatible-with-Network-.patch [bz#1602784]
|
||||
- Resolves: bz#1602784
|
||||
(cloud-init: Sometimes image boots fingerprints is configured, there's a network device present but it's not configured)
|
||||
|
||||
* Fri Jan 18 2019 Miroslav Rezanina <mrezanin@redhat.com> - 18.2-5.el8
|
||||
- ci-Fix-string-missmatch-when-mounting-ntfs.patch [bz#1664227]
|
||||
- Resolves: bz#1664227
|
||||
([Azure]String missmatch causes the /dev/sdb1 mounting failed after stop&start VM)
|
||||
|
||||
* Thu Jan 10 2019 Miroslav Rezanina <mrezanin@redhat.com> - 18.2-4.el8
|
||||
- ci-Enable-cloud-init-by-default-on-vmware.patch [bz#1644335]
|
||||
- Resolves: bz#1644335
|
||||
([ESXi][RHEL8.0]Enable cloud-init by default on VMware)
|
||||
|
||||
* Wed Nov 28 2018 Miroslav Rezanina <mrezanin@redhat.com> - 18.2-3.el8
|
||||
- ci-Adding-systemd-mount-options-to-wait-for-cloud-init.patch [bz#1615599]
|
||||
- ci-Azure-Ignore-NTFS-mount-errors-when-checking-ephemer.patch [bz#1615599]
|
||||
- ci-azure-Add-reported-ready-marker-file.patch [bz#1615599]
|
||||
- ci-Adding-disk_setup-to-rhel-cloud.cfg.patch [bz#1615599]
|
||||
- Resolves: bz#1615599
|
||||
([Azure] cloud-init fails to mount /dev/sdb1 after stop(deallocate)&&start VM)
|
||||
|
||||
* Tue Nov 06 2018 Miroslav Rezanina <mrezanin@redhat.com> - 18.2-2.el7
|
||||
- Revert "remove 'tee' command from logging configuration" [bz#1626117]
|
||||
- Resolves: rhbz#1626117]
|
||||
(cloud-init-0.7.9-9 doesn't feed cloud-init-output.log)
|
||||
|
||||
* Fri Jun 29 2018 Miroslav Rezanina <mrezanin@redhat.com> - 18.2-1.el7
|
||||
- Rebase to 18.2 [bz#1515909]
|
||||
Resolves: rhbz#1515909
|
||||
|
||||
* Tue Feb 13 2018 Ryan McCabe <rmccabe@redhat.com> 0.7.9-24
|
||||
- Set DHCP_HOSTNAME on Azure to allow for the hostname to be
|
||||
published correctly when bouncing the network.
|
||||
Resolves: rhbz#1434109
|
||||
|
||||
* Mon Jan 15 2018 Ryan McCabe <rmccabe@redhat.com> 0.7.9-23
|
||||
- Fix a bug tha caused cloud-init to fail as a result of trying
|
||||
to rename bonds.
|
||||
Resolves: rhbz#1512247
|
||||
|
||||
* Mon Jan 15 2018 Ryan McCabe <rmccabe@redhat.com> 0.7.9-22
|
||||
- Apply patch from -21
|
||||
Resolves: rhbz#1489270
|
||||
|
||||
* Mon Jan 15 2018 Ryan McCabe <rmccabe@redhat.com> 0.7.9-21
|
||||
- sysconfig: Fix a potential traceback introduced in the
|
||||
0.7.9-17 build
|
||||
Resolves: rhbz#1489270
|
||||
|
||||
* Sun Dec 17 2017 Ryan McCabe <rmccabe@redhat.com> 0.7.9-20
|
||||
- sysconfig: Correct rendering for dhcp on ipv6
|
||||
Resolves: rhbz#1519271
|
||||
|
||||
* Thu Nov 30 2017 Ryan McCabe <rmccabe@redhat.com> 0.7.9-19
|
||||
- sysconfig: Fix rendering of default gateway for ipv6
|
||||
Resolves: rhbz#1492726
|
||||
|
||||
* Fri Nov 24 2017 Ryan McCabe <rmccabe@redhat.com> 0.7.9-18
|
||||
- Start the cloud-init init local service after the dbus socket is created
|
||||
so that the hostnamectl command works.
|
||||
Resolves: rhbz#1450521
|
||||
|
||||
* Tue Nov 21 2017 Ryan McCabe <rmccabe@redhat.com> 0.7.9-17
|
||||
- Correctly render DNS and DOMAIN for sysconfig
|
||||
Resolves: rhbz#1489270
|
||||
|
||||
* Mon Nov 20 2017 Ryan McCabe <rmccabe@redhat.com> 0.7.9-16
|
||||
- Disable NetworkManager management of resolv.conf if nameservers
|
||||
are specified by configuration.
|
||||
Resolves: rhbz#1454491
|
||||
|
||||
* Mon Nov 13 2017 Ryan McCabe <rmccabe@redhat.com> 0.7.9-15
|
||||
- Fix a null reference error in the rh_subscription module
|
||||
Resolves: rhbz#1498974
|
||||
|
||||
* Mon Nov 13 2017 Ryan McCabe <rmccabe@redhat.com> 0-7.9-14
|
||||
- Include gateway if it's included in subnet configration
|
||||
Resolves: rhbz#1492726
|
||||
|
||||
* Sun Nov 12 2017 Ryan McCabe <rmccabe@redhat.com> 0-7.9-13
|
||||
- Do proper cleanup of systemd units when upgrading from versions
|
||||
0.7.9-3 through 0.7.9-8.
|
||||
Resolves: rhbz#1465730
|
||||
|
||||
* Thu Nov 09 2017 Ryan McCabe <rmccabe@redhat.com> 0.7.9-12
|
||||
- Prevent Azure NM and dhclient hooks from running when cloud-init is
|
||||
disabled (rhbz#1474226)
|
||||
|
||||
* Tue Oct 31 2017 Ryan McCabe <rmccabe@redhat.com> 0.7.9-11
|
||||
- Fix rendering of multiple static IPs per interface file
|
||||
Resolves: rhbz#bz1497954
|
||||
* Wed Oct 4 2017 Garrett Holmstrom <gholms@fedoraproject.org> - 17.1-1
|
||||
- Updated to 17.1
|
||||
|
||||
* Tue Sep 26 2017 Ryan McCabe <rmccabe@redhat.com> 0.7.9-10
|
||||
- AliCloud: Add support for the Alibaba Cloud datasource (rhbz#1482547)
|
||||
|
Loading…
Reference in New Issue
Block a user