76 lines
2.3 KiB
YAML
76 lines
2.3 KiB
YAML
- block:
|
|
|
|
- name: Install argo-cd chart
|
|
kubernetes.core.helm:
|
|
name: argo-cd
|
|
chart_ref: /opt/metacluster/helm-charts/argo-cd
|
|
release_namespace: argo-cd
|
|
create_namespace: true
|
|
wait: false
|
|
kubeconfig: "{{ kubeconfig.path }}"
|
|
values: "{{ components['argo-cd'].chart_values }}"
|
|
|
|
- name: Ensure argo-cd API availability
|
|
ansible.builtin.uri:
|
|
url: https://gitops.{{ vapp['metacluster.fqdn'] }}/api/version
|
|
method: GET
|
|
register: api_readycheck
|
|
until:
|
|
- api_readycheck.json.Version is defined
|
|
retries: "{{ playbook.retries }}"
|
|
delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}"
|
|
|
|
- name: Generate argo-cd API token
|
|
ansible.builtin.uri:
|
|
url: https://gitops.{{ vapp['metacluster.fqdn'] }}/api/v1/session
|
|
method: POST
|
|
force_basic_auth: yes
|
|
body:
|
|
username: admin
|
|
password: "{{ vapp['metacluster.password'] }}"
|
|
register: argocd_api_token
|
|
|
|
- name: Configure metacluster-gitops repository
|
|
ansible.builtin.template:
|
|
src: gitrepo.j2
|
|
dest: /var/lib/rancher/k3s/server/manifests/{{ _template.name }}-manifest.yaml
|
|
owner: root
|
|
group: root
|
|
mode: 0600
|
|
vars:
|
|
_template:
|
|
name: gitrepo-mc-gitopsconfig
|
|
namespace: argo-cd
|
|
url: https://git.{{ vapp['metacluster.fqdn'] }}/mc/GitOps.Config.git
|
|
notify:
|
|
- Apply manifests
|
|
|
|
- name: Create applicationset
|
|
ansible.builtin.template:
|
|
src: applicationset.j2
|
|
dest: /var/lib/rancher/k3s/server/manifests/{{ _template.application.name }}-manifest.yaml
|
|
owner: root
|
|
group: root
|
|
mode: 0600
|
|
vars:
|
|
_template:
|
|
application:
|
|
name: applicationset-metacluster
|
|
namespace: argo-cd
|
|
cluster:
|
|
url: https://kubernetes.default.svc
|
|
repository:
|
|
url: https://git.{{ vapp['metacluster.fqdn'] }}/mc/GitOps.Config.git
|
|
revision: main
|
|
notify:
|
|
- Apply manifests
|
|
|
|
- name: Trigger handlers
|
|
ansible.builtin.meta: flush_handlers
|
|
|
|
module_defaults:
|
|
ansible.builtin.uri:
|
|
validate_certs: no
|
|
status_code: [200, 201]
|
|
body_format: json
|