42 lines
2.2 KiB
YAML
42 lines
2.2 KiB
YAML
---
|
|
- name: Helm | Set commands for helm host tasks
|
|
set_fact:
|
|
helm_compare_command: >-
|
|
{%- if container_manager in ['docker', 'crio'] %}
|
|
{{ docker_bin_dir }}/docker run --rm -v {{ bin_dir }}:/systembindir --entrypoint /usr/bin/cmp {{ helm_image_repo }}:{{ helm_image_tag }} /usr/local/bin/helm /systembindir/helm
|
|
{%- elif container_manager == "containerd" %}
|
|
ctr run --rm --mount type=bind,src={{ bin_dir }},dst=/systembindir,options=rbind:rw {{ helm_image_repo }}:{{ helm_image_tag }} helm-compare sh -c 'cmp /usr/local/bin/helm /systembindir/helm'
|
|
{%- endif %}
|
|
helm_copy_command: >-
|
|
{%- if container_manager in ['docker', 'crio'] %}
|
|
{{ docker_bin_dir }}/docker run --rm -v {{ bin_dir }}:/systembindir --entrypoint /bin/cp {{ helm_image_repo }}:{{ helm_image_tag }} -f /usr/local/bin/helm /systembindir/helm
|
|
{%- elif container_manager == "containerd" %}
|
|
ctr run --rm --mount type=bind,src={{ bin_dir }},dst=/systembindir,options=rbind:rw {{ helm_image_repo }}:{{ helm_image_tag }} helm-copy sh -c '/bin/cp -f /usr/local/bin/helm /systembindir/helm'
|
|
{%- endif %}
|
|
|
|
- name: Helm | ensure helm container is pulled for containerd
|
|
command: "ctr i pull {{ helm_image_repo }}:{{ helm_image_tag }}"
|
|
when: container_manager == "containerd"
|
|
|
|
- name: Helm | Compare host helm with helm container
|
|
command: "{{ helm_compare_command }}"
|
|
register: helm_task_compare_result
|
|
until: helm_task_compare_result.rc in [0,1,2]
|
|
retries: 4
|
|
delay: "{{ retry_stagger | random + 3 }}"
|
|
changed_when: false
|
|
failed_when: "helm_task_compare_result.rc not in [0,1,2]"
|
|
|
|
- name: Helm | Copy helm from helm container
|
|
command: "{{ helm_copy_command }}"
|
|
when: helm_task_compare_result.rc != 0
|
|
register: helm_task_result
|
|
until: helm_task_result.rc == 0
|
|
retries: 4
|
|
delay: "{{ retry_stagger | random + 3 }}"
|
|
|
|
- name: Helm | Copy socat wrapper for Container Linux and Flatcat
|
|
command: "{{ docker_bin_dir }}/docker run --rm -v {{ bin_dir }}:/opt/bin {{ install_socat_image_repo }}:{{ install_socat_image_tag }}"
|
|
args:
|
|
creates: "{{ bin_dir }}/socat"
|
|
when: ansible_os_family in ['CoreOS', 'Container Linux by CoreOS', 'Flatcar', 'Flatcar Container Linux by Kinvolk']
|