init-bundles.yml 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. ---
  2. - name: init bundle check
  3. uri:
  4. method: GET
  5. return_content: true
  6. validate_certs: false
  7. url: "https://{{ api_ep }}/v1/cluster-init/init-bundles"
  8. headers:
  9. Authorization: Bearer {{ api_token }}
  10. Accept: application/json
  11. register: init_bundle_response
  12. - name: assume init bundle isn't there
  13. set_fact:
  14. init_bundle_present: false
  15. - name: unless found
  16. set_fact:
  17. init_bundle_present: true
  18. when:
  19. - init_bundle_response.json['items'] | length > 0
  20. - (init_bundle_response.json['items'] | items2dict(key_name='name', value_name='expiresAt'))[clusters[cluster].name] is defined
  21. - name: generate init bundle
  22. uri:
  23. method: POST
  24. return_content: true
  25. validate_certs: false
  26. url: "https://{{ api_ep }}/v1/cluster-init/init-bundles"
  27. headers:
  28. Authorization: Bearer {{ api_token }}
  29. Accept: application/json
  30. Content-Type: application/json
  31. body: '{"name":"{{ clusters[cluster].name | string }}"}'
  32. register: init_bundle_content
  33. when:
  34. - not init_bundle_present
  35. - name: store init bundle - operator
  36. copy:
  37. dest: "{{ ansible_facts['user_dir'] }}/{{ cluster }}-init-bundle.yaml"
  38. content: "{{ init_bundle_content.json.kubectlBundle | b64decode }}"
  39. owner: "{{ ansible_user }}"
  40. group: "{{ ansible_user }}"
  41. mode: 0600
  42. when:
  43. - not init_bundle_present
  44. - clusters[cluster].method == 'operator'
  45. - name: store init bundle - helm
  46. copy:
  47. dest: "{{ ansible_facts['user_dir'] }}/{{ cluster }}-helm-bundle.yaml"
  48. content: "{{ init_bundle_content.json.helmValuesBundle | b64decode }}"
  49. owner: "{{ ansible_user }}"
  50. group: "{{ ansible_user }}"
  51. mode: 0600
  52. when:
  53. - not init_bundle_present
  54. - clusters[cluster].method == 'helm'
  55. - name: make sure namespace is there
  56. kubernetes.core.k8s:
  57. kubeconfig: "{{ ansible_facts['user_dir'] }}/kubeconfig-{{ cluster }}"
  58. validate_certs: no
  59. api_version: v1
  60. kind: Namespace
  61. name: "{{ clusters[cluster].namespace }}"
  62. namespace: ""
  63. state: present
  64. - name: create init bundle
  65. kubernetes.core.k8s:
  66. kubeconfig: "{{ ansible_facts['user_dir'] }}/kubeconfig-{{ cluster }}"
  67. validate_certs: no
  68. src: "{{ ansible_facts['user_dir'] }}/{{ cluster }}-init-bundle.yaml"
  69. namespace: "{{ clusters[cluster].namespace }}"
  70. when:
  71. - clusters[cluster].method == 'operator'
  72. ...