diff --git a/.gitlab-ci/molecule.yml b/.gitlab-ci/molecule.yml index 701bba4c1..36d5a53bf 100644 --- a/.gitlab-ci/molecule.yml +++ b/.gitlab-ci/molecule.yml @@ -37,7 +37,7 @@ molecule: - container-engine/cri-o - adduser - bastion-ssh-config - - bootstrap-os + - bootstrap_os molecule_full: allow_failure: true diff --git a/docs/ansible/ansible.md b/docs/ansible/ansible.md index f1dd88d96..9982957fe 100644 --- a/docs/ansible/ansible.md +++ b/docs/ansible/ansible.md @@ -62,7 +62,7 @@ The following tags are defined in playbooks: | aws-ebs-csi-driver | Configuring csi driver: aws-ebs | | azure-csi-driver | Configuring csi driver: azure | | bastion | Setup ssh config for bastion | -| bootstrap-os | Anything related to host OS configuration | +| bootstrap_os | Anything related to host OS configuration | | calico | Network plugin Calico | | calico_rr | Configuring Calico route reflector | | cert-manager | Configuring certificate manager for K8s | @@ -167,7 +167,7 @@ Example command to filter and apply only DNS configuration tasks and skip everything else related to host OS configuration and downloading images of containers: ```ShellSession -ansible-playbook -i inventory/sample/hosts.ini cluster.yml --tags preinstall,facts --skip-tags=download,bootstrap-os +ansible-playbook -i inventory/sample/hosts.ini cluster.yml --tags preinstall,facts --skip-tags=download,bootstrap_os ``` And this play only removes the K8s cluster DNS resolver IP from hosts' /etc/resolv.conf files: diff --git a/docs/operating_systems/bootstrap-os.md b/docs/operating_systems/bootstrap-os.md index fdda9eac6..4ad12d6bb 100644 --- a/docs/operating_systems/bootstrap-os.md +++ b/docs/operating_systems/bootstrap-os.md @@ -1,4 +1,4 @@ -# bootstrap-os +# bootstrap_os Bootstrap an Ansible host to be able to run Ansible modules. @@ -49,7 +49,7 @@ Remember to disable fact gathering since Python might not be present on hosts. gather_facts: false # not all hosts might be able to run modules yet roles: - kubespray_defaults - - bootstrap-os + - bootstrap_os ``` ## License diff --git a/extra_playbooks/upgrade-only-k8s.yml b/extra_playbooks/upgrade-only-k8s.yml index 1316cee10..ad0716922 100644 --- a/extra_playbooks/upgrade-only-k8s.yml +++ b/extra_playbooks/upgrade-only-k8s.yml @@ -22,12 +22,12 @@ any_errors_fatal: "{{ any_errors_fatal | default(true) }}" gather_facts: false vars: - # Need to disable pipelining for bootstrap-os as some systems have requiretty in sudoers set, which makes pipelining - # fail. bootstrap-os fixes this on these systems, so in later plays it can be enabled. + # Need to disable pipelining for bootstrap_os as some systems have requiretty in sudoers set, which makes pipelining + # fail. bootstrap_os fixes this on these systems, so in later plays it can be enabled. ansible_ssh_pipelining: false roles: - { role: kubespray_defaults} - - { role: bootstrap-os, tags: bootstrap-os} + - { role: bootstrap_os, tags: bootstrap_os} - name: Preinstall hosts: k8s_cluster:etcd:calico_rr diff --git a/playbooks/facts.yml b/playbooks/facts.yml index ebf74054b..9938c1900 100644 --- a/playbooks/facts.yml +++ b/playbooks/facts.yml @@ -6,7 +6,7 @@ gather_facts: false environment: "{{ proxy_disable_env }}" roles: - - { role: bootstrap-os, tags: bootstrap-os} + - { role: bootstrap_os, tags: bootstrap_os} - name: Gather facts hosts: k8s_cluster:etcd:calico_rr diff --git a/roles/bootstrap-os/tasks/main.yml b/roles/bootstrap-os/tasks/main.yml index 71620a461..f4d538507 100644 --- a/roles/bootstrap-os/tasks/main.yml +++ b/roles/bootstrap-os/tasks/main.yml @@ -1,62 +1,10 @@ --- -- name: Fetch /etc/os-release - raw: cat /etc/os-release - register: os_release - changed_when: false - # This command should always run, even in check mode - check_mode: false +- name: Warn for usage of deprecated role + fail: + msg: bootstrap-os is deprecated, switch to bootstrap_os + ignore_errors: true # noqa ignore-errors + run_once: true -- name: Include distro specifics vars and tasks - vars: - os_release_dict: "{{ os_release.stdout_lines | select('regex', '^.+=.*$') | map('regex_replace', '\"', '') | - map('split', '=') | community.general.dict }}" - block: - - name: Include vars - include_vars: "{{ item }}" - tags: - - facts - with_first_found: - - &search - files: - - "{{ os_release_dict['ID'] }}-{{ os_release_dict['VARIANT_ID'] }}.yml" - - "{{ os_release_dict['ID'] }}.yml" - paths: - - vars/ - skip: true - - name: Include tasks - include_tasks: "{{ included_tasks_file }}" - with_first_found: - - <<: *search - paths: [] - loop_control: - loop_var: included_tasks_file - -- name: Install system packages +- name: Compat for direct role import import_role: - name: system_packages - tags: - - system-packages - -- name: Create remote_tmp for it is used by another module - file: - path: "{{ ansible_remote_tmp | default('~/.ansible/tmp') }}" - state: directory - mode: "0700" - -- name: Gather facts - setup: - gather_subset: '!all' - filter: ansible_* - -- name: Assign inventory name to unconfigured hostnames (non-CoreOS, non-Flatcar, Suse and ClearLinux, non-Fedora) - hostname: - name: "{{ inventory_hostname }}" - when: override_system_hostname - -- name: Ensure bash_completion.d folder exists - file: - name: /etc/bash_completion.d/ - state: directory - owner: root - group: root - mode: "0755" + name: bootstrap_os diff --git a/roles/bootstrap-os/defaults/main.yml b/roles/bootstrap_os/defaults/main.yml similarity index 100% rename from roles/bootstrap-os/defaults/main.yml rename to roles/bootstrap_os/defaults/main.yml diff --git a/roles/bootstrap-os/files/bootstrap.sh b/roles/bootstrap_os/files/bootstrap.sh similarity index 100% rename from roles/bootstrap-os/files/bootstrap.sh rename to roles/bootstrap_os/files/bootstrap.sh diff --git a/roles/bootstrap-os/handlers/main.yml b/roles/bootstrap_os/handlers/main.yml similarity index 100% rename from roles/bootstrap-os/handlers/main.yml rename to roles/bootstrap_os/handlers/main.yml diff --git a/roles/bootstrap-os/meta/main.yml b/roles/bootstrap_os/meta/main.yml similarity index 100% rename from roles/bootstrap-os/meta/main.yml rename to roles/bootstrap_os/meta/main.yml diff --git a/roles/bootstrap-os/molecule/default/converge.yml b/roles/bootstrap_os/molecule/default/converge.yml similarity index 76% rename from roles/bootstrap-os/molecule/default/converge.yml rename to roles/bootstrap_os/molecule/default/converge.yml index 0463f64db..081ca84e0 100644 --- a/roles/bootstrap-os/molecule/default/converge.yml +++ b/roles/bootstrap_os/molecule/default/converge.yml @@ -4,4 +4,4 @@ gather_facts: false become: true roles: - - role: bootstrap-os + - role: bootstrap_os diff --git a/roles/bootstrap-os/molecule/default/molecule.yml b/roles/bootstrap_os/molecule/default/molecule.yml similarity index 100% rename from roles/bootstrap-os/molecule/default/molecule.yml rename to roles/bootstrap_os/molecule/default/molecule.yml diff --git a/roles/bootstrap-os/molecule/default/tests/test_default.py b/roles/bootstrap_os/molecule/default/tests/test_default.py similarity index 100% rename from roles/bootstrap-os/molecule/default/tests/test_default.py rename to roles/bootstrap_os/molecule/default/tests/test_default.py diff --git a/roles/bootstrap-os/tasks/amzn.yml b/roles/bootstrap_os/tasks/amzn.yml similarity index 100% rename from roles/bootstrap-os/tasks/amzn.yml rename to roles/bootstrap_os/tasks/amzn.yml diff --git a/roles/bootstrap-os/tasks/centos.yml b/roles/bootstrap_os/tasks/centos.yml similarity index 100% rename from roles/bootstrap-os/tasks/centos.yml rename to roles/bootstrap_os/tasks/centos.yml diff --git a/roles/bootstrap-os/tasks/clear-linux-os.yml b/roles/bootstrap_os/tasks/clear-linux-os.yml similarity index 100% rename from roles/bootstrap-os/tasks/clear-linux-os.yml rename to roles/bootstrap_os/tasks/clear-linux-os.yml diff --git a/roles/bootstrap-os/tasks/debian.yml b/roles/bootstrap_os/tasks/debian.yml similarity index 100% rename from roles/bootstrap-os/tasks/debian.yml rename to roles/bootstrap_os/tasks/debian.yml diff --git a/roles/bootstrap-os/tasks/fedora-coreos.yml b/roles/bootstrap_os/tasks/fedora-coreos.yml similarity index 100% rename from roles/bootstrap-os/tasks/fedora-coreos.yml rename to roles/bootstrap_os/tasks/fedora-coreos.yml diff --git a/roles/bootstrap-os/tasks/fedora.yml b/roles/bootstrap_os/tasks/fedora.yml similarity index 100% rename from roles/bootstrap-os/tasks/fedora.yml rename to roles/bootstrap_os/tasks/fedora.yml diff --git a/roles/bootstrap-os/tasks/flatcar.yml b/roles/bootstrap_os/tasks/flatcar.yml similarity index 100% rename from roles/bootstrap-os/tasks/flatcar.yml rename to roles/bootstrap_os/tasks/flatcar.yml diff --git a/roles/bootstrap_os/tasks/main.yml b/roles/bootstrap_os/tasks/main.yml new file mode 100644 index 000000000..71620a461 --- /dev/null +++ b/roles/bootstrap_os/tasks/main.yml @@ -0,0 +1,62 @@ +--- +- name: Fetch /etc/os-release + raw: cat /etc/os-release + register: os_release + changed_when: false + # This command should always run, even in check mode + check_mode: false + +- name: Include distro specifics vars and tasks + vars: + os_release_dict: "{{ os_release.stdout_lines | select('regex', '^.+=.*$') | map('regex_replace', '\"', '') | + map('split', '=') | community.general.dict }}" + block: + - name: Include vars + include_vars: "{{ item }}" + tags: + - facts + with_first_found: + - &search + files: + - "{{ os_release_dict['ID'] }}-{{ os_release_dict['VARIANT_ID'] }}.yml" + - "{{ os_release_dict['ID'] }}.yml" + paths: + - vars/ + skip: true + - name: Include tasks + include_tasks: "{{ included_tasks_file }}" + with_first_found: + - <<: *search + paths: [] + loop_control: + loop_var: included_tasks_file + +- name: Install system packages + import_role: + name: system_packages + tags: + - system-packages + +- name: Create remote_tmp for it is used by another module + file: + path: "{{ ansible_remote_tmp | default('~/.ansible/tmp') }}" + state: directory + mode: "0700" + +- name: Gather facts + setup: + gather_subset: '!all' + filter: ansible_* + +- name: Assign inventory name to unconfigured hostnames (non-CoreOS, non-Flatcar, Suse and ClearLinux, non-Fedora) + hostname: + name: "{{ inventory_hostname }}" + when: override_system_hostname + +- name: Ensure bash_completion.d folder exists + file: + name: /etc/bash_completion.d/ + state: directory + owner: root + group: root + mode: "0755" diff --git a/roles/bootstrap-os/tasks/openEuler.yml b/roles/bootstrap_os/tasks/openEuler.yml similarity index 100% rename from roles/bootstrap-os/tasks/openEuler.yml rename to roles/bootstrap_os/tasks/openEuler.yml diff --git a/roles/bootstrap-os/tasks/opensuse-leap.yml b/roles/bootstrap_os/tasks/opensuse-leap.yml similarity index 100% rename from roles/bootstrap-os/tasks/opensuse-leap.yml rename to roles/bootstrap_os/tasks/opensuse-leap.yml diff --git a/roles/bootstrap-os/tasks/opensuse-tumbleweed.yml b/roles/bootstrap_os/tasks/opensuse-tumbleweed.yml similarity index 100% rename from roles/bootstrap-os/tasks/opensuse-tumbleweed.yml rename to roles/bootstrap_os/tasks/opensuse-tumbleweed.yml diff --git a/roles/bootstrap-os/tasks/opensuse.yml b/roles/bootstrap_os/tasks/opensuse.yml similarity index 100% rename from roles/bootstrap-os/tasks/opensuse.yml rename to roles/bootstrap_os/tasks/opensuse.yml diff --git a/roles/bootstrap-os/tasks/rhel.yml b/roles/bootstrap_os/tasks/rhel.yml similarity index 100% rename from roles/bootstrap-os/tasks/rhel.yml rename to roles/bootstrap_os/tasks/rhel.yml diff --git a/roles/bootstrap-os/tasks/ubuntu.yml b/roles/bootstrap_os/tasks/ubuntu.yml similarity index 100% rename from roles/bootstrap-os/tasks/ubuntu.yml rename to roles/bootstrap_os/tasks/ubuntu.yml diff --git a/roles/bootstrap-os/vars/fedora-coreos.yml b/roles/bootstrap_os/vars/fedora-coreos.yml similarity index 100% rename from roles/bootstrap-os/vars/fedora-coreos.yml rename to roles/bootstrap_os/vars/fedora-coreos.yml diff --git a/roles/bootstrap-os/vars/flatcar.yml b/roles/bootstrap_os/vars/flatcar.yml similarity index 100% rename from roles/bootstrap-os/vars/flatcar.yml rename to roles/bootstrap_os/vars/flatcar.yml diff --git a/roles/container-engine/containerd/molecule/default/prepare.yml b/roles/container-engine/containerd/molecule/default/prepare.yml index ae7e54e08..6b8d07bea 100644 --- a/roles/container-engine/containerd/molecule/default/prepare.yml +++ b/roles/container-engine/containerd/molecule/default/prepare.yml @@ -7,7 +7,7 @@ ignore_assert_errors: true roles: - role: kubespray_defaults - - role: bootstrap-os + - role: bootstrap_os - role: network_facts - role: kubernetes/preinstall - role: adduser diff --git a/roles/container-engine/cri-dockerd/molecule/default/prepare.yml b/roles/container-engine/cri-dockerd/molecule/default/prepare.yml index a82f0e4d6..dc470a567 100644 --- a/roles/container-engine/cri-dockerd/molecule/default/prepare.yml +++ b/roles/container-engine/cri-dockerd/molecule/default/prepare.yml @@ -4,7 +4,7 @@ become: true roles: - role: kubespray_defaults - - role: bootstrap-os + - role: bootstrap_os - role: adduser user: "{{ addusers.kube }}" tasks: diff --git a/roles/container-engine/cri-o/molecule/default/prepare.yml b/roles/container-engine/cri-o/molecule/default/prepare.yml index 13120878d..6fa4d3d71 100644 --- a/roles/container-engine/cri-o/molecule/default/prepare.yml +++ b/roles/container-engine/cri-o/molecule/default/prepare.yml @@ -7,7 +7,7 @@ ignore_assert_errors: true roles: - role: kubespray_defaults - - role: bootstrap-os + - role: bootstrap_os - role: network_facts - role: kubernetes/preinstall - role: adduser diff --git a/roles/container-engine/gvisor/molecule/default/prepare.yml b/roles/container-engine/gvisor/molecule/default/prepare.yml index 3b8c64427..0dc4e4e35 100644 --- a/roles/container-engine/gvisor/molecule/default/prepare.yml +++ b/roles/container-engine/gvisor/molecule/default/prepare.yml @@ -4,7 +4,7 @@ become: true roles: - role: kubespray_defaults - - role: bootstrap-os + - role: bootstrap_os - role: adduser user: "{{ addusers.kube }}" tasks: diff --git a/roles/container-engine/kata-containers/molecule/default/prepare.yml b/roles/container-engine/kata-containers/molecule/default/prepare.yml index 4c45d0225..8578e092c 100644 --- a/roles/container-engine/kata-containers/molecule/default/prepare.yml +++ b/roles/container-engine/kata-containers/molecule/default/prepare.yml @@ -4,7 +4,7 @@ become: true roles: - role: kubespray_defaults - - role: bootstrap-os + - role: bootstrap_os - role: adduser user: "{{ addusers.kube }}" tasks: diff --git a/roles/container-engine/youki/molecule/default/prepare.yml b/roles/container-engine/youki/molecule/default/prepare.yml index be6c7faa5..e6272ca5d 100644 --- a/roles/container-engine/youki/molecule/default/prepare.yml +++ b/roles/container-engine/youki/molecule/default/prepare.yml @@ -4,7 +4,7 @@ become: true roles: - role: kubespray_defaults - - role: bootstrap-os + - role: bootstrap_os - role: adduser user: "{{ addusers.kube }}" tasks: diff --git a/roles/kubernetes/preinstall/tasks/0050-create_directories.yml b/roles/kubernetes/preinstall/tasks/0050-create_directories.yml index 7f1cdb5d3..d34028ad5 100644 --- a/roles/kubernetes/preinstall/tasks/0050-create_directories.yml +++ b/roles/kubernetes/preinstall/tasks/0050-create_directories.yml @@ -11,7 +11,7 @@ - kubelet - kube-controller-manager - kube-apiserver - - bootstrap-os + - bootstrap_os - apps - network - master # master tag is deprecated and replaced by control-plane @@ -35,7 +35,7 @@ - kubelet - kube-controller-manager - kube-apiserver - - bootstrap-os + - bootstrap_os - apps - network - master # master tag is deprecated and replaced by control-plane @@ -86,7 +86,7 @@ - weave - kube-ovn - kube-router - - bootstrap-os + - bootstrap_os - name: Create calico cni directories file: @@ -102,7 +102,7 @@ tags: - network - calico - - bootstrap-os + - bootstrap_os - name: Create local volume provisioner directories file: diff --git a/roles/kubernetes/preinstall/tasks/0080-system-configurations.yml b/roles/kubernetes/preinstall/tasks/0080-system-configurations.yml index 2d58fcc0a..f1f742c23 100644 --- a/roles/kubernetes/preinstall/tasks/0080-system-configurations.yml +++ b/roles/kubernetes/preinstall/tasks/0080-system-configurations.yml @@ -20,7 +20,7 @@ - "'Amazon' not in ansible_distribution" - slc.stat.exists tags: - - bootstrap-os + - bootstrap_os - name: Disable IPv6 DNS lookup lineinfile: @@ -34,7 +34,7 @@ - disable_ipv6_dns - not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] tags: - - bootstrap-os + - bootstrap_os - name: Clean previously used sysctl file locations file: @@ -52,7 +52,7 @@ get_mime: false register: sysctl_file_stat tags: - - bootstrap-os + - bootstrap_os - name: Change sysctl file path to link source if linked set_fact: @@ -61,7 +61,7 @@ - sysctl_file_stat.stat.islnk is defined - sysctl_file_stat.stat.islnk tags: - - bootstrap-os + - bootstrap_os - name: Make sure sysctl file path folder exists file: diff --git a/roles/kubernetes/preinstall/tasks/main.yml b/roles/kubernetes/preinstall/tasks/main.yml index 2341147ad..7179e3d57 100644 --- a/roles/kubernetes/preinstall/tasks/main.yml +++ b/roles/kubernetes/preinstall/tasks/main.yml @@ -32,7 +32,7 @@ - systemd_resolved_enabled.rc != 0 - networkmanager_enabled.rc != 0 tags: - - bootstrap-os + - bootstrap_os - resolvconf - name: Apply systemd-resolved settings @@ -42,7 +42,7 @@ - resolvconf_mode == 'host_resolvconf' - systemd_resolved_enabled.rc == 0 tags: - - bootstrap-os + - bootstrap_os - resolvconf - name: Apply networkmanager unmanaged devices settings @@ -50,7 +50,7 @@ when: - networkmanager_enabled.rc == 0 tags: - - bootstrap-os + - bootstrap_os - name: Apply networkmanager DNS settings import_tasks: 0063-networkmanager-dns.yml @@ -59,7 +59,7 @@ - resolvconf_mode == 'host_resolvconf' - networkmanager_enabled.rc == 0 tags: - - bootstrap-os + - bootstrap_os - resolvconf - name: Apply system configurations @@ -67,7 +67,7 @@ when: - not dns_late tags: - - bootstrap-os + - bootstrap_os - name: Configure NTP import_tasks: 0081-ntp-configurations.yml @@ -75,12 +75,12 @@ - not dns_late - ntp_enabled tags: - - bootstrap-os + - bootstrap_os - name: Configure /etc/hosts import_tasks: 0090-etchosts.yml tags: - - bootstrap-os + - bootstrap_os - etchosts - name: Configure dhclient @@ -91,7 +91,7 @@ - dhclientconffile is defined - not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] tags: - - bootstrap-os + - bootstrap_os - resolvconf - name: Configure dhclient dhclient hooks @@ -102,7 +102,7 @@ - dhclientconffile is defined - not ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] tags: - - bootstrap-os + - bootstrap_os - resolvconf # We need to make sure the network is restarted early enough so that docker can later pick up the correct system @@ -120,7 +120,7 @@ when: - not dns_late tags: - - bootstrap-os + - bootstrap_os - name: Run calico checks include_role: diff --git a/roles/system_packages/tasks/main.yml b/roles/system_packages/tasks/main.yml index ca8c73ef2..a380fdce3 100644 --- a/roles/system_packages/tasks/main.yml +++ b/roles/system_packages/tasks/main.yml @@ -13,14 +13,14 @@ delay: "{{ retry_stagger | random + 3 }}" when: - ansible_pkg_mgr == 'zypper' - tags: bootstrap-os + tags: bootstrap_os - name: Add debian 10 required repos when: - ansible_distribution == "Debian" - ansible_distribution_version == "10" tags: - - bootstrap-os + - bootstrap_os block: - name: Add Debian Backports apt repo apt_repository: @@ -44,7 +44,7 @@ cache_valid_time: 3600 when: ansible_os_family == "Debian" tags: - - bootstrap-os + - bootstrap_os - name: Remove legacy docker repo file file: @@ -63,7 +63,7 @@ - not is_fedora_coreos - epel_enabled | bool tags: - - bootstrap-os + - bootstrap_os - name: Install packages requirements package: @@ -75,4 +75,4 @@ delay: "{{ retry_stagger | random + 3 }}" when: not (ansible_os_family in ["Flatcar", "Flatcar Container Linux by Kinvolk"] or is_fedora_coreos) tags: - - bootstrap-os + - bootstrap_os