From c8645f01569f7905218f1f8089ed947069c9bdcc Mon Sep 17 00:00:00 2001 From: Ciprian Hacman Date: Tue, 26 Apr 2022 09:32:29 +0300 Subject: [PATCH] Add support for Rocky Linux 8 ... as an alternative to CentOS 8, after its deprecation and removal. --- upup/pkg/fi/nodeup/nodetasks/package.go | 2 +- util/pkg/distributions/distributions.go | 3 +++ util/pkg/distributions/identify.go | 3 +++ util/pkg/distributions/identify_test.go | 5 +++++ util/pkg/distributions/tests/rocky8/etc/os-release | 13 +++++++++++++ 5 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 util/pkg/distributions/tests/rocky8/etc/os-release diff --git a/upup/pkg/fi/nodeup/nodetasks/package.go b/upup/pkg/fi/nodeup/nodetasks/package.go index 4ea593a7f1..87ae2ff621 100644 --- a/upup/pkg/fi/nodeup/nodetasks/package.go +++ b/upup/pkg/fi/nodeup/nodetasks/package.go @@ -333,7 +333,7 @@ func (_ *Package) RenderLocal(t *local.LocalTarget, a, e, changes *Package) erro args = []string{"apt-get", "install", "--yes", "--no-install-recommends"} env = append(env, "DEBIAN_FRONTEND=noninteractive") } else if d.IsRHELFamily() { - if d == distributions.DistributionRhel8 { + if d == distributions.DistributionRhel8 || d == distributions.DistributionRocky8 { args = []string{"/usr/bin/dnf", "install", "-y", "--setopt=install_weak_deps=False"} } else { args = []string{"/usr/bin/yum", "install", "-y"} diff --git a/util/pkg/distributions/distributions.go b/util/pkg/distributions/distributions.go index 6e96332505..ab3a2302e3 100644 --- a/util/pkg/distributions/distributions.go +++ b/util/pkg/distributions/distributions.go @@ -47,6 +47,7 @@ var ( DistributionUbuntu2204 = Distribution{packageFormat: "deb", project: "ubuntu", id: "jammy", version: 22.04} DistributionAmazonLinux2 = Distribution{packageFormat: "rpm", project: "amazonlinux2", id: "amazonlinux2", version: 0} DistributionRhel8 = Distribution{packageFormat: "rpm", project: "rhel", id: "rhel8", version: 8} + DistributionRocky8 = Distribution{packageFormat: "rpm", project: "rocky", id: "rocky8", version: 8} DistributionFlatcar = Distribution{packageFormat: "", project: "flatcar", id: "flatcar", version: 0} DistributionContainerOS = Distribution{packageFormat: "", project: "containeros", id: "containeros", version: 0} ) @@ -82,6 +83,8 @@ func (d *Distribution) DefaultUsers() ([]string, error) { return []string{"centos"}, nil case "rhel", "amazonlinux2": return []string{"ec2-user"}, nil + case "rocky": + return []string{"rocky"}, nil case "flatcar": return []string{"core"}, nil default: diff --git a/util/pkg/distributions/identify.go b/util/pkg/distributions/identify.go index 12dea6b87f..105733fd17 100644 --- a/util/pkg/distributions/identify.go +++ b/util/pkg/distributions/identify.go @@ -78,6 +78,9 @@ func FindDistribution(rootfs string) (Distribution, error) { if strings.HasPrefix(distro, "rhel-8.") { return DistributionRhel8, nil } + if strings.HasPrefix(distro, "rocky-8.") { + return DistributionRocky8, nil + } // Some distros are not supported klog.V(2).Infof("Contents of /etc/os-release:\n%s", osReleaseBytes) diff --git a/util/pkg/distributions/identify_test.go b/util/pkg/distributions/identify_test.go index 87d1b70c2b..b8bb906d90 100644 --- a/util/pkg/distributions/identify_test.go +++ b/util/pkg/distributions/identify_test.go @@ -89,6 +89,11 @@ func TestFindDistribution(t *testing.T) { err: nil, expected: DistributionRhel8, }, + { + rootfs: "rocky8", + err: nil, + expected: DistributionRocky8, + }, { rootfs: "ubuntu1604", err: fmt.Errorf("unsupported distro: ubuntu-16.04"), diff --git a/util/pkg/distributions/tests/rocky8/etc/os-release b/util/pkg/distributions/tests/rocky8/etc/os-release new file mode 100644 index 0000000000..04c3f9a65d --- /dev/null +++ b/util/pkg/distributions/tests/rocky8/etc/os-release @@ -0,0 +1,13 @@ +NAME="Rocky Linux" +VERSION="8.5 (Green Obsidian)" +ID="rocky" +ID_LIKE="rhel centos fedora" +VERSION_ID="8.5" +PLATFORM_ID="platform:el8" +PRETTY_NAME="Rocky Linux 8.5 (Green Obsidian)" +ANSI_COLOR="0;32" +CPE_NAME="cpe:/o:rocky:rocky:8.5:GA" +HOME_URL="https://rockylinux.org/" +BUG_REPORT_URL="https://bugs.rockylinux.org/" +ROCKY_SUPPORT_PRODUCT="Rocky Linux" +ROCKY_SUPPORT_PRODUCT_VERSION="8"