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: "{{ ((storage_benchmark | float) * playbook.delay.short) | int }}"
|
|
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
|