check-and-wait.yml 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. - name: Update OnecloudCluster Only
  2. environment:
  3. KUBECONFIG: "{{ ENV_KUBECONFIG }}"
  4. shell: |
  5. pkill -9 ocadm || :
  6. /opt/yunion/bin/ocadm cluster update --operator-version {{ upgrade_onecloud_version }} \
  7. --version {{ upgrade_onecloud_version }} \
  8. --image-repository {{ image_repository | default('registry.cn-beijing.aliyuncs.com/yunion')}} \
  9. --operator-only \
  10. --wait
  11. become: yes
  12. args:
  13. executable: /bin/bash
  14. retries: 3
  15. delay: 30
  16. delegate_to: "{{ k8s_controlplane_host }}"
  17. run_once: true
  18. - name: Apply new images and restart deployment
  19. environment:
  20. KUBECONFIG: "{{ ENV_KUBECONFIG }}"
  21. shell: |
  22. {{image_item}}
  23. cmd="$(echo "{{image_item}}" | sed -e 's#set image#rollout restart deployments#' -e 's# deployment/# #' -e 's#[a-zA-Z0-9-]*=.*##g')"
  24. $cmd || :
  25. with_items:
  26. - "{{ oc_deployment_images.stdout_lines | list }}"
  27. loop_control:
  28. index_var: item_index
  29. label: "[{{ (item_index + 1) }} of {{ oc_deployment_images.stdout_lines | length }}]"
  30. loop_var: image_item
  31. args:
  32. executable: /bin/bash
  33. register: apply_deployment_images
  34. when:
  35. - oc_deployment_images.stdout_lines | length > 0
  36. delegate_to: "{{ k8s_controlplane_host }}"
  37. run_once: true
  38. - name: Wait until all pods running
  39. include_tasks: "wait-for-all-pods-running.yml"
  40. - name: Check remaining images for at {{ current_oc_version.stdout }}
  41. environment:
  42. KUBECONFIG: "{{ ENV_KUBECONFIG }}"
  43. shell: |
  44. {{ K3S_CMDLINE_PREFIX }} kubectl describe pods -n onecloud |grep -i image: |grep '{{ current_oc_version.stdout }}' | grep -Pv 'host|region-dns|sdnagent' |sort -u |wc -l
  45. delegate_to: "{{ k8s_controlplane_host }}"
  46. run_once: true
  47. register: remaining_images
  48. - name: Set remaining
  49. set_fact:
  50. remaining_imgs_count: "{{ remaining_images.stdout }}"
  51. - debug: var=remaining_imgs_count
  52. run_once: true