You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

34 lines
1.2 KiB

  1. ---
  2. - name: "Kubernetes Apps | Lay Down Heketi"
  3. become: true
  4. template:
  5. src: "heketi-deployment.json.j2"
  6. dest: "{{ kube_config_dir }}/heketi-deployment.json"
  7. mode: "0644"
  8. register: "rendering"
  9. - name: "Kubernetes Apps | Install and configure Heketi"
  10. kube:
  11. name: "GlusterFS"
  12. kubectl: "{{ bin_dir }}/kubectl"
  13. filename: "{{ kube_config_dir }}/heketi-deployment.json"
  14. state: "{{ rendering.changed | ternary('latest', 'present') }}"
  15. - name: "Ensure heketi is up and running."
  16. changed_when: false
  17. register: "heketi_state"
  18. vars:
  19. heketi_state:
  20. stdout: "{}"
  21. pods_query: "items[?kind=='Pod'].status.conditions|[0][?type=='Ready'].status|[0]"
  22. deployments_query: "items[?kind=='Deployment'].status.conditions|[0][?type=='Available'].status|[0]"
  23. command: "{{ bin_dir }}/kubectl get deployments,pods --selector=glusterfs --output=json"
  24. until:
  25. - "heketi_state.stdout | from_json | json_query(pods_query) == 'True'"
  26. - "heketi_state.stdout | from_json | json_query(deployments_query) == 'True'"
  27. retries: 60
  28. delay: 5
  29. - name: Set the Heketi pod name
  30. set_fact:
  31. heketi_pod_name: "{{ heketi_state.stdout | from_json | json_query(\"items[?kind=='Pod'].metadata.name|[0]\") }}"