From 6aac59394e5d2801e4dcde71c393b73201a880ef Mon Sep 17 00:00:00 2001
From: Omar Aloraini <ooraini.dev@gmail.com>
Date: Tue, 19 Oct 2021 18:29:04 +0300
Subject: [PATCH] Rocky Linux support (#8095)

* Add Rocky as a known OS

* Make sure Rocky includes bootstrap-centos.yml

* Update docs with Rocky Linux

* Rocky Linux wireguard and EPEL

* Rocky Linux in the list of supported distributions
---
 README.md                                                  | 1 +
 docs/_sidebar.md                                           | 2 +-
 docs/bootstrap-os.md                                       | 2 +-
 docs/calico.md                                             | 1 +
 docs/centos8.md                                            | 2 +-
 docs/offline-environment.md                                | 2 +-
 roles/bootstrap-os/tasks/main.yml                          | 2 +-
 roles/container-engine/containerd/tasks/main.yml           | 2 +-
 roles/kubernetes/preinstall/tasks/0020-verify-settings.yml | 2 +-
 9 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index b7402c740..92cce7fe6 100644
--- a/README.md
+++ b/README.md
@@ -123,6 +123,7 @@ vagrant up
 - **openSUSE** Leap 15.x/Tumbleweed
 - **Oracle Linux** 7, [8](docs/centos8.md)
 - **Alma Linux** [8](docs/centos8.md)
+- **Rocky Linux** [8](docs/centos8.md)
 - **Amazon Linux 2** (experimental: see [amazon linux notes](docs/amazonlinux.md))
 
 Note: Upstart/SysV init based OS types are not supported.
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
index f2085c9b8..225ef035e 100644
--- a/docs/_sidebar.md
+++ b/docs/_sidebar.md
@@ -35,7 +35,7 @@
   * [Fedora CoreOS](docs/fcos.md)
   * [OpenSUSE](docs/opensuse.md)
   * [RedHat Enterprise Linux](docs/rhel.md)
-  * [CentOS/OracleLinux/AlmaLinux](docs/centos8.md)
+  * [CentOS/OracleLinux/AlmaLinux/Rocky Linux](docs/centos8.md)
   * [Amazon Linux 2](docs/amazonlinux.md)
 * CRI
   * [Containerd](docs/containerd.md)
diff --git a/docs/bootstrap-os.md b/docs/bootstrap-os.md
index ae14a1a00..c9f4ffd54 100644
--- a/docs/bootstrap-os.md
+++ b/docs/bootstrap-os.md
@@ -35,7 +35,7 @@ Variables are listed with their default values, if applicable.
 * `coreos_locksmithd_disable: false`
   Whether `locksmithd` (responsible for rolling restarts) should be disabled or be left alone.
 
-#### CentOS/RHEL/AlmaLinux
+#### CentOS/RHEL/AlmaLinux/Rocky Linux
 
 * `centos_fastestmirror_enabled: false`
   Whether the [fastestmirror](https://wiki.centos.org/PackageManagement/Yum/FastestMirror) yum plugin should be enabled.
diff --git a/docs/calico.md b/docs/calico.md
index c1fa53d02..be63d2ce4 100644
--- a/docs/calico.md
+++ b/docs/calico.md
@@ -369,6 +369,7 @@ The following OSes will require enabling the EPEL repo in order to bring in wire
 
 * CentOS 7 & 8
 * AlmaLinux 8
+* Rocky Linux 8
 * Amazon Linux 2
 
 ```yaml
diff --git a/docs/centos8.md b/docs/centos8.md
index 32afb22f9..c72fa7178 100644
--- a/docs/centos8.md
+++ b/docs/centos8.md
@@ -1,6 +1,6 @@
 # CentOS 8 and derivatives
 
-CentOS 8 / Oracle Linux 8 / AlmaLinux 8 ship only with iptables-nft (ie without iptables-legacy similar to RHEL8)
+CentOS 8 / Oracle Linux 8 / AlmaLinux 8 / Rocky Linux 8 ship only with iptables-nft (ie without iptables-legacy similar to RHEL8)
 The only tested configuration for now is using Calico CNI
 You need to add `calico_iptables_backend: "NFT"` or `calico_iptables_backend: "Auto"` to your configuration.
 
diff --git a/docs/offline-environment.md b/docs/offline-environment.md
index 5e86b5667..09e92eaf6 100644
--- a/docs/offline-environment.md
+++ b/docs/offline-environment.md
@@ -31,7 +31,7 @@ calicoctl_download_url: "{{ files_repo }}/kubernetes/calico/{{ calico_ctl_versio
 # If using Calico with kdd
 calico_crds_download_url: "{{ files_repo }}/kubernetes/calico/{{ calico_version }}.tar.gz"
 
-# CentOS/Redhat/AlmaLinux
+# CentOS/Redhat/AlmaLinux/Rocky Linux
 ## Docker / Containerd
 docker_rh_repo_base_url: "{{ yum_repo }}/docker-ce/$releasever/$basearch"
 docker_rh_repo_gpgkey: "{{ yum_repo }}/docker-ce/gpg"
diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml
index 982a3afa4..9771bf315 100644
--- a/roles/bootstrap-os/tasks/main.yml
+++ b/roles/bootstrap-os/tasks/main.yml
@@ -7,7 +7,7 @@
   check_mode: false
 
 - include_tasks: bootstrap-centos.yml
-  when: '''ID="centos"'' in os_release.stdout_lines or ''ID="ol"'' in os_release.stdout_lines or ''ID="almalinux"'' in os_release.stdout_lines'
+  when: '''ID="centos"'' in os_release.stdout_lines or ''ID="ol"'' in os_release.stdout_lines or ''ID="almalinux"'' in os_release.stdout_lines or ''ID="rocky"'' in os_release.stdout_lines'
 
 - include_tasks: bootstrap-amazon.yml
   when: '''ID="amzn"'' in os_release.stdout_lines'
diff --git a/roles/container-engine/containerd/tasks/main.yml b/roles/container-engine/containerd/tasks/main.yml
index cf8aee6b5..a7479199c 100644
--- a/roles/container-engine/containerd/tasks/main.yml
+++ b/roles/container-engine/containerd/tasks/main.yml
@@ -15,7 +15,7 @@
   fail:
     msg: "{{ ansible_distribution }} is not supported by containerd."
   when:
-    - not ansible_distribution in ["CentOS", "OracleLinux", "RedHat", "Ubuntu", "Debian", "Fedora", "AlmaLinux", "Amazon", "Flatcar", "Flatcar Container Linux by Kinvolk"]
+    - not ansible_distribution in ["CentOS", "OracleLinux", "RedHat", "Ubuntu", "Debian", "Fedora", "AlmaLinux", "Rocky", "Amazon", "Flatcar", "Flatcar Container Linux by Kinvolk"]
 
 - name: gather os specific variables
   include_vars: "{{ item }}"
diff --git a/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml b/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
index a3707ca85..6b666ba06 100644
--- a/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
+++ b/roles/kubernetes/preinstall/tasks/0020-verify-settings.yml
@@ -24,7 +24,7 @@
 
 - name: Stop if unknown OS
   assert:
-    that: ansible_distribution in ['RedHat', 'CentOS', 'Fedora', 'Ubuntu', 'Debian', 'Flatcar', 'Flatcar Container Linux by Kinvolk', 'Suse', 'openSUSE Leap', 'ClearLinux', 'OracleLinux', 'AlmaLinux', 'Amazon']
+    that: ansible_distribution in ['RedHat', 'CentOS', 'Fedora', 'Ubuntu', 'Debian', 'Flatcar', 'Flatcar Container Linux by Kinvolk', 'Suse', 'openSUSE Leap', 'ClearLinux', 'OracleLinux', 'AlmaLinux', 'Rocky', 'Amazon']
     msg: "{{ ansible_distribution }} is not a known OS"
   when: not ignore_assert_errors
 
-- 
GitLab