51 lines
1.8 KiB
YAML
51 lines
1.8 KiB
YAML
- block:
|
|
|
|
- name: Install harbor chart
|
|
kubernetes.core.helm:
|
|
name: harbor
|
|
chart_ref: /opt/metacluster/helm-charts/harbor
|
|
release_namespace: harbor
|
|
create_namespace: true
|
|
wait: false
|
|
kubeconfig: "{{ kubeconfig.path }}"
|
|
values: "{{ components['harbor'].chart_values }}"
|
|
|
|
- name: Ensure harbor API availability
|
|
ansible.builtin.uri:
|
|
url: https://registry.{{ vapp['metacluster.fqdn'] }}/api/v2.0/health
|
|
method: GET
|
|
register: api_readycheck
|
|
until:
|
|
- api_readycheck.json.status is defined
|
|
- api_readycheck.json.status == 'healthy'
|
|
retries: "{{ playbook.retries }}"
|
|
delay: "{{ (storage_benchmark | int) * (playbook.delay.long | int) }}"
|
|
|
|
- name: Push images to registry
|
|
ansible.builtin.shell:
|
|
cmd: >-
|
|
skopeo copy \
|
|
--insecure-policy \
|
|
--dest-tls-verify=false \
|
|
--dest-creds admin:{{ vapp['metacluster.password'] }} \
|
|
docker-archive:./{{ item | basename }} \
|
|
docker://registry.{{ vapp['metacluster.fqdn'] }}/library/$( \
|
|
skopeo list-tags \
|
|
--insecure-policy \
|
|
docker-archive:./{{ item | basename }} | \
|
|
jq -r '.Tags[0]')
|
|
chdir: /opt/metacluster/container-images/
|
|
register: push_result
|
|
loop: "{{ query('ansible.builtin.fileglob', '/opt/metacluster/container-images/*.tar') | sort }}"
|
|
loop_control:
|
|
label: "{{ item | basename }}"
|
|
retries: "{{ playbook.retries }}"
|
|
delay: "{{ ((storage_benchmark | float) * playbook.delay.short) | int }}"
|
|
until: push_result is not failed
|
|
|
|
module_defaults:
|
|
ansible.builtin.uri:
|
|
validate_certs: no
|
|
status_code: [200, 201, 401]
|
|
body_format: json
|