Attendre la fin d’un deploiement K8s avec Ansible

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"]

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 !

Comments

No comments yet. Why don’t you start the discussion?

Laisser un commentaire