diff --git a/README.md b/README.md index 1c353ba..83bd7a6 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ The host you're running Ansible from requires the following Python dependencies: This role has been tested on Ansible 2.7.0+ against the following Linux Distributions: - Amazon Linux 2 + - Archlinux - CentOS 8 - CentOS 7 - Debian 9 diff --git a/defaults/main.yml b/defaults/main.yml index 640696a..56821a0 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,6 +1,6 @@ --- -# k3s cluster state, options: installed, started, stopped, restarted +# k3s cluster state, options: installed, started, stopped, restarted, uninstalled # (default: installed) k3s_cluster_state: installed diff --git a/tasks/build/install-docker-archlinux.yml b/tasks/build/install-docker-archlinux.yml new file mode 100644 index 0000000..5f72243 --- /dev/null +++ b/tasks/build/install-docker-archlinux.yml @@ -0,0 +1,15 @@ +--- + +- name: Ensure docker is installed using Pacman + pacman: + name: docker + state: present + register: ensure_docker_prerequisites_installed + until: ensure_docker_prerequisites_installed is succeeded + retries: 3 + delay: 10 + notify: + - restart docker + become: "{{ k3s_become_for_package_install | ternary(true, false, k3s_become_for_all) }}" + +- meta: flush_handlers diff --git a/tasks/build/install-docker-prerequisites-archlinux.yml b/tasks/build/install-docker-prerequisites-archlinux.yml new file mode 100644 index 0000000..ed97d53 --- /dev/null +++ b/tasks/build/install-docker-prerequisites-archlinux.yml @@ -0,0 +1 @@ +--- diff --git a/tasks/state-installed.yml b/tasks/state-installed.yml index a51174a..d8c0dde 100644 --- a/tasks/state-installed.yml +++ b/tasks/state-installed.yml @@ -23,12 +23,12 @@ - import_tasks: build/install-docker.yml when: k3s_use_docker - and ansible_distribution | replace(" ", "-") | lower not in ['amazon', 'suse', 'opensuse-leap'] + and ansible_distribution | replace(" ", "-") | lower not in ['amazon', 'suse', 'opensuse-leap', 'archlinux'] and (k3s_non_root is not defined or not k3s_non_root) - include_tasks: build/install-docker-{{ ansible_distribution | replace(" ", "-") | lower }}.yml when: k3s_use_docker - and ansible_distribution | replace(" ", "-") | lower in ['amazon', 'suse', 'opensuse-leap'] + and ansible_distribution | replace(" ", "-") | lower in ['amazon', 'suse', 'opensuse-leap', 'archlinux'] and (k3s_non_root is not defined or not k3s_non_root) - import_tasks: build/download-k3s.yml diff --git a/tasks/state-uninstalled.yml b/tasks/state-uninstalled.yml index b7d962c..30033cf 100644 --- a/tasks/state-uninstalled.yml +++ b/tasks/state-uninstalled.yml @@ -8,12 +8,12 @@ - import_tasks: teardown/uninstall-docker.yml when: k3s_use_docker - and ansible_distribution | replace(" ", "-") | lower not in ['amazon', 'suse', 'opensuse-leap'] + and ansible_distribution | replace(" ", "-") | lower not in ['amazon', 'suse', 'opensuse-leap', 'archlinux'] and (k3s_non_root is not defined or not k3s_non_root) - include_tasks: teardown/uninstall-docker-{{ ansible_distribution | replace(" ", "-") | lower }}.yml when: k3s_use_docker - and ansible_distribution | replace(" ", "-") | lower in ['amazon', 'suse', 'opensuse-leap'] + and ansible_distribution | replace(" ", "-") | lower in ['amazon', 'suse', 'opensuse-leap', 'archlinux'] and (k3s_non_root is not defined or not k3s_non_root) - include_tasks: teardown/uninstall-docker-prerequisites-{{ ansible_os_family | lower }}.yml diff --git a/tasks/teardown/drain-and-remove-nodes.yml b/tasks/teardown/drain-and-remove-nodes.yml index f6407b0..f6f12df 100644 --- a/tasks/teardown/drain-and-remove-nodes.yml +++ b/tasks/teardown/drain-and-remove-nodes.yml @@ -19,7 +19,7 @@ become: "{{ k3s_become_for_kubectl | ternary(true, false, k3s_become_for_all) }}" - name: Ensure uninstalled nodes are drained - command: "{{ k3s_install_dir }}/kubectl drain {{ item }} --ignore-daemonsets" + command: "{{ k3s_install_dir }}/kubectl drain {{ item }} --ignore-daemonsets --delete-local-data" delegate_to: "{{ k3s_control_delegate }}" run_once: true when: item in kubectl_get_nodes_result.stdout diff --git a/tasks/teardown/uninstall-docker-archlinux.yml b/tasks/teardown/uninstall-docker-archlinux.yml new file mode 100644 index 0000000..2dd97fc --- /dev/null +++ b/tasks/teardown/uninstall-docker-archlinux.yml @@ -0,0 +1,11 @@ +--- + +- name: Ensure docker is uninstalled using Pacman + pacman: + name: docker + state: absent + register: ensure_docker_uninstalled + until: ensure_docker_uninstalled is succeeded + retries: 3 + delay: 10 + become: "{{ k3s_become_for_uninstall | ternary(true, false, k3s_become_for_all) }}"