containerized_tasks.yml 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. ---
  2. - name: Verify cluster is healthy pre-upgrade
  3. command: "etcdctl --cert-file /etc/etcd/peer.crt --key-file /etc/etcd/peer.key --ca-file /etc/etcd/ca.crt -C https://{{ openshift.common.hostname }}:2379 cluster-health"
  4. - name: Get current image
  5. shell: grep 'ExecStart=' /etc/systemd/system/etcd_container.service | awk '{print $NF}'
  6. register: current_image
  7. - name: Set new_etcd_image
  8. set_fact:
  9. new_etcd_image: "{{ current_image.stdout | regex_replace('/etcd.*$','/etcd:' ~ upgrade_version ) }}"
  10. - name: Pull new etcd image
  11. command: "docker pull {{ new_etcd_image }}"
  12. - name: Update to latest etcd image
  13. replace:
  14. dest: /etc/systemd/system/etcd_container.service
  15. regexp: "{{ current_image.stdout }}$"
  16. replace: "{{ new_etcd_image }}"
  17. - name: Restart etcd_container
  18. systemd:
  19. name: etcd_container
  20. daemon_reload: yes
  21. state: restarted
  22. ## TODO: probably should just move this into the backup playbooks, also this
  23. ## will fail on atomic host. We need to revisit how to do etcd backups there as
  24. ## the container may be newer than etcdctl on the host. Assumes etcd3 obsoletes etcd (7.3.1)
  25. - name: Upgrade etcd for etcdctl when not atomic
  26. package: name=etcd state=latest
  27. when: not openshift.common.is_atomic | bool
  28. - name: Verify cluster is healthy
  29. command: "etcdctl --cert-file /etc/etcd/peer.crt --key-file /etc/etcd/peer.key --ca-file /etc/etcd/ca.crt -C https://{{ openshift.common.hostname }}:2379 cluster-health"
  30. register: etcdctl
  31. until: etcdctl.rc == 0
  32. retries: 3
  33. delay: 10
  34. - name: Store new etcd_image
  35. openshift_facts:
  36. role: etcd
  37. local_facts:
  38. etcd_image: "{{ new_etcd_image }}"