helm.yml 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. ---
  2. # helm uses some undecipherable configmaps, so we need to use the binary
  3. - name: helm chart check
  4. ansible.builtin.command:
  5. argv:
  6. - /usr/bin/env
  7. - KUBECONFIG={{ ansible_facts['user_dir'] }}/kubeconfig-{{ cluster }}
  8. - /usr/local/bin/helm
  9. - -n
  10. - stackrox
  11. - list
  12. - -o
  13. - json
  14. - --filter
  15. - stackrox.*services
  16. chdir: "{{ ansible_facts['user_dir'] }}"
  17. register: helm_chart_status
  18. - name: assert chart isn't there
  19. set_fact:
  20. helm_chart_present: false
  21. - name: unless proven otherwise
  22. set_fact:
  23. helm_chart_present: true
  24. when:
  25. - helm_chart_status.stdout | from_json | list | length > 0
  26. - (helm_chart_status.stdout | from_json | list)[0].status == "deployed"
  27. - name: create helm vars
  28. template:
  29. src: templates/helm-vars.yml
  30. dest: "{{ ansible_facts['user_dir'] }}/{{ clusters[cluster].name }}-helm-vars.yaml"
  31. mode: 0600
  32. owner: "{{ ansible_user }}"
  33. group: "{{ ansible_user }}"
  34. when:
  35. - not helm_chart_present
  36. - name: check the repo
  37. ansible.builtin.command:
  38. argv:
  39. - /usr/bin/env
  40. - KUBECONFIG={{ ansible_facts['user_dir'] }}/kubeconfig-{{ cluster }}
  41. - /usr/local/bin/helm
  42. - repo
  43. - list
  44. - -o
  45. - json
  46. chdir: "{{ ansible_facts['user_dir'] }}"
  47. ignore_errors: yes
  48. register: repo_is_there
  49. - name: add the repo
  50. ansible.builtin.command:
  51. argv:
  52. - /usr/bin/env
  53. - KUBECONFIG={{ ansible_facts['user_dir'] }}/kubeconfig-{{ cluster }}
  54. - /usr/local/bin/helm
  55. - repo
  56. - add
  57. - rhacs
  58. - https://mirror.openshift.com/pub/rhacs/charts/
  59. chdir: "{{ ansible_facts['user_dir'] }}"
  60. when: repo_is_there.failed or (repo_is_there.stdout | from_json | list | length) == 0
  61. - name: apply helm chart
  62. ansible.builtin.command:
  63. argv:
  64. - /usr/bin/env
  65. - KUBECONFIG={{ ansible_facts['user_dir'] }}/kubeconfig-{{ cluster }}
  66. - /usr/local/bin/helm
  67. - install
  68. - -n
  69. - stackrox
  70. - --create-namespace
  71. - stackrox-secured-cluster-services
  72. - rhacs/secured-cluster-services
  73. - -f
  74. - "{{ ansible_facts['user_dir'] }}/{{ clusters[cluster].name }}-helm-bundle.yaml"
  75. - -f
  76. - "{{ ansible_facts['user_dir'] }}/{{ clusters[cluster].name }}-helm-vars.yaml"
  77. chdir: "{{ ansible_facts['user_dir'] }}"
  78. when:
  79. - not helm_chart_present
  80. ...