--- - name: Disable SWAP shell: | swapoff -a sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab - name: Mask swap.target to prevent swap after reboot systemd: name: swap.target masked: yes - name: Load kernel modules modprobe: name: "{{ item }}" state: present loop: "{{ k8s_kernel_modules }}" - name: Persist kernel modules across reboots copy: dest: /etc/modules-load.d/k8s.conf content: "{% for mod in k8s_kernel_modules %}{{ mod }}\n{% endfor %}" - name: Set sysctl parameters sysctl: name: "{{ item.name }}" value: "{{ item.value }}" state: present sysctl_file: /etc/sysctl.d/k8s.conf reload: yes loop: "{{ k8s_sysctl_params }}" - name: Install containerd & utils apt: name: "{{ k8s_required_packages }}" state: present update_cache: yes - name: Check if containerd is already configured stat: path: "{{ containerd_config_path }}" register: containerd_config - name: Generate default containerd config shell: | mkdir -p /etc/containerd containerd config default > {{ containerd_config_path }} when: not containerd_config.stat.exists notify: Restart Containerd - name: Enable systemdCgroup in containerd replace: path: "{{ containerd_config_path }}" regexp: "SystemdCgroup = false" replace: "SystemdCgroup = true" notify: Restart Containerd - name: Download K8s GPG key get_url: url: "{{ k8s_gpg_key_url }}" dest: "{{ k8s_gpg_keyring | regex_replace('.gpg$', '.asc') }}" mode: "0644" - name: Dearmor K8s GPG key shell: "gpg --dearmor -o {{ k8s_gpg_keyring }} {{ k8s_gpg_keyring | regex_replace('.gpg$', '.asc') }}" args: creates: "{{ k8s_gpg_keyring }}" - name: Add K8s repository apt_repository: repo: "{{ k8s_repo }}" state: present filename: kubernetes - name: Install K8s tools apt: name: "{{ k8s_packages | map('regex_replace', '$', '=' + k8s_package_version) | list }}" state: present update_cache: yes - name: Hold K8s packages at current version dpkg_selections: name: "{{ item }}" selection: hold loop: "{{ k8s_packages }}"