Packer.Images/ansible/roles/metacluster/tasks/components.yml

65 lines
2.1 KiB
YAML

- name: Create folder structure(s)
ansible.builtin.file:
path: "{{ item }}"
state: directory
loop:
- /opt/metacluster/helm-charts
- /opt/metacluster/container-images/shared
- name: Add helm repositories
kubernetes.core.helm_repository:
name: "{{ item.name }}"
repo_url: "{{ item.url }}"
state: present
loop: "{{ platform.helm_repositories }}"
- name: Fetch helm charts
ansible.builtin.command:
cmd: helm fetch {{ item.value.helm.chart }} --untar --version {{ item.value.helm.version }}
chdir: /opt/metacluster/helm-charts
loop: "{{ lookup('ansible.builtin.dict', components) }}"
loop_control:
label: "{{ item.key }}"
- name: Inject chart values into ansible var files
ansible.builtin.blockinfile:
path: /opt/firstboot/ansible/vars/metacluster.yml
block: >2
{{ item.key }}:
{{ item.value.helm.chart_values | default(omit) }}
marker: "# {mark} ANSIBLE MANAGED BLOCK -- {{ item.key }}"
loop: "{{ lookup('ansible.builtin.dict', components) }}"
loop_control:
label: "{{ item.key }}"
- name: Parse helm charts for container images
ansible.builtin.shell:
cmd: "{{ item.value.helm.parse_logic }}"
chdir: /opt/metacluster/helm-charts/{{ item.key }}
register: containerimages
loop: "{{ lookup('ansible.builtin.dict', components) }}"
loop_control:
label: "{{ item.key }}"
- name: Pull and store containerimages
ansible.builtin.command:
cmd: >-
skopeo copy \
--retry-times 5 \
--dest-compress \
--dest-shared-blob-dir /opt/metacluster/container-images/shared \
docker://{{ item }} \
docker-archive:./{{ ( item | regex_findall('[^/:]+'))[-2] }}.tar:{{ item }}
chdir: /opt/metacluster/container-images
register: imagedownload
until: imagedownload is succeeded
retries: 5
loop: "{{ containerimages.results | map(attribute='stdout_lines') | flatten + dependencies.container_images }}"
#- name: Compress tarballs
# community.general.archive:
# dest: /opt/metacluster/container-images/image-tarballs.tgz
# path: /opt/metacluster/container-images/*
# format: gz
# remove: yes