51 lines
1.8 KiB
YAML
51 lines
1.8 KiB
YAML
|
- block:
|
||
|
|
||
|
- 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: "{{ playbook.delays.short }}"
|
||
|
until: push_result is not failed
|
||
|
|
||
|
- name: Get all stored container images (=artifacts)
|
||
|
ansible.builtin.uri:
|
||
|
url: https://registry.{{ vapp['metacluster.fqdn'] }}/api/v2.0/search?q=library
|
||
|
method: GET
|
||
|
register: registry_artifacts
|
||
|
|
||
|
- name: Get source registries of all artifacts
|
||
|
ansible.builtin.set_fact:
|
||
|
source_registries: "{{ (source_registries | default([]) + [(item | split('/'))[1]]) | unique | sort }}"
|
||
|
loop: "{{ registry_artifacts.json.repository | json_query('[*].repository_name') }}"
|
||
|
|
||
|
- name: Configure K3s node for private registry
|
||
|
ansible.builtin.template:
|
||
|
dest: /etc/rancher/k3s/registries.yaml
|
||
|
src: registries.j2
|
||
|
vars:
|
||
|
_template:
|
||
|
data: "{{ source_registries }}"
|
||
|
hv:
|
||
|
fqdn: "{{ vapp['metacluster.fqdn'] }}"
|
||
|
|
||
|
module_defaults:
|
||
|
ansible.builtin.uri:
|
||
|
validate_certs: no
|
||
|
status_code: [200, 201, 401]
|
||
|
body_format: json
|