diff options
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | cloudinit/config/cc_ntp.py | 13 | ||||
-rw-r--r-- | cloudinit/config/cc_yum_add_repo.py | 1 | ||||
-rw-r--r-- | cloudinit/distros/__init__.py | 1 | ||||
-rw-r--r-- | cloudinit/distros/openmandriva.py | 14 | ||||
-rw-r--r-- | cloudinit/net/sysconfig.py | 1 | ||||
-rw-r--r-- | cloudinit/util.py | 1 | ||||
-rw-r--r-- | config/cloud.cfg.tmpl | 15 | ||||
-rw-r--r-- | systemd/cloud-init-generator.tmpl | 2 | ||||
-rw-r--r-- | systemd/cloud-init.service.tmpl | 2 | ||||
-rw-r--r-- | tests/unittests/test_cli.py | 4 | ||||
-rw-r--r-- | tests/unittests/test_util.py | 27 | ||||
-rw-r--r-- | tools/.github-cla-signers | 1 | ||||
-rwxr-xr-x | tools/render-cloudcfg | 1 |
14 files changed, 75 insertions, 10 deletions
@@ -39,7 +39,7 @@ get in contact with that distribution and send them our way! | Supported OSes | Supported Public Clouds | Supported Private Clouds | | --- | --- | --- | -| Alpine Linux<br />ArchLinux<br />Debian<br />DragonFlyBSD<br />Fedora<br />FreeBSD<br />Gentoo Linux<br />NetBSD<br />OpenBSD<br />openEuler<br />RHEL/CentOS/AlmaLinux/Rocky/PhotonOS/Virtuozzo/EuroLinux/CloudLinux/MIRACLE LINUX<br />SLES/openSUSE<br />Ubuntu<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> | Amazon Web Services<br />Microsoft Azure<br />Google Cloud Platform<br />Oracle Cloud Infrastructure<br />Softlayer<br />Rackspace Public Cloud<br />IBM Cloud<br />DigitalOcean<br />Bigstep<br />Hetzner<br />Joyent<br />CloudSigma<br />Alibaba Cloud<br />OVH<br />OpenNebula<br />Exoscale<br />Scaleway<br />CloudStack<br />AltCloud<br />SmartOS<br />HyperOne<br />Vultr<br />Rootbox<br /> | Bare metal installs<br />OpenStack<br />LXD<br />KVM<br />Metal-as-a-Service (MAAS)<br />VMware<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />| +| Alpine Linux<br />ArchLinux<br />Debian<br />DragonFlyBSD<br />Fedora<br />FreeBSD<br />Gentoo Linux<br />NetBSD<br />OpenBSD<br />openEuler<br />OpenMandriva<br />RHEL/CentOS/AlmaLinux/Rocky/PhotonOS/Virtuozzo/EuroLinux/CloudLinux/MIRACLE LINUX<br />SLES/openSUSE<br />Ubuntu<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /> | Amazon Web Services<br />Microsoft Azure<br />Google Cloud Platform<br />Oracle Cloud Infrastructure<br />Softlayer<br />Rackspace Public Cloud<br />IBM Cloud<br />DigitalOcean<br />Bigstep<br />Hetzner<br />Joyent<br />CloudSigma<br />Alibaba Cloud<br />OVH<br />OpenNebula<br />Exoscale<br />Scaleway<br />CloudStack<br />AltCloud<br />SmartOS<br />HyperOne<br />Vultr<br />Rootbox<br /> | Bare metal installs<br />OpenStack<br />LXD<br />KVM<br />Metal-as-a-Service (MAAS)<br />VMware<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />| ## To start developing cloud-init diff --git a/cloudinit/config/cc_ntp.py b/cloudinit/config/cc_ntp.py index 3bc1d303..ef1c02ca 100644 --- a/cloudinit/config/cc_ntp.py +++ b/cloudinit/config/cc_ntp.py @@ -30,6 +30,7 @@ distros = [ "fedora", "miraclelinux", "openEuler", + "openmandriva", "opensuse", "photon", "rhel", @@ -92,6 +93,18 @@ DISTRO_CLIENT_CONFIG = { "confpath": "/etc/chrony/chrony.conf", }, }, + "openmandriva": { + "chrony": { + "service_name": "chronyd", + }, + "ntp": { + "confpath": "/etc/ntp.conf", + "service_name": "ntpd", + }, + "systemd-timesyncd": { + "check_exe": "/lib/systemd/systemd-timesyncd", + }, + }, "opensuse": { "chrony": { "service_name": "chronyd", diff --git a/cloudinit/config/cc_yum_add_repo.py b/cloudinit/config/cc_yum_add_repo.py index 1609e9c6..405207ad 100644 --- a/cloudinit/config/cc_yum_add_repo.py +++ b/cloudinit/config/cc_yum_add_repo.py @@ -29,6 +29,7 @@ distros = [ "eurolinux", "fedora", "openEuler", + "openmandriva", "photon", "rhel", "rocky", diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py index b034e2c8..9da5ac8b 100644 --- a/cloudinit/distros/__init__.py +++ b/cloudinit/distros/__init__.py @@ -47,6 +47,7 @@ OSFAMILIES = { "fedora", "miraclelinux", "openEuler", + "openmandriva", "photon", "rhel", "rocky", diff --git a/cloudinit/distros/openmandriva.py b/cloudinit/distros/openmandriva.py new file mode 100644 index 00000000..b4ba8439 --- /dev/null +++ b/cloudinit/distros/openmandriva.py @@ -0,0 +1,14 @@ +# Copyright (C) 2021 LinDev +# +# Author: Bernhard Rosenkraenzer <bero@lindev.ch> +# +# This file is part of cloud-init. See LICENSE file for license information. + +from cloudinit.distros import fedora + + +class Distro(fedora.Distro): + pass + + +# vi: ts=4 expandtab diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py index b80e25b5..698724ab 100644 --- a/cloudinit/net/sysconfig.py +++ b/cloudinit/net/sysconfig.py @@ -28,6 +28,7 @@ KNOWN_DISTROS = [ "fedora", "miraclelinux", "openEuler", + "openmandriva", "rhel", "rocky", "suse", diff --git a/cloudinit/util.py b/cloudinit/util.py index b35503b0..224b6b77 100644 --- a/cloudinit/util.py +++ b/cloudinit/util.py @@ -601,6 +601,7 @@ def _get_variant(info): "fedora", "miraclelinux", "openeuler", + "openmandriva", "photon", "rhel", "rocky", diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl index 707a050c..8c9b8398 100644 --- a/config/cloud.cfg.tmpl +++ b/config/cloud.cfg.tmpl @@ -33,7 +33,7 @@ disable_root: true {% endif %} {% if variant in ["almalinux", "alpine", "amazon", "centos", "cloudlinux", "eurolinux", - "fedora", "miraclelinux", "openEuler", "rhel", "rocky", "virtuozzo"] %} + "fedora", "miraclelinux", "openEuler", "openmandriva", "rhel", "rocky", "virtuozzo"] %} {% if variant == "rhel" %} mount_default_fields: [~, ~, 'auto', 'defaults,nofail,x-systemd.requires=cloud-init.service,_netdev', '0', '2'] {% else %} @@ -43,7 +43,7 @@ mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2'] resize_rootfs: noblock {% endif %} resize_rootfs_tmp: /dev -ssh_pwauth: 0 +ssh_pwauth: false {% endif %} # This will cause the set+update hostname module to not operate (if true) @@ -125,7 +125,7 @@ cloud_config_modules: {% if variant in ["rhel"] %} - rh_subscription {% endif %} -{% if variant in ["rhel", "fedora", "photon"] %} +{% if variant in ["rhel", "fedora", "openmandriva", "photon"] %} {% if variant not in ["photon"] %} - spacewalk {% endif %} @@ -192,7 +192,7 @@ system_info: # This will affect which distro class gets used {% if variant in ["almalinux", "alpine", "amazon", "arch", "centos", "cloudlinux", "debian", "eurolinux", "fedora", "freebsd", "gentoo", "netbsd", "miraclelinux", "openbsd", "openEuler", - "photon", "rhel", "rocky", "suse", "ubuntu", "virtuozzo"] %} + "openmandriva", "photon", "rhel", "rocky", "suse", "ubuntu", "virtuozzo"] %} distro: {{ variant }} {% elif variant in ["dragonfly"] %} distro: dragonflybsd @@ -245,7 +245,7 @@ system_info: security: http://ports.ubuntu.com/ubuntu-ports ssh_svcname: ssh {% elif variant in ["almalinux", "alpine", "amazon", "arch", "centos", "cloudlinux", "eurolinux", - "fedora", "gentoo", "miraclelinux", "openEuler", "rhel", "rocky", "suse", "virtuozzo"] %} + "fedora", "gentoo", "miraclelinux", "openEuler", "openmandriva", "rhel", "rocky", "suse", "virtuozzo"] %} # Default user name + that default users groups (if added/used) default_user: {% if variant == "amazon" %} @@ -271,6 +271,8 @@ system_info: groups: [adm, sudo] {% elif variant == "arch" %} groups: [wheel, users] +{% elif variant == "openmandriva" %} + groups: [wheel, users, systemd-journal] {% elif variant == "rhel" %} groups: [adm, systemd-journal] {% else %} @@ -352,4 +354,7 @@ system_info: {% elif variant in ["rhel", "fedora"] %} network: renderers: ['netplan', 'network-manager', 'networkd', 'sysconfig', 'eni'] +{% elif variant == "openmandriva" %} + network: + renderers: ['network-manager', 'networkd'] {% endif %} diff --git a/systemd/cloud-init-generator.tmpl b/systemd/cloud-init-generator.tmpl index 66893098..f8121e99 100644 --- a/systemd/cloud-init-generator.tmpl +++ b/systemd/cloud-init-generator.tmpl @@ -21,7 +21,7 @@ CLOUD_SYSTEM_TARGET="/usr/lib/systemd/system/cloud-init.target" CLOUD_SYSTEM_TARGET="/lib/systemd/system/cloud-init.target" {% endif %} {% if variant in ["almalinux", "centos", "cloudlinux", "eurolinux", "fedora", - "miraclelinux", "openEuler", "rhel", "rocky", "virtuozzo"] %} + "miraclelinux", "openEuler", "openmandriva", "rhel", "rocky", "virtuozzo"] %} dsidentify="/usr/libexec/cloud-init/ds-identify" {% else %} dsidentify="/usr/lib/cloud-init/ds-identify" diff --git a/systemd/cloud-init.service.tmpl b/systemd/cloud-init.service.tmpl index c170aef7..a9e180ee 100644 --- a/systemd/cloud-init.service.tmpl +++ b/systemd/cloud-init.service.tmpl @@ -13,7 +13,7 @@ After=systemd-networkd-wait-online.service After=networking.service {% endif %} {% if variant in ["almalinux", "centos", "cloudlinux", "eurolinux", "fedora", - "miraclelinux", "openEuler", "rhel", "rocky", "virtuozzo"] %} + "miraclelinux", "openEuler", "openmandriva", "rhel", "rocky", "virtuozzo"] %} After=network.service After=NetworkManager.service {% endif %} diff --git a/tests/unittests/test_cli.py b/tests/unittests/test_cli.py index e859aba4..9da0c469 100644 --- a/tests/unittests/test_cli.py +++ b/tests/unittests/test_cli.py @@ -260,8 +260,8 @@ class TestCLI(test_helpers.FilesystemMockingTestCase): "**Supported distros:** all", "**Supported distros:** almalinux, alpine, centos, " "cloudlinux, debian, eurolinux, fedora, miraclelinux, " - "openEuler, opensuse, photon, rhel, rocky, sles, ubuntu, " - "virtuozzo", + "openEuler, openmandriva, opensuse, photon, rhel, rocky, " + "sles, ubuntu, virtuozzo", "**Config schema**:\n **resize_rootfs:** " "(``true``/``false``/``noblock``)", "**Examples**::\n\n runcmd:\n - [ ls, -l, / ]\n", diff --git a/tests/unittests/test_util.py b/tests/unittests/test_util.py index 28cab205..c330b3c7 100644 --- a/tests/unittests/test_util.py +++ b/tests/unittests/test_util.py @@ -321,6 +321,25 @@ OS_RELEASE_PHOTON = """\ BUG_REPORT_URL="https://github.com/vmware/photon/issues" """ +OS_RELEASE_OPENMANDRIVA = dedent( + """\ + NAME="OpenMandriva Lx"\n + VERSION="4.90 (Nickel) Cooker"\n + ID="openmandriva"\n + VERSION_ID="4.90"\n + PRETTY_NAME="OpenMandriva Lx 4.90 (Nickel) Cooker"\n + BUILD_ID="20220606.19"\n + VERSION_CODENAME="nickel"\n + ANSI_COLOR="1;43"\n + LOGO="openmandriva"\n + CPE_NAME="cpe:/o:openmandriva:openmandriva_lx:4.90"\n + HOME_URL="http://openmandriva.org/"\n + BUG_REPORT_URL="http://issues.openmandriva.org/"\n + SUPPORT_URL="https://forum.openmandriva.org"\n + PRIVACY_POLICY_URL="https://www.openmandriva.org/tos"\n +""" +) + class FakeCloud(object): def __init__(self, hostname, fqdn): @@ -1025,6 +1044,14 @@ class TestGetLinuxDistro(CiTestCase): dist = util.get_linux_distro() self.assertEqual(("photon", "4.0", "VMware Photon OS/Linux"), dist) + @mock.patch(M_PATH + "load_file") + def test_get_linux_openmandriva(self, m_os_release, m_path_exists): + """Verify we get the correct name and machine arch on OpenMandriva""" + m_os_release.return_value = OS_RELEASE_OPENMANDRIVA + m_path_exists.side_effect = TestGetLinuxDistro.os_release_exists + dist = util.get_linux_distro() + self.assertEqual(("openmandriva", "4.90", "nickel"), dist) + @mock.patch("platform.system") @mock.patch("platform.dist", create=True) def test_get_linux_distro_no_data( diff --git a/tools/.github-cla-signers b/tools/.github-cla-signers index 7270be9d..bb0765d2 100644 --- a/tools/.github-cla-signers +++ b/tools/.github-cla-signers @@ -12,6 +12,7 @@ antonyc aswinrajamannar beantaxi beezly +berolinux bipinbachhao BirknerAlex bmhughes diff --git a/tools/render-cloudcfg b/tools/render-cloudcfg index 176df36b..eae83217 100755 --- a/tools/render-cloudcfg +++ b/tools/render-cloudcfg @@ -25,6 +25,7 @@ def main(): "netbsd", "openbsd", "openEuler", + "openmandriva", "photon", "rhel", "suse", |