Auto sync2gitlab import of cloud-init-22.1-3.el8.src.rpm
This commit is contained in:
parent
d2dec1915e
commit
0680461e5e
2300
ci-Add-native-NetworkManager-support-1224.patch
Normal file
2300
ci-Add-native-NetworkManager-support-1224.patch
Normal file
File diff suppressed because it is too large
Load Diff
257
ci-Align-rhel-custom-files-with-upstream-1431.patch
Normal file
257
ci-Align-rhel-custom-files-with-upstream-1431.patch
Normal file
@ -0,0 +1,257 @@
|
|||||||
|
From 5c99ba05086b1ec83ce7e0c64edb4add4b47d923 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)
|
||||||
|
|
||||||
|
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-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
|
|
||||||
|
commit 9624758f91b61f4711e8d7b5c83075b5d23e0c43
|
||||||
|
Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
Date: Wed May 18 15:18:04 2022 +0200
|
||||||
|
|
||||||
|
Align rhel custom files with upstream (#1431)
|
||||||
|
|
||||||
|
So far RHEL had its own custom .service and cloud.cfg files,
|
||||||
|
that diverged from upstream. We always replaced the generated files
|
||||||
|
with the ones we had.
|
||||||
|
|
||||||
|
This caused only confusion and made it harder to rebase and backport
|
||||||
|
patches targeting these files.
|
||||||
|
At the same time, we are going to delete our custom downstream-only files
|
||||||
|
and use the ones generated by .tmpl.
|
||||||
|
|
||||||
|
The mapping is:
|
||||||
|
config/cloud.cfg.tmpl -> rhel/cloud.cfg
|
||||||
|
systemd/* -> rhel/systemd/*
|
||||||
|
|
||||||
|
Such rhel-specific files are open and available in the Centos repo:
|
||||||
|
https://gitlab.com/redhat/centos-stream/src/cloud-init
|
||||||
|
|
||||||
|
With this commit, we are also introducing modules in cloud.cfg that
|
||||||
|
were not in the default rhel cfg file, even though they should already
|
||||||
|
have been there with previous rebases and releases.
|
||||||
|
Anyways such modules support rhel as distro, and
|
||||||
|
therefore should cause no harm.
|
||||||
|
|
||||||
|
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
|
||||||
|
RHBZ: 2082071
|
||||||
|
|
||||||
|
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
---
|
||||||
|
config/cloud.cfg.tmpl | 23 +++++++++++++++++++++++
|
||||||
|
systemd/cloud-config.service.tmpl | 4 ++++
|
||||||
|
systemd/cloud-final.service.tmpl | 13 +++++++++++++
|
||||||
|
systemd/cloud-init-local.service.tmpl | 22 +++++++++++++++++++++-
|
||||||
|
systemd/cloud-init.service.tmpl | 6 +++++-
|
||||||
|
tests/unittests/test_render_cloudcfg.py | 1 +
|
||||||
|
6 files changed, 67 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl
|
||||||
|
index 86beee3c..f4d2fd14 100644
|
||||||
|
--- a/config/cloud.cfg.tmpl
|
||||||
|
+++ b/config/cloud.cfg.tmpl
|
||||||
|
@@ -34,7 +34,11 @@ disable_root: true
|
||||||
|
|
||||||
|
{% if variant in ["almalinux", "alpine", "amazon", "centos", "cloudlinux", "eurolinux",
|
||||||
|
"fedora", "miraclelinux", "openEuler", "rhel", "rocky", "virtuozzo"] %}
|
||||||
|
+{% if variant == "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']
|
||||||
|
+{% endif %}
|
||||||
|
{% if variant == "amazon" %}
|
||||||
|
resize_rootfs: noblock
|
||||||
|
{% endif %}
|
||||||
|
@@ -66,6 +70,14 @@ network:
|
||||||
|
config: disabled
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
+{% if variant == "rhel" %}
|
||||||
|
+# Default redhat settings:
|
||||||
|
+ssh_deletekeys: true
|
||||||
|
+ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519']
|
||||||
|
+syslog_fix_perms: ~
|
||||||
|
+disable_vmware_customization: false
|
||||||
|
+{% endif %}
|
||||||
|
+
|
||||||
|
# The modules that run in the 'init' stage
|
||||||
|
cloud_init_modules:
|
||||||
|
- migrator
|
||||||
|
@@ -107,10 +119,15 @@ cloud_config_modules:
|
||||||
|
{% endif %}
|
||||||
|
{% if variant not in ["photon"] %}
|
||||||
|
- ssh-import-id
|
||||||
|
+{% if variant not in ["rhel"] %}
|
||||||
|
- keyboard
|
||||||
|
+{% endif %}
|
||||||
|
- locale
|
||||||
|
{% endif %}
|
||||||
|
- set-passwords
|
||||||
|
+{% if variant in ["rhel"] %}
|
||||||
|
+ - rh_subscription
|
||||||
|
+{% endif %}
|
||||||
|
{% if variant in ["rhel", "fedora", "photon"] %}
|
||||||
|
{% if variant not in ["photon"] %}
|
||||||
|
- spacewalk
|
||||||
|
@@ -239,6 +256,10 @@ system_info:
|
||||||
|
name: ec2-user
|
||||||
|
lock_passwd: True
|
||||||
|
gecos: EC2 Default User
|
||||||
|
+{% elif variant == "rhel" %}
|
||||||
|
+ name: cloud-user
|
||||||
|
+ lock_passwd: true
|
||||||
|
+ gecos: Cloud User
|
||||||
|
{% else %}
|
||||||
|
name: {{ variant }}
|
||||||
|
lock_passwd: True
|
||||||
|
@@ -254,6 +275,8 @@ system_info:
|
||||||
|
groups: [adm, sudo]
|
||||||
|
{% elif variant == "arch" %}
|
||||||
|
groups: [wheel, users]
|
||||||
|
+{% elif variant == "rhel" %}
|
||||||
|
+ groups: [adm, systemd-journal]
|
||||||
|
{% else %}
|
||||||
|
groups: [wheel, adm, systemd-journal]
|
||||||
|
{% endif %}
|
||||||
|
diff --git a/systemd/cloud-config.service.tmpl b/systemd/cloud-config.service.tmpl
|
||||||
|
index 9d928ca2..d5568a6e 100644
|
||||||
|
--- a/systemd/cloud-config.service.tmpl
|
||||||
|
+++ b/systemd/cloud-config.service.tmpl
|
||||||
|
@@ -4,6 +4,10 @@ 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" %}
|
||||||
|
+ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||||
|
+ConditionKernelCommandLine=!cloud-init=disabled
|
||||||
|
+{% endif %}
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
diff --git a/systemd/cloud-final.service.tmpl b/systemd/cloud-final.service.tmpl
|
||||||
|
index 8207b18c..85f423ac 100644
|
||||||
|
--- a/systemd/cloud-final.service.tmpl
|
||||||
|
+++ b/systemd/cloud-final.service.tmpl
|
||||||
|
@@ -7,6 +7,10 @@ After=multi-user.target
|
||||||
|
Before=apt-daily.service
|
||||||
|
{% endif %}
|
||||||
|
Wants=network-online.target cloud-config.service
|
||||||
|
+{% if variant == "rhel" %}
|
||||||
|
+ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||||
|
+ConditionKernelCommandLine=!cloud-init=disabled
|
||||||
|
+{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
@@ -15,7 +19,16 @@ ExecStart=/usr/bin/cloud-init modules --mode=final
|
||||||
|
RemainAfterExit=yes
|
||||||
|
TimeoutSec=0
|
||||||
|
KillMode=process
|
||||||
|
+{% if variant == "rhel" %}
|
||||||
|
+# Restart NetworkManager if it is present and running.
|
||||||
|
+ExecStartPost=/bin/sh -c 'u=NetworkManager.service; \
|
||||||
|
+ out=$(systemctl show --property=SubState $u) || exit; \
|
||||||
|
+ [ "$out" = "SubState=running" ] || exit 0; \
|
||||||
|
+ systemctl reload-or-try-restart $u'
|
||||||
|
+{% else %}
|
||||||
|
TasksMax=infinity
|
||||||
|
+{% endif %}
|
||||||
|
+
|
||||||
|
|
||||||
|
# Output needs to appear in instance console output
|
||||||
|
StandardOutput=journal+console
|
||||||
|
diff --git a/systemd/cloud-init-local.service.tmpl b/systemd/cloud-init-local.service.tmpl
|
||||||
|
index 7166f640..a6b82650 100644
|
||||||
|
--- a/systemd/cloud-init-local.service.tmpl
|
||||||
|
+++ b/systemd/cloud-init-local.service.tmpl
|
||||||
|
@@ -1,23 +1,43 @@
|
||||||
|
## template:jinja
|
||||||
|
[Unit]
|
||||||
|
Description=Initial cloud-init job (pre-networking)
|
||||||
|
-{% if variant in ["ubuntu", "unknown", "debian"] %}
|
||||||
|
+{% if variant in ["ubuntu", "unknown", "debian", "rhel" ] %}
|
||||||
|
DefaultDependencies=no
|
||||||
|
{% endif %}
|
||||||
|
Wants=network-pre.target
|
||||||
|
After=hv_kvp_daemon.service
|
||||||
|
After=systemd-remount-fs.service
|
||||||
|
+{% if variant == "rhel" %}
|
||||||
|
+Requires=dbus.socket
|
||||||
|
+After=dbus.socket
|
||||||
|
+{% endif %}
|
||||||
|
Before=NetworkManager.service
|
||||||
|
+{% if variant == "rhel" %}
|
||||||
|
+Before=network.service
|
||||||
|
+{% endif %}
|
||||||
|
Before=network-pre.target
|
||||||
|
Before=shutdown.target
|
||||||
|
+{% if variant == "rhel" %}
|
||||||
|
+Before=firewalld.target
|
||||||
|
+Conflicts=shutdown.target
|
||||||
|
+{% endif %}
|
||||||
|
{% if variant in ["ubuntu", "unknown", "debian"] %}
|
||||||
|
Before=sysinit.target
|
||||||
|
Conflicts=shutdown.target
|
||||||
|
{% endif %}
|
||||||
|
RequiresMountsFor=/var/lib/cloud
|
||||||
|
+{% if variant == "rhel" %}
|
||||||
|
+ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||||
|
+ConditionKernelCommandLine=!cloud-init=disabled
|
||||||
|
+{% endif %}
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
+{% if variant == "rhel" %}
|
||||||
|
+ExecStartPre=/bin/mkdir -p /run/cloud-init
|
||||||
|
+ExecStartPre=/sbin/restorecon /run/cloud-init
|
||||||
|
+ExecStartPre=/usr/bin/touch /run/cloud-init/enabled
|
||||||
|
+{% endif %}
|
||||||
|
ExecStart=/usr/bin/cloud-init init --local
|
||||||
|
ExecStart=/bin/touch /run/cloud-init/network-config-ready
|
||||||
|
RemainAfterExit=yes
|
||||||
|
diff --git a/systemd/cloud-init.service.tmpl b/systemd/cloud-init.service.tmpl
|
||||||
|
index e71e5679..c170aef7 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"] %}
|
||||||
|
+{% if variant not in ["photon", "rhel"] %}
|
||||||
|
DefaultDependencies=no
|
||||||
|
{% endif %}
|
||||||
|
Wants=cloud-init-local.service
|
||||||
|
@@ -36,6 +36,10 @@ Before=shutdown.target
|
||||||
|
Conflicts=shutdown.target
|
||||||
|
{% endif %}
|
||||||
|
Before=systemd-user-sessions.service
|
||||||
|
+{% if variant == "rhel" %}
|
||||||
|
+ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||||
|
+ConditionKernelCommandLine=!cloud-init=disabled
|
||||||
|
+{% endif %}
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=oneshot
|
||||||
|
diff --git a/tests/unittests/test_render_cloudcfg.py b/tests/unittests/test_render_cloudcfg.py
|
||||||
|
index 30fbd1a4..9f95d448 100644
|
||||||
|
--- a/tests/unittests/test_render_cloudcfg.py
|
||||||
|
+++ b/tests/unittests/test_render_cloudcfg.py
|
||||||
|
@@ -68,6 +68,7 @@ class TestRenderCloudCfg:
|
||||||
|
default_user_exceptions = {
|
||||||
|
"amazon": "ec2-user",
|
||||||
|
"debian": "ubuntu",
|
||||||
|
+ "rhel": "cloud-user",
|
||||||
|
"unknown": "ubuntu",
|
||||||
|
}
|
||||||
|
default_user = system_cfg["system_info"]["default_user"]["name"]
|
||||||
|
--
|
||||||
|
2.35.3
|
||||||
|
|
373
ci-Remove-rhel-specific-files.patch
Normal file
373
ci-Remove-rhel-specific-files.patch
Normal file
@ -0,0 +1,373 @@
|
|||||||
|
From d43f0d93386f123892451d923c2b3c6fe7130c39 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
|
||||||
|
|
||||||
|
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-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
|
|
||||||
|
Remove all files in rhel/ directory and related commands that copy
|
||||||
|
and replace them with the generated ones.
|
||||||
|
|
||||||
|
Also adjust setup.py, align it with upstream:
|
||||||
|
- by default, after rhel 8.3 ds-identify is in /usr/libexec, so no need to move it manually
|
||||||
|
- bash-completions work also in /usr/share, as upstream
|
||||||
|
- udev also works in /lib/udev
|
||||||
|
|
||||||
|
Also remove rhel/README since it is outdated (chef is used in cloud.cfg) and cloud-init-tmpfiles.conf,
|
||||||
|
as it exists also in .distro.
|
||||||
|
|
||||||
|
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 ---------------------------
|
||||||
|
rhel/systemd/cloud-config.service | 18 -------
|
||||||
|
rhel/systemd/cloud-config.target | 11 -----
|
||||||
|
rhel/systemd/cloud-final.service | 24 ----------
|
||||||
|
rhel/systemd/cloud-init-local.service | 31 ------------
|
||||||
|
rhel/systemd/cloud-init.service | 26 ----------
|
||||||
|
rhel/systemd/cloud-init.target | 7 ---
|
||||||
|
setup.py | 28 ++++++++++-
|
||||||
|
11 files changed, 31 insertions(+), 210 deletions(-)
|
||||||
|
delete mode 100644 rhel/README.rhel
|
||||||
|
delete mode 100644 rhel/cloud-init-tmpfiles.conf
|
||||||
|
delete mode 100644 rhel/cloud.cfg
|
||||||
|
delete mode 100644 rhel/systemd/cloud-config.service
|
||||||
|
delete mode 100644 rhel/systemd/cloud-config.target
|
||||||
|
delete mode 100644 rhel/systemd/cloud-final.service
|
||||||
|
delete mode 100644 rhel/systemd/cloud-init-local.service
|
||||||
|
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
|
||||||
|
--- a/rhel/README.rhel
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,5 +0,0 @@
|
||||||
|
-The following cloud-init modules are currently unsupported on this OS:
|
||||||
|
- - apt_update_upgrade ('apt_update', 'apt_upgrade', 'apt_mirror', 'apt_preserve_sources_list', 'apt_old_mirror', 'apt_sources', 'debconf_selections', 'packages' options)
|
||||||
|
- - byobu ('byobu_by_default' option)
|
||||||
|
- - chef
|
||||||
|
- - grub_dpkg
|
||||||
|
diff --git a/rhel/cloud-init-tmpfiles.conf b/rhel/cloud-init-tmpfiles.conf
|
||||||
|
deleted file mode 100644
|
||||||
|
index 0c6d2a3b..00000000
|
||||||
|
--- a/rhel/cloud-init-tmpfiles.conf
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1 +0,0 @@
|
||||||
|
-d /run/cloud-init 0700 root root - -
|
||||||
|
diff --git a/rhel/cloud.cfg b/rhel/cloud.cfg
|
||||||
|
deleted file mode 100644
|
||||||
|
index cbee197a..00000000
|
||||||
|
--- a/rhel/cloud.cfg
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,69 +0,0 @@
|
||||||
|
-users:
|
||||||
|
- - default
|
||||||
|
-
|
||||||
|
-disable_root: 1
|
||||||
|
-ssh_pwauth: 0
|
||||||
|
-
|
||||||
|
-mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service', '0', '2']
|
||||||
|
-resize_rootfs_tmp: /dev
|
||||||
|
-ssh_deletekeys: 1
|
||||||
|
-ssh_genkeytypes: ['rsa', 'ecdsa', 'ed25519']
|
||||||
|
-syslog_fix_perms: ~
|
||||||
|
-disable_vmware_customization: false
|
||||||
|
-
|
||||||
|
-cloud_init_modules:
|
||||||
|
- - disk_setup
|
||||||
|
- - migrator
|
||||||
|
- - bootcmd
|
||||||
|
- - write-files
|
||||||
|
- - growpart
|
||||||
|
- - resizefs
|
||||||
|
- - set_hostname
|
||||||
|
- - update_hostname
|
||||||
|
- - update_etc_hosts
|
||||||
|
- - rsyslog
|
||||||
|
- - users-groups
|
||||||
|
- - ssh
|
||||||
|
-
|
||||||
|
-cloud_config_modules:
|
||||||
|
- - mounts
|
||||||
|
- - locale
|
||||||
|
- - set-passwords
|
||||||
|
- - rh_subscription
|
||||||
|
- - yum-add-repo
|
||||||
|
- - package-update-upgrade-install
|
||||||
|
- - timezone
|
||||||
|
- - puppet
|
||||||
|
- - chef
|
||||||
|
- - salt-minion
|
||||||
|
- - mcollective
|
||||||
|
- - disable-ec2-metadata
|
||||||
|
- - runcmd
|
||||||
|
-
|
||||||
|
-cloud_final_modules:
|
||||||
|
- - rightscale_userdata
|
||||||
|
- - scripts-per-once
|
||||||
|
- - scripts-per-boot
|
||||||
|
- - scripts-per-instance
|
||||||
|
- - scripts-user
|
||||||
|
- - ssh-authkey-fingerprints
|
||||||
|
- - keys-to-console
|
||||||
|
- - phone-home
|
||||||
|
- - final-message
|
||||||
|
- - power-state-change
|
||||||
|
-
|
||||||
|
-system_info:
|
||||||
|
- default_user:
|
||||||
|
- name: cloud-user
|
||||||
|
- lock_passwd: true
|
||||||
|
- gecos: Cloud User
|
||||||
|
- groups: [adm, systemd-journal]
|
||||||
|
- sudo: ["ALL=(ALL) NOPASSWD:ALL"]
|
||||||
|
- shell: /bin/bash
|
||||||
|
- distro: rhel
|
||||||
|
- paths:
|
||||||
|
- cloud_dir: /var/lib/cloud
|
||||||
|
- templates_dir: /etc/cloud/templates
|
||||||
|
- ssh_svcname: sshd
|
||||||
|
-
|
||||||
|
-# vim:syntax=yaml
|
||||||
|
diff --git a/rhel/systemd/cloud-config.service b/rhel/systemd/cloud-config.service
|
||||||
|
deleted file mode 100644
|
||||||
|
index f3dcd4be..00000000
|
||||||
|
--- a/rhel/systemd/cloud-config.service
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,18 +0,0 @@
|
||||||
|
-[Unit]
|
||||||
|
-Description=Apply the settings specified in cloud-config
|
||||||
|
-After=network-online.target cloud-config.target
|
||||||
|
-Wants=network-online.target cloud-config.target
|
||||||
|
-ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||||
|
-ConditionKernelCommandLine=!cloud-init=disabled
|
||||||
|
-
|
||||||
|
-[Service]
|
||||||
|
-Type=oneshot
|
||||||
|
-ExecStart=/usr/bin/cloud-init modules --mode=config
|
||||||
|
-RemainAfterExit=yes
|
||||||
|
-TimeoutSec=0
|
||||||
|
-
|
||||||
|
-# Output needs to appear in instance console output
|
||||||
|
-StandardOutput=journal+console
|
||||||
|
-
|
||||||
|
-[Install]
|
||||||
|
-WantedBy=cloud-init.target
|
||||||
|
diff --git a/rhel/systemd/cloud-config.target b/rhel/systemd/cloud-config.target
|
||||||
|
deleted file mode 100644
|
||||||
|
index ae9b7d02..00000000
|
||||||
|
--- a/rhel/systemd/cloud-config.target
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,11 +0,0 @@
|
||||||
|
-# cloud-init normally emits a "cloud-config" upstart event to inform third
|
||||||
|
-# parties that cloud-config is available, which does us no good when we're
|
||||||
|
-# using systemd. cloud-config.target serves as this synchronization point
|
||||||
|
-# instead. Services that would "start on cloud-config" with upstart can
|
||||||
|
-# instead use "After=cloud-config.target" and "Wants=cloud-config.target"
|
||||||
|
-# as appropriate.
|
||||||
|
-
|
||||||
|
-[Unit]
|
||||||
|
-Description=Cloud-config availability
|
||||||
|
-Wants=cloud-init-local.service cloud-init.service
|
||||||
|
-After=cloud-init-local.service cloud-init.service
|
||||||
|
diff --git a/rhel/systemd/cloud-final.service b/rhel/systemd/cloud-final.service
|
||||||
|
deleted file mode 100644
|
||||||
|
index e281c0cf..00000000
|
||||||
|
--- a/rhel/systemd/cloud-final.service
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,24 +0,0 @@
|
||||||
|
-[Unit]
|
||||||
|
-Description=Execute cloud user/final scripts
|
||||||
|
-After=network-online.target cloud-config.service rc-local.service
|
||||||
|
-Wants=network-online.target cloud-config.service
|
||||||
|
-ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||||
|
-ConditionKernelCommandLine=!cloud-init=disabled
|
||||||
|
-
|
||||||
|
-[Service]
|
||||||
|
-Type=oneshot
|
||||||
|
-ExecStart=/usr/bin/cloud-init modules --mode=final
|
||||||
|
-RemainAfterExit=yes
|
||||||
|
-TimeoutSec=0
|
||||||
|
-KillMode=process
|
||||||
|
-# Restart NetworkManager if it is present and running.
|
||||||
|
-ExecStartPost=/bin/sh -c 'u=NetworkManager.service; \
|
||||||
|
- out=$(systemctl show --property=SubState $u) || exit; \
|
||||||
|
- [ "$out" = "SubState=running" ] || exit 0; \
|
||||||
|
- systemctl reload-or-try-restart $u'
|
||||||
|
-
|
||||||
|
-# Output needs to appear in instance console output
|
||||||
|
-StandardOutput=journal+console
|
||||||
|
-
|
||||||
|
-[Install]
|
||||||
|
-WantedBy=cloud-init.target
|
||||||
|
diff --git a/rhel/systemd/cloud-init-local.service b/rhel/systemd/cloud-init-local.service
|
||||||
|
deleted file mode 100644
|
||||||
|
index 8f9f6c9f..00000000
|
||||||
|
--- a/rhel/systemd/cloud-init-local.service
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,31 +0,0 @@
|
||||||
|
-[Unit]
|
||||||
|
-Description=Initial cloud-init job (pre-networking)
|
||||||
|
-DefaultDependencies=no
|
||||||
|
-Wants=network-pre.target
|
||||||
|
-After=systemd-remount-fs.service
|
||||||
|
-Requires=dbus.socket
|
||||||
|
-After=dbus.socket
|
||||||
|
-Before=NetworkManager.service network.service
|
||||||
|
-Before=network-pre.target
|
||||||
|
-Before=shutdown.target
|
||||||
|
-Before=firewalld.target
|
||||||
|
-Conflicts=shutdown.target
|
||||||
|
-RequiresMountsFor=/var/lib/cloud
|
||||||
|
-ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||||
|
-ConditionKernelCommandLine=!cloud-init=disabled
|
||||||
|
-
|
||||||
|
-[Service]
|
||||||
|
-Type=oneshot
|
||||||
|
-ExecStartPre=/bin/mkdir -p /run/cloud-init
|
||||||
|
-ExecStartPre=/sbin/restorecon /run/cloud-init
|
||||||
|
-ExecStartPre=/usr/bin/touch /run/cloud-init/enabled
|
||||||
|
-ExecStart=/usr/bin/cloud-init init --local
|
||||||
|
-ExecStart=/bin/touch /run/cloud-init/network-config-ready
|
||||||
|
-RemainAfterExit=yes
|
||||||
|
-TimeoutSec=0
|
||||||
|
-
|
||||||
|
-# Output needs to appear in instance console output
|
||||||
|
-StandardOutput=journal+console
|
||||||
|
-
|
||||||
|
-[Install]
|
||||||
|
-WantedBy=cloud-init.target
|
||||||
|
diff --git a/rhel/systemd/cloud-init.service b/rhel/systemd/cloud-init.service
|
||||||
|
deleted file mode 100644
|
||||||
|
index 0b3d796d..00000000
|
||||||
|
--- a/rhel/systemd/cloud-init.service
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,26 +0,0 @@
|
||||||
|
-[Unit]
|
||||||
|
-Description=Initial cloud-init job (metadata service crawler)
|
||||||
|
-Wants=cloud-init-local.service
|
||||||
|
-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
|
||||||
|
-Before=systemd-user-sessions.service
|
||||||
|
-ConditionPathExists=!/etc/cloud/cloud-init.disabled
|
||||||
|
-ConditionKernelCommandLine=!cloud-init=disabled
|
||||||
|
-
|
||||||
|
-[Service]
|
||||||
|
-Type=oneshot
|
||||||
|
-ExecStart=/usr/bin/cloud-init init
|
||||||
|
-RemainAfterExit=yes
|
||||||
|
-TimeoutSec=0
|
||||||
|
-
|
||||||
|
-# Output needs to appear in instance console output
|
||||||
|
-StandardOutput=journal+console
|
||||||
|
-
|
||||||
|
-[Install]
|
||||||
|
-WantedBy=cloud-init.target
|
||||||
|
diff --git a/rhel/systemd/cloud-init.target b/rhel/systemd/cloud-init.target
|
||||||
|
deleted file mode 100644
|
||||||
|
index 083c3b6f..00000000
|
||||||
|
--- a/rhel/systemd/cloud-init.target
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,7 +0,0 @@
|
||||||
|
-# cloud-init target is enabled by cloud-init-generator
|
||||||
|
-# To disable it you can either:
|
||||||
|
-# a.) boot with kernel cmdline of 'cloud-init=disabled'
|
||||||
|
-# b.) touch a file /etc/cloud/cloud-init.disabled
|
||||||
|
-[Unit]
|
||||||
|
-Description=Cloud-init target
|
||||||
|
-After=multi-user.target
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 3c377eaa..a9132d2c 100755
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -139,6 +139,21 @@ INITSYS_FILES = {
|
||||||
|
"sysvinit_deb": [f for f in glob("sysvinit/debian/*") if is_f(f)],
|
||||||
|
"sysvinit_openrc": [f for f in glob("sysvinit/gentoo/*") if is_f(f)],
|
||||||
|
"sysvinit_suse": [f for f in glob("sysvinit/suse/*") if is_f(f)],
|
||||||
|
+ "systemd": [
|
||||||
|
+ render_tmpl(f)
|
||||||
|
+ for f in (
|
||||||
|
+ glob("systemd/*.tmpl")
|
||||||
|
+ + glob("systemd/*.service")
|
||||||
|
+ + glob("systemd/*.socket")
|
||||||
|
+ + glob("systemd/*.target")
|
||||||
|
+ )
|
||||||
|
+ if (is_f(f) and not is_generator(f))
|
||||||
|
+ ],
|
||||||
|
+ "systemd.generators": [
|
||||||
|
+ render_tmpl(f, mode=0o755)
|
||||||
|
+ for f in glob("systemd/*")
|
||||||
|
+ if is_f(f) and is_generator(f)
|
||||||
|
+ ],
|
||||||
|
"upstart": [f for f in glob("upstart/*") if is_f(f)],
|
||||||
|
}
|
||||||
|
INITSYS_ROOTS = {
|
||||||
|
@@ -148,6 +163,10 @@ INITSYS_ROOTS = {
|
||||||
|
"sysvinit_deb": "etc/init.d",
|
||||||
|
"sysvinit_openrc": "etc/init.d",
|
||||||
|
"sysvinit_suse": "etc/init.d",
|
||||||
|
+ "systemd": pkg_config_read("systemd", "systemdsystemunitdir"),
|
||||||
|
+ "systemd.generators": pkg_config_read(
|
||||||
|
+ "systemd", "systemdsystemgeneratordir"
|
||||||
|
+ ),
|
||||||
|
"upstart": "etc/init/",
|
||||||
|
}
|
||||||
|
INITSYS_TYPES = sorted([f.partition(".")[0] for f in INITSYS_ROOTS.keys()])
|
||||||
|
@@ -262,13 +281,15 @@ data_files = [
|
||||||
|
(
|
||||||
|
USR_LIB_EXEC + "/cloud-init",
|
||||||
|
[
|
||||||
|
+ "tools/ds-identify",
|
||||||
|
"tools/hook-hotplug",
|
||||||
|
"tools/uncloud-init",
|
||||||
|
"tools/write-ssh-key-fingerprints",
|
||||||
|
],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
- ETC + "/bash_completion.d", ["bash_completion/cloud-init"],
|
||||||
|
+ USR + "/share/bash-completion/completions",
|
||||||
|
+ ["bash_completion/cloud-init"],
|
||||||
|
),
|
||||||
|
(USR + "/share/doc/cloud-init", [f for f in glob("doc/*") if is_f(f)]),
|
||||||
|
(
|
||||||
|
@@ -287,7 +308,8 @@ if not platform.system().endswith("BSD"):
|
||||||
|
ETC + "/NetworkManager/dispatcher.d/",
|
||||||
|
["tools/hook-network-manager"],
|
||||||
|
),
|
||||||
|
- ("/usr/lib/udev/rules.d", [f for f in glob("udev/*.rules")]),
|
||||||
|
+ (ETC + "/dhcp/dhclient-exit-hooks.d/", ["tools/hook-dhclient"]),
|
||||||
|
+ (LIB + "/udev/rules.d", [f for f in glob("udev/*.rules")]),
|
||||||
|
(
|
||||||
|
ETC + "/systemd/system/sshd-keygen@.service.d/",
|
||||||
|
["systemd/disable-sshd-keygen-if-cloud-init-active.conf"],
|
||||||
|
@@ -317,6 +339,8 @@ setuptools.setup(
|
||||||
|
scripts=["tools/cloud-init-per"],
|
||||||
|
license="Dual-licensed under GPLv3 or Apache 2.0",
|
||||||
|
data_files=data_files,
|
||||||
|
+ install_requires=requirements,
|
||||||
|
+ cmdclass=cmdclass,
|
||||||
|
entry_points={
|
||||||
|
"console_scripts": [
|
||||||
|
"cloud-init = cloudinit.cmd.main:main",
|
||||||
|
--
|
||||||
|
2.35.3
|
||||||
|
|
164
ci-Support-EC2-tags-in-instance-metadata-1309.patch
Normal file
164
ci-Support-EC2-tags-in-instance-metadata-1309.patch
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
From fbec3008305845072a787f46008bbb82d89dec53 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)
|
||||||
|
|
||||||
|
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-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
|
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||||
|
|
||||||
|
commit 40c52ce1f4049449b04f93226721f63af874c5c7
|
||||||
|
Author: Eduardo Dobay <edudobay@users.noreply.github.com>
|
||||||
|
Date: Wed Apr 6 01:28:01 2022 -0300
|
||||||
|
|
||||||
|
Support EC2 tags in instance metadata (#1309)
|
||||||
|
|
||||||
|
Add support for newer EC2 metadata versions (up to 2021-03-23), so that
|
||||||
|
tags can be retrieved from the `ds.meta_data.tags` field, as well as
|
||||||
|
with any new fields that might have been added since the 2018-09-24
|
||||||
|
version.
|
||||||
|
|
||||||
|
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
---
|
||||||
|
cloudinit/sources/DataSourceEc2.py | 5 +++--
|
||||||
|
doc/rtd/topics/datasources/ec2.rst | 28 ++++++++++++++++++++++------
|
||||||
|
tests/unittests/sources/test_ec2.py | 26 +++++++++++++++++++++++++-
|
||||||
|
tools/.github-cla-signers | 1 +
|
||||||
|
4 files changed, 51 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cloudinit/sources/DataSourceEc2.py b/cloudinit/sources/DataSourceEc2.py
|
||||||
|
index 03b3870c..a030b498 100644
|
||||||
|
--- a/cloudinit/sources/DataSourceEc2.py
|
||||||
|
+++ b/cloudinit/sources/DataSourceEc2.py
|
||||||
|
@@ -61,8 +61,9 @@ class DataSourceEc2(sources.DataSource):
|
||||||
|
min_metadata_version = "2009-04-04"
|
||||||
|
|
||||||
|
# Priority ordered list of additional metadata versions which will be tried
|
||||||
|
- # for extended metadata content. IPv6 support comes in 2016-09-02
|
||||||
|
- extended_metadata_versions = ["2018-09-24", "2016-09-02"]
|
||||||
|
+ # for extended metadata content. IPv6 support comes in 2016-09-02.
|
||||||
|
+ # Tags support comes in 2021-03-23.
|
||||||
|
+ extended_metadata_versions = ["2021-03-23", "2018-09-24", "2016-09-02"]
|
||||||
|
|
||||||
|
# Setup read_url parameters per get_url_params.
|
||||||
|
url_max_wait = 120
|
||||||
|
diff --git a/doc/rtd/topics/datasources/ec2.rst b/doc/rtd/topics/datasources/ec2.rst
|
||||||
|
index 94e4158d..77232269 100644
|
||||||
|
--- a/doc/rtd/topics/datasources/ec2.rst
|
||||||
|
+++ b/doc/rtd/topics/datasources/ec2.rst
|
||||||
|
@@ -38,11 +38,26 @@ Userdata is accessible via the following URL:
|
||||||
|
GET http://169.254.169.254/2009-04-04/user-data
|
||||||
|
1234,fred,reboot,true | 4512,jimbo, | 173,,,
|
||||||
|
|
||||||
|
-Note that there are multiple versions of this data provided, cloud-init
|
||||||
|
-by default uses **2009-04-04** but newer versions can be supported with
|
||||||
|
-relative ease (newer versions have more data exposed, while maintaining
|
||||||
|
-backward compatibility with the previous versions).
|
||||||
|
-Version **2016-09-02** is required for secondary IP address support.
|
||||||
|
+Note that there are multiple EC2 Metadata versions of this data provided
|
||||||
|
+to instances. cloud-init will attempt to use the most recent API version it
|
||||||
|
+supports in order to get latest API features and instance-data. If a given
|
||||||
|
+API version is not exposed to the instance, those API features will be
|
||||||
|
+unavailable to the instance.
|
||||||
|
+
|
||||||
|
+
|
||||||
|
++----------------+----------------------------------------------------------+
|
||||||
|
++ EC2 version | supported instance-data/feature |
|
||||||
|
++================+==========================================================+
|
||||||
|
++ **2021-03-23** | Required for Instance tag support. This feature must be |
|
||||||
|
+| | enabled individually on each instance. See the |
|
||||||
|
+| | `EC2 tags user guide`_. |
|
||||||
|
++----------------+----------------------------------------------------------+
|
||||||
|
+| **2016-09-02** | Required for secondary IP address support. |
|
||||||
|
++----------------+----------------------------------------------------------+
|
||||||
|
+| **2009-04-04** | Minimum supports EC2 API version for meta-data and |
|
||||||
|
+| | user-data. |
|
||||||
|
++----------------+----------------------------------------------------------+
|
||||||
|
+
|
||||||
|
|
||||||
|
To see which versions are supported from your cloud provider use the following
|
||||||
|
URL:
|
||||||
|
@@ -71,7 +86,7 @@ configuration (in `/etc/cloud/cloud.cfg` or `/etc/cloud/cloud.cfg.d/`).
|
||||||
|
|
||||||
|
The settings that may be configured are:
|
||||||
|
|
||||||
|
- * **metadata_urls**: This list of urls will be searched for an Ec2
|
||||||
|
+ * **metadata_urls**: This list of urls will be searched for an EC2
|
||||||
|
metadata service. The first entry that successfully returns a 200 response
|
||||||
|
for <url>/<version>/meta-data/instance-id will be selected.
|
||||||
|
(default: ['http://169.254.169.254', 'http://instance-data:8773']).
|
||||||
|
@@ -121,4 +136,5 @@ Notes
|
||||||
|
For example: the primary NIC will have a DHCP route-metric of 100,
|
||||||
|
the next NIC will be 200.
|
||||||
|
|
||||||
|
+.. _EC2 tags user guide: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#work-with-tags-in-IMDS
|
||||||
|
.. vi: textwidth=79
|
||||||
|
diff --git a/tests/unittests/sources/test_ec2.py b/tests/unittests/sources/test_ec2.py
|
||||||
|
index b376660d..7c8a5ea5 100644
|
||||||
|
--- a/tests/unittests/sources/test_ec2.py
|
||||||
|
+++ b/tests/unittests/sources/test_ec2.py
|
||||||
|
@@ -210,6 +210,17 @@ SECONDARY_IP_METADATA_2018_09_24 = {
|
||||||
|
|
||||||
|
M_PATH_NET = "cloudinit.sources.DataSourceEc2.net."
|
||||||
|
|
||||||
|
+TAGS_METADATA_2021_03_23 = {
|
||||||
|
+ **DEFAULT_METADATA,
|
||||||
|
+ "tags": {
|
||||||
|
+ "instance": {
|
||||||
|
+ "Environment": "production",
|
||||||
|
+ "Application": "test",
|
||||||
|
+ "TagWithoutValue": "",
|
||||||
|
+ }
|
||||||
|
+ },
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
|
||||||
|
def _register_ssh_keys(rfunc, base_url, keys_data):
|
||||||
|
"""handle ssh key inconsistencies.
|
||||||
|
@@ -670,7 +681,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
|
||||||
|
logs_with_redacted = [log for log in all_logs if REDACT_TOK in log]
|
||||||
|
logs_with_token = [log for log in all_logs if "API-TOKEN" in log]
|
||||||
|
self.assertEqual(1, len(logs_with_redacted_ttl))
|
||||||
|
- self.assertEqual(81, len(logs_with_redacted))
|
||||||
|
+ self.assertEqual(83, len(logs_with_redacted))
|
||||||
|
self.assertEqual(0, len(logs_with_token))
|
||||||
|
|
||||||
|
@mock.patch("cloudinit.net.dhcp.maybe_perform_dhcp_discovery")
|
||||||
|
@@ -811,6 +822,19 @@ class TestEc2(test_helpers.HttprettyTestCase):
|
||||||
|
)
|
||||||
|
self.assertIn("Crawl of metadata service took", self.logs.getvalue())
|
||||||
|
|
||||||
|
+ def test_get_instance_tags(self):
|
||||||
|
+ ds = self._setup_ds(
|
||||||
|
+ platform_data=self.valid_platform_data,
|
||||||
|
+ sys_cfg={"datasource": {"Ec2": {"strict_id": False}}},
|
||||||
|
+ md={"md": TAGS_METADATA_2021_03_23},
|
||||||
|
+ )
|
||||||
|
+ self.assertTrue(ds.get_data())
|
||||||
|
+ self.assertIn("tags", ds.metadata)
|
||||||
|
+ self.assertIn("instance", ds.metadata["tags"])
|
||||||
|
+ instance_tags = ds.metadata["tags"]["instance"]
|
||||||
|
+ self.assertEqual(instance_tags["Application"], "test")
|
||||||
|
+ self.assertEqual(instance_tags["Environment"], "production")
|
||||||
|
+
|
||||||
|
|
||||||
|
class TestGetSecondaryAddresses(test_helpers.CiTestCase):
|
||||||
|
|
||||||
|
diff --git a/tools/.github-cla-signers b/tools/.github-cla-signers
|
||||||
|
index ac157a2f..9f71ea0c 100644
|
||||||
|
--- a/tools/.github-cla-signers
|
||||||
|
+++ b/tools/.github-cla-signers
|
||||||
|
@@ -26,6 +26,7 @@ dermotbradley
|
||||||
|
dhensby
|
||||||
|
eandersson
|
||||||
|
eb3095
|
||||||
|
+edudobay
|
||||||
|
emmanuelthome
|
||||||
|
eslerm
|
||||||
|
esposem
|
||||||
|
--
|
||||||
|
2.27.0
|
||||||
|
|
110
ci-Use-Network-Manager-and-Netplan-as-default-renderers.patch
Normal file
110
ci-Use-Network-Manager-and-Netplan-as-default-renderers.patch
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
From 13ded463a6a0b1b0bf0dffc0a997f006dd25c4f3 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
|
||||||
|
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-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>
|
||||||
|
Date: Thu May 19 15:05:01 2022 +0200
|
||||||
|
|
||||||
|
Use Network-Manager and Netplan as default renderers for RHEL and Fedora (#1465)
|
||||||
|
|
||||||
|
This is adapted from Neal Gompa's PR:
|
||||||
|
https://github.com/canonical/cloud-init/pull/1435
|
||||||
|
|
||||||
|
The only difference is that we are not modifying renderers.py (thus
|
||||||
|
modifying the priority of all distros), but just tweaking cloud.cfg to
|
||||||
|
apply this change to Fedora and RHEL. Other distros can optionally
|
||||||
|
add themselves afterwards.
|
||||||
|
|
||||||
|
net: Prefer Netplan and NetworkManager renderers by default
|
||||||
|
|
||||||
|
NetworkManager is used by default on a variety of Linux distributions,
|
||||||
|
and exists as a cross-distribution network management service.
|
||||||
|
|
||||||
|
Additionally, add information about the NetworkManager renderer to
|
||||||
|
the cloud-init documentation.
|
||||||
|
|
||||||
|
Because Netplan can be explicitly used to manage NetworkManager,
|
||||||
|
it needs to be preferred before NetworkManager.
|
||||||
|
|
||||||
|
This change is a follow-up to #1224, which added the native
|
||||||
|
NetworkManager renderer.
|
||||||
|
This patch has been deployed on Fedora's cloud-init package throughout
|
||||||
|
the development of Fedora Linux 36 to verify that it works.
|
||||||
|
|
||||||
|
This should also make it tremendously easier for Linux distributions
|
||||||
|
to use cloud-init because now a standard configuration is supported
|
||||||
|
by default.
|
||||||
|
|
||||||
|
Signed-off-by: Neal Gompa <ngompa13@gmail.com>
|
||||||
|
|
||||||
|
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
|
||||||
|
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
---
|
||||||
|
config/cloud.cfg.tmpl | 3 +++
|
||||||
|
doc/rtd/topics/network-config.rst | 12 +++++++++++-
|
||||||
|
2 files changed, 14 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl
|
||||||
|
index fb4b456c..86beee3c 100644
|
||||||
|
--- a/config/cloud.cfg.tmpl
|
||||||
|
+++ b/config/cloud.cfg.tmpl
|
||||||
|
@@ -330,4 +330,7 @@ system_info:
|
||||||
|
{% elif variant in ["dragonfly"] %}
|
||||||
|
network:
|
||||||
|
renderers: ['freebsd']
|
||||||
|
+{% elif variant in ["rhel", "fedora"] %}
|
||||||
|
+ network:
|
||||||
|
+ renderers: ['netplan', 'network-manager', 'networkd', 'sysconfig', 'eni']
|
||||||
|
{% endif %}
|
||||||
|
diff --git a/doc/rtd/topics/network-config.rst b/doc/rtd/topics/network-config.rst
|
||||||
|
index c461a3fe..f503caab 100644
|
||||||
|
--- a/doc/rtd/topics/network-config.rst
|
||||||
|
+++ b/doc/rtd/topics/network-config.rst
|
||||||
|
@@ -188,6 +188,15 @@ generated configuration into an internal network configuration state. From
|
||||||
|
this state `Cloud-init`_ delegates rendering of the configuration to Distro
|
||||||
|
supported formats. The following ``renderers`` are supported in cloud-init:
|
||||||
|
|
||||||
|
+- **NetworkManager**
|
||||||
|
+
|
||||||
|
+`NetworkManager <https://networkmanager.dev>`_ is the standard Linux network
|
||||||
|
+configuration tool suite. It supports a wide range of networking setups.
|
||||||
|
+Configuration is typically stored in ``/etc/NetworkManager``.
|
||||||
|
+
|
||||||
|
+It is the default for a number of Linux distributions, notably Fedora;
|
||||||
|
+CentOS/RHEL; and derivatives.
|
||||||
|
+
|
||||||
|
- **ENI**
|
||||||
|
|
||||||
|
/etc/network/interfaces or ``ENI`` is supported by the ``ifupdown`` package
|
||||||
|
@@ -215,6 +224,7 @@ is as follows:
|
||||||
|
- ENI
|
||||||
|
- Sysconfig
|
||||||
|
- Netplan
|
||||||
|
+- NetworkManager
|
||||||
|
|
||||||
|
When applying the policy, `Cloud-init`_ checks if the current instance has the
|
||||||
|
correct binaries and paths to support the renderer. The first renderer that
|
||||||
|
@@ -223,7 +233,7 @@ supplying an updated configuration in cloud-config. ::
|
||||||
|
|
||||||
|
system_info:
|
||||||
|
network:
|
||||||
|
- renderers: ['netplan', 'eni', 'sysconfig', 'freebsd', 'netbsd', 'openbsd']
|
||||||
|
+ renderers: ['netplan', 'network-manager', 'eni', 'sysconfig', 'freebsd', 'netbsd', 'openbsd']
|
||||||
|
|
||||||
|
|
||||||
|
Network Configuration Tools
|
||||||
|
--
|
||||||
|
2.35.3
|
||||||
|
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
Name: cloud-init
|
Name: cloud-init
|
||||||
Version: 22.1
|
Version: 22.1
|
||||||
Release: 1%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: Cloud instance init scripts
|
Summary: Cloud instance init scripts
|
||||||
|
|
||||||
Group: System Environment/Base
|
Group: System Environment/Base
|
||||||
@ -21,6 +21,16 @@ Patch0003: 0003-limit-permissions-on-def_log_file.patch
|
|||||||
Patch0004: 0004-include-NOZEROCONF-yes-in-etc-sysconfig-network.patch
|
Patch0004: 0004-include-NOZEROCONF-yes-in-etc-sysconfig-network.patch
|
||||||
Patch0005: 0005-Remove-race-condition-between-cloud-init-and-Network.patch
|
Patch0005: 0005-Remove-race-condition-between-cloud-init-and-Network.patch
|
||||||
Patch0006: 0006-rhel-cloud.cfg-remove-ssh_genkeytypes-in-settings.py.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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
@ -96,8 +106,6 @@ sed -i -e 's|#!/usr/bin/env python|#!/usr/bin/env python3|' \
|
|||||||
%install
|
%install
|
||||||
%py3_install --
|
%py3_install --
|
||||||
|
|
||||||
python3 tools/render-cloudcfg --variant fedora > $RPM_BUILD_ROOT/%{_sysconfdir}/cloud/cloud.cfg
|
|
||||||
|
|
||||||
sed -i "s,@@PACKAGED_VERSION@@,%{version}-%{release}," $RPM_BUILD_ROOT/%{python3_sitelib}/cloudinit/version.py
|
sed -i "s,@@PACKAGED_VERSION@@,%{version}-%{release}," $RPM_BUILD_ROOT/%{python3_sitelib}/cloudinit/version.py
|
||||||
|
|
||||||
mkdir -p $RPM_BUILD_ROOT/var/lib/cloud
|
mkdir -p $RPM_BUILD_ROOT/var/lib/cloud
|
||||||
@ -107,9 +115,6 @@ mkdir -p $RPM_BUILD_ROOT/run/cloud-init
|
|||||||
mkdir -p $RPM_BUILD_ROOT/%{_tmpfilesdir}
|
mkdir -p $RPM_BUILD_ROOT/%{_tmpfilesdir}
|
||||||
cp -p %{SOURCE1} $RPM_BUILD_ROOT/%{_tmpfilesdir}/%{name}.conf
|
cp -p %{SOURCE1} $RPM_BUILD_ROOT/%{_tmpfilesdir}/%{name}.conf
|
||||||
|
|
||||||
# We supply our own config file since our software differs from Ubuntu's.
|
|
||||||
cp -p rhel/cloud.cfg $RPM_BUILD_ROOT/%{_sysconfdir}/cloud/cloud.cfg
|
|
||||||
|
|
||||||
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d
|
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d
|
||||||
cp -p tools/21-cloudinit.conf $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudinit.conf
|
cp -p tools/21-cloudinit.conf $RPM_BUILD_ROOT/%{_sysconfdir}/rsyslog.d/21-cloudinit.conf
|
||||||
|
|
||||||
@ -117,17 +122,10 @@ 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 \
|
mv $RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/hook-network-manager \
|
||||||
$RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/cloud-init-azure-hook
|
$RPM_BUILD_ROOT/etc/NetworkManager/dispatcher.d/cloud-init-azure-hook
|
||||||
|
|
||||||
# Install our own systemd units (rhbz#1440831)
|
|
||||||
mkdir -p $RPM_BUILD_ROOT%{_unitdir}
|
|
||||||
cp rhel/systemd/* $RPM_BUILD_ROOT%{_unitdir}/
|
|
||||||
|
|
||||||
[ ! -d $RPM_BUILD_ROOT/usr/lib/systemd/system-generators ] && mkdir -p $RPM_BUILD_ROOT/usr/lib/systemd/system-generators
|
[ ! -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
|
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
|
chmod 755 $RPM_BUILD_ROOT/usr/lib/systemd/system-generators/cloud-init-generator
|
||||||
|
|
||||||
[ ! -d $RPM_BUILD_ROOT/usr/lib/%{name} ] && mkdir -p $RPM_BUILD_ROOT/usr/lib/%{name}
|
|
||||||
cp -p tools/ds-identify $RPM_BUILD_ROOT%{_libexecdir}/%{name}/ds-identify
|
|
||||||
|
|
||||||
# installing man pages
|
# installing man pages
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man1/
|
mkdir -p ${RPM_BUILD_ROOT}%{_mandir}/man1/
|
||||||
for man in cloud-id.1 cloud-init.1 cloud-init-per.1; do
|
for man in cloud-id.1 cloud-init.1 cloud-init-per.1; do
|
||||||
@ -183,7 +181,6 @@ fi
|
|||||||
|
|
||||||
%files
|
%files
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%doc ChangeLog rhel/README.rhel
|
|
||||||
%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg
|
%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg
|
||||||
%dir %{_sysconfdir}/cloud/cloud.cfg.d
|
%dir %{_sysconfdir}/cloud/cloud.cfg.d
|
||||||
%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d/*.cfg
|
%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d/*.cfg
|
||||||
@ -193,6 +190,8 @@ fi
|
|||||||
%{_unitdir}/cloud-config.service
|
%{_unitdir}/cloud-config.service
|
||||||
%{_unitdir}/cloud-config.target
|
%{_unitdir}/cloud-config.target
|
||||||
%{_unitdir}/cloud-final.service
|
%{_unitdir}/cloud-final.service
|
||||||
|
%{_unitdir}/cloud-init-hotplugd.service
|
||||||
|
%{_unitdir}/cloud-init-hotplugd.socket
|
||||||
%{_unitdir}/cloud-init-local.service
|
%{_unitdir}/cloud-init-local.service
|
||||||
%{_unitdir}/cloud-init.service
|
%{_unitdir}/cloud-init.service
|
||||||
%{_unitdir}/cloud-init.target
|
%{_unitdir}/cloud-init.target
|
||||||
@ -205,10 +204,10 @@ fi
|
|||||||
%dir %verify(not mode) /run/cloud-init
|
%dir %verify(not mode) /run/cloud-init
|
||||||
%dir /var/lib/cloud
|
%dir /var/lib/cloud
|
||||||
/etc/NetworkManager/dispatcher.d/cloud-init-azure-hook
|
/etc/NetworkManager/dispatcher.d/cloud-init-azure-hook
|
||||||
%{_udevrulesdir}/66-azure-ephemeral.rules
|
/etc/dhcp/dhclient-exit-hooks.d/hook-dhclient
|
||||||
%{_sysconfdir}/bash_completion.d/cloud-init
|
/lib/udev/rules.d/66-azure-ephemeral.rules
|
||||||
|
%{_datadir}/bash-completion/completions/cloud-init
|
||||||
%{_bindir}/cloud-id
|
%{_bindir}/cloud-id
|
||||||
%{_libexecdir}/%{name}/ds-identify
|
|
||||||
/usr/lib/systemd/system-generators/cloud-init-generator
|
/usr/lib/systemd/system-generators/cloud-init-generator
|
||||||
%{_sysconfdir}/systemd/system/sshd-keygen@.service.d/disable-sshd-keygen-if-cloud-init-active.conf
|
%{_sysconfdir}/systemd/system/sshd-keygen@.service.d/disable-sshd-keygen-if-cloud-init-active.conf
|
||||||
|
|
||||||
@ -217,6 +216,21 @@ fi
|
|||||||
%config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf
|
%config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* 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
|
||||||
|
([cloud][init] Add support for reading tags from instance metadata)
|
||||||
|
|
||||||
|
* 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
|
||||||
|
(Align cloud.cfg file and systemd with cloud-init upstream .tmpl files)
|
||||||
|
|
||||||
* Mon Apr 25 2022 Amy Chen <xiachen@redhat.com> - 22.1-1
|
* Mon Apr 25 2022 Amy Chen <xiachen@redhat.com> - 22.1-1
|
||||||
- Rebaes to 22.1 [bz#2065544]
|
- Rebaes to 22.1 [bz#2065544]
|
||||||
- Resolves: bz#2065544
|
- Resolves: bz#2065544
|
||||||
|
Loading…
Reference in New Issue
Block a user