From c6758fe544c43c84472811a00888b5cd28712a6f Mon Sep 17 00:00:00 2001
From: Max Gautier <mg@max.gautier.name>
Date: Thu, 28 Mar 2024 22:17:52 +0000
Subject: [PATCH] Cleanup of kubernetes/preinstall (#11010)

* Move fedora ansible python install to bootstrap-os

* /bin/dir is set in bootstrap-os

* Removing ansible_os_family workarounds

Support for these distributions was merged in Ansible, no need to
override it ourselves now.
https://github.com/ansible/ansible/pull/69324 openEuler
https://github.com/ansible/ansible/pull/77275/ UnionTech OS Server 20
https://github.com/ansible/ansible/pull/78232/ Kylin

* Don't unconditionnaly set VARIANT_ID=coreos in os-release

WTF, this is so wrong.
Furthermore, is_fedora_coreos is already handled in boostrap-os

* Handle Clearlinux generically

Followup of 4eec302e869955a000732caf5fb482283c960ac5 (since we're using
package module anyway, let's get rid of the custom task)
---
 roles/bootstrap-os/tasks/fedora.yml           | 14 +++-----
 roles/kubernetes/preinstall/defaults/main.yml |  6 ----
 .../preinstall/tasks/0020-set_facts.yml       | 35 -------------------
 .../preinstall/tasks/0070-system-packages.yml | 24 +------------
 4 files changed, 5 insertions(+), 74 deletions(-)

diff --git a/roles/bootstrap-os/tasks/fedora.yml b/roles/bootstrap-os/tasks/fedora.yml
index 4ce77b44a..85f8ff563 100644
--- a/roles/bootstrap-os/tasks/fedora.yml
+++ b/roles/bootstrap-os/tasks/fedora.yml
@@ -21,16 +21,10 @@
   become: true
   when: not skip_http_proxy_on_os_packages
 
-- name: Install python3 on fedora
-  raw: "dnf install --assumeyes --quiet python3"
-  become: true
-  when:
-    - need_bootstrap.rc != 0
-
 # libselinux-python3 is required on SELinux enabled hosts
 # See https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#managed-node-requirements
-- name: Install libselinux-python3
-  package:
-    name: libselinux-python3
-    state: present
+- name: Install ansible requirements
+  raw: "dnf install --assumeyes python3 python3-dnf libselinux-python3"
   become: true
+  when:
+    - need_bootstrap.rc != 0
diff --git a/roles/kubernetes/preinstall/defaults/main.yml b/roles/kubernetes/preinstall/defaults/main.yml
index eb33ed3db..8ab2c9aa1 100644
--- a/roles/kubernetes/preinstall/defaults/main.yml
+++ b/roles/kubernetes/preinstall/defaults/main.yml
@@ -135,15 +135,9 @@ supported_os_distributions:
 
 # Extending some distributions into the redhat os family
 redhat_os_family_extensions:
-  - "Kylin Linux Advanced Server"
-  - "openEuler"
   - "UnionTech"
   - "UniontechOS"
 
-# Extending some distributions into the debian os family
-debian_os_family_extensions:
-  - "UnionTech OS Server 20"
-
 # Sets DNSStubListener=no, useful if you get "0.0.0.0:53: bind: address already in use"
 systemd_resolved_disable_stub_listener: "{{ ansible_os_family in ['Flatcar', 'Flatcar Container Linux by Kinvolk'] }}"
 
diff --git a/roles/kubernetes/preinstall/tasks/0020-set_facts.yml b/roles/kubernetes/preinstall/tasks/0020-set_facts.yml
index e68f56837..fa7fba113 100644
--- a/roles/kubernetes/preinstall/tasks/0020-set_facts.yml
+++ b/roles/kubernetes/preinstall/tasks/0020-set_facts.yml
@@ -1,11 +1,4 @@
 ---
-- name: Force binaries directory for Flatcar Container Linux by Kinvolk
-  set_fact:
-    bin_dir: "/opt/bin"
-  when: ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"]
-  tags:
-    - facts
-
 - name: Set os_family fact for other redhat-based operating systems
   set_fact:
     ansible_os_family: "RedHat"
@@ -14,34 +7,6 @@
   tags:
     - facts
 
-- name: Set os_family fact for other debian-based operating systems
-  set_fact:
-    ansible_os_family: "Debian"
-  when: ansible_distribution in debian_os_family_extensions
-  tags:
-    - facts
-
-- name: Check if booted with ostree
-  stat:
-    path: /run/ostree-booted
-    get_attributes: no
-    get_checksum: no
-    get_mime: no
-  register: ostree
-
-- name: Set is_fedora_coreos
-  lineinfile:
-    path: /etc/os-release
-    line: "VARIANT_ID=coreos"
-    state: present
-  check_mode: yes
-  register: os_variant_coreos
-  changed_when: false
-
-- name: Set is_fedora_coreos
-  set_fact:
-    is_fedora_coreos: "{{ ostree.stat.exists and os_variant_coreos is not changed }}"
-
 - name: Check resolvconf
   command: which resolvconf
   register: resolvconf
diff --git a/roles/kubernetes/preinstall/tasks/0070-system-packages.yml b/roles/kubernetes/preinstall/tasks/0070-system-packages.yml
index ccfb4900e..8d02a8575 100644
--- a/roles/kubernetes/preinstall/tasks/0070-system-packages.yml
+++ b/roles/kubernetes/preinstall/tasks/0070-system-packages.yml
@@ -48,20 +48,6 @@
     - ansible_os_family == "RedHat"
     - not is_fedora_coreos
 
-- name: Install python3-dnf for latest RedHat versions
-  command: dnf install -y python3-dnf
-  register: dnf_task_result
-  until: dnf_task_result is succeeded
-  retries: 4
-  delay: "{{ retry_stagger | random + 3 }}"
-  when:
-    - ansible_distribution == "Fedora"
-    - ansible_distribution_major_version | int >= 30
-    - not is_fedora_coreos
-  changed_when: False
-  tags:
-    - bootstrap-os
-
 - name: Install epel-release on RHEL derivatives
   package:
     name: epel-release
@@ -86,14 +72,6 @@
   until: pkgs_task_result is succeeded
   retries: "{{ pkg_install_retries }}"
   delay: "{{ retry_stagger | random + 3 }}"
-  when: not (ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk", "ClearLinux"] or is_fedora_coreos)
+  when: not (ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] or is_fedora_coreos)
   tags:
     - bootstrap-os
-
-- name: Install ipvsadm for ClearLinux
-  package:
-    name: ipvsadm
-    state: present
-  when:
-    - ansible_os_family in ["ClearLinux"]
-    - kube_proxy_mode == 'ipvs'
-- 
GitLab