You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.6 KiB

  1. ---
  2. - name: "Pre-upgrade | check if kubelet container exists"
  3. shell: >-
  4. set -o pipefail &&
  5. {% if container_manager in ['crio', 'docker'] %}
  6. {{ docker_bin_dir }}/docker ps -af name=kubelet | grep kubelet
  7. {% elif container_manager == 'containerd' %}
  8. {{ bin_dir }}/crictl ps --all --name kubelet | grep kubelet
  9. {% endif %}
  10. args:
  11. executable: /bin/bash
  12. failed_when: false
  13. changed_when: false
  14. register: kubelet_container_check
  15. - name: "Pre-upgrade | copy /var/lib/cni from kubelet"
  16. command: >-
  17. {% if container_manager in ['crio', 'docker'] %}
  18. docker cp kubelet:/var/lib/cni /var/lib/cni
  19. {% elif container_manager == 'containerd' %}
  20. ctr run --rm --mount type=bind,src=/var/lib/cni,dst=/cnilibdir,options=rbind:rw kubelet kubelet-tmp sh -c 'cp /var/lib/cni/* /cnilibdir/'
  21. {% endif %}
  22. args:
  23. creates: "/var/lib/cni"
  24. failed_when: false
  25. when: kubelet_container_check.rc == 0
  26. - name: "Pre-upgrade | ensure kubelet container service is stopped if using host deployment"
  27. service:
  28. name: kubelet
  29. state: stopped
  30. when: kubelet_container_check.rc == 0
  31. - name: "Pre-upgrade | ensure kubelet container is removed if using host deployment"
  32. shell: >-
  33. {% if container_manager in ['crio', 'docker'] %}
  34. {{ docker_bin_dir }}/docker rm -fv kubelet
  35. {% elif container_manager == 'containerd' %}
  36. {{ bin_dir }}/crictl stop kubelet && {{ bin_dir }}/crictl rm kubelet
  37. {% endif %}
  38. failed_when: false
  39. changed_when: false
  40. register: remove_kubelet_container
  41. retries: 4
  42. until: remove_kubelet_container.rc == 0
  43. delay: 5
  44. when: kubelet_container_check.rc == 0