Pour attendre la fin d’un déploiement Kubernetes, on pourrait être tenté d’utiliser les options « wait » et « wait_conidition ». Cependant, ces options posent problème lorsque le playbook de déploiement est lancé plusieurs fois.
Afin de régler ce soucis, il suffit de rajouter une étape dans notre tâche comme suit (exemple de longhorn):
- name: Wait until longhorn is up
kubernetes.core.k8s_info:
kubeconfig: "{{ kubeconfig_file }}"
api_version: v1
kind: Pod
namespace: "{{ longhorn_namespace }}"
register: pod_list
until: pod_list|json_query('resources[*].status.phase')|unique == ["Running"]Langage du code : JavaScript (javascript)
Ainsi, tant que les pods du namespace ne sont pas tous en statut Running, la tâche ne poursuivra pas son cours.
Jespère que cela vous aura été utile !