- name: Install containerd ansible.builtin.apt: name: containerd state: present update_cache: true - name: Read containerd's default configuration ansible.builtin.command: containerd config default register: containerd_default changed_when: false check_mode: false failed_when: containerd_default.rc != 0 and not ansible_check_mode - name: Write containerd configuration with systemd cgroups ansible.builtin.copy: dest: /etc/containerd/config.toml content: "{{ containerd_default.stdout | replace('SystemdCgroup = false', 'SystemdCgroup = true') }}\n" mode: "0644" when: containerd_default.stdout | length > 0 notify: Restart containerd - name: Point crictl at containerd ansible.builtin.copy: dest: /etc/crictl.yaml content: | runtime-endpoint: unix:///run/containerd/containerd.sock image-endpoint: unix:///run/containerd/containerd.sock mode: "0644" - name: Create the apt keyrings directory ansible.builtin.file: path: /etc/apt/keyrings state: directory mode: "0755" - name: Add the Kubernetes signing key ansible.builtin.get_url: url: "https://pkgs.k8s.io/core:/stable:/v{{ k8s_minor_version }}/deb/Release.key" dest: /etc/apt/keyrings/kubernetes.asc mode: "0644" - name: Add the Kubernetes package repository ansible.builtin.copy: dest: /etc/apt/sources.list.d/kubernetes.list content: "deb [signed-by=/etc/apt/keyrings/kubernetes.asc] https://pkgs.k8s.io/core:/stable:/v{{ k8s_minor_version }}/deb/ /\n" mode: "0644" - name: Install kubeadm, kubelet and kubectl ansible.builtin.apt: name: - kubeadm - kubelet - kubectl - cri-tools state: present update_cache: true - name: Hold the Kubernetes packages at their version ansible.builtin.dpkg_selections: name: "{{ item }}" selection: hold loop: - kubeadm - kubelet - kubectl - name: Enable the kubelet ansible.builtin.service: name: kubelet enabled: true