Blog CP2i Ansible,Automatisation,Kubernetes Rollout restart d’un deployment avec Ansible

Rollout restart d’un deployment avec Ansible

Dans ce billet, nous aborderons une méthode pour opérer un rollout restart avec Ansible.

Pour ce faire, nous allons jouer avec les annotations du deployment pour y ajouter un clé « restartedAt » avec la date du jour en valeur.

Voici le module en question:

- name: Patch coredns configmap to handle the DNS server
  delegate_to: localhost
  run_once: true
  kubernetes.core.k8s:
    kubeconfig: "/etc/rancher/rke2/rke2.yaml"
    namespace: kube-system
    template:
      path: rke2-coredns.yml.j2
  register: coredns_change_dns

- name: Patch coredns deploy to force restart
  delegate_to: localhost
  run_once: true
  kubernetes.core.k8s:
    kubeconfig: "/etc/rancher/rke2/rke2.yaml"
    state: patched
    kind: Deployment
    namespace: kube-system
    name: rke2-coredns
    definition:
      spec:
        template:
          metadata:
            annotations:
              kubectl.kubernetes.io/restartedAt: "{{ now(fmt='%Y-%m-%dT%H:%M:%SZ') }}"
  when: coredns_change_dns.changed

Nous utilisons donc ici le state patched du kubernetes.core.k8s pour générer une erreur dans le cas où le deployment n’existerait pas.

Et voilà, votre deployment redémarrera quand la configuration sera changée à l’étape précédente.

Répondre

En lien avec cet article