Commit 24dade8c authored by Mudassar Khan's avatar Mudassar Khan
Browse files

bug fix: playbook containerd error fix

parent 2336cf98
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
---
- name: Restart containerd
  systemd:
    name: containerd
    state: restarted
    enabled: true
  become: true
# Containerd handlers moved to docker role.
# This file is intentionally left empty.
+4 −57
Original line number Diff line number Diff line
---
- name: Ensure Docker repo exists for containerd
  import_role:
    name: docker
    tasks_from: repo.yml

- name: Ensure containerd is installed
  apt:
    name: containerd.io
    state: present
    update_cache: true
  become: true
  retries: 3
  delay: 10

- name: Check if containerd config already exists
  stat:
    path: "{{ containerd_config_path }}"
  register: containerd_config_stat

- name: Check if containerd config has CRI disabled (Docker default)
  shell: grep -q 'disabled_plugins.*cri' {{ containerd_config_path }}
  args:
    executable: /bin/bash
  register: cri_disabled_check
  failed_when: false
  changed_when: false

- name: Generate default containerd config (new install or CRI disabled)
  shell: containerd config default > {{ containerd_config_path }}
  args:
    executable: /bin/bash
  become: true
  when: not containerd_config_stat.stat.exists or cri_disabled_check.rc == 0
  notify: Restart containerd

- name: Ensure SystemdCgroup is true
  replace:
    path: "{{ containerd_config_path }}"
    regexp: 'SystemdCgroup\s*=\s*false'
    replace: 'SystemdCgroup = true'
  become: true
  notify: Restart containerd

- name: Update containerd sandbox image to latest pause version
  replace:
    path: "{{ containerd_config_path }}"
    regexp: 'sandbox_image = "registry.k8s.io/pause:3\.\d+"'
    replace: 'sandbox_image = "registry.k8s.io/pause:3.10"'
  become: true
  notify: Restart containerd

- name: Debug - Containerd setup completed
# Containerd configuration is now handled by the docker role (roles/docker/tasks/install.yml).
# This role is intentionally left empty.
- name: Containerd - handled by docker role
  debug:
    msg: |
      ✅ Containerd setup completed successfully:
      - Installed
      - Config generated
      - SystemdCgroup enabled
    msg: "Containerd configuration is managed as part of the Docker role."
+42 −2
Original line number Diff line number Diff line
@@ -64,12 +64,52 @@
    group: root
    mode: "0644"

- name: Debug - Docker setup completed
# --- Containerd configuration (post-Docker install) ---

- name: Generate default containerd config
  shell: containerd config default | tee /etc/containerd/config.toml
  args:
    executable: /bin/bash
  become: true

- name: Set SystemdCgroup to true in containerd config
  shell: |
    sed -i '/\[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options\]/,/^\s*\[/{s/^.*SystemdCgroup *= *.*/        SystemdCgroup = true/}' /etc/containerd/config.toml
  args:
    executable: /bin/bash
  become: true

- name: Set sandbox image to recommended version
  shell: |
    sed -i '/\[plugins."io.containerd.grpc.v1.cri"\]/,/^\s*\[/{s/^\(\s*\)sandbox_image *= *.*/\1sandbox_image = "registry.k8s.io\/pause:3.10"/}' /etc/containerd/config.toml
  args:
    executable: /bin/bash
  become: true

- name: Restart containerd
  systemd:
    name: containerd
    state: restarted
    enabled: true
  become: true

- name: Restart docker
  systemd:
    name: docker
    state: restarted
    enabled: true
  become: true

- name: Debug - Docker & Containerd setup completed
  debug:
    msg: |
      ✅ Docker setup completed successfully:
      ✅ Docker & Containerd setup completed successfully:
      - GPG key added
      - repo configured
      - engine & plugins installed
      - packages held
      - user {{ target_user }} added to Docker group
      - containerd config generated
      - SystemdCgroup enabled
      - sandbox image set to pause:3.10
      - containerd and docker restarted
+0 −1
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@
  roles:
    - common
    - kernel
    - containerd
    - docker
    - kubernetes/master
    - cni_calico