66408a87ee
* download file * download containers * fix push image to nodes * pull if none image on host * fix * improve docker image tag checks. do not pull already cached images * rebase fix merge conflict * add support download_run_once when upgrade and scale cluster add some test with download_run_once * set default values to temp flag for every download cycle * add save,load abilty for containerd and crio when download_run_once=true * return redefine image save/load command to set_docker_image_facts.yml * move set command to set_container_facts * ctr in containerd_bin_dir * fix order of ctr image export arguments * temporary disable download_run_once for containerd and crio due https://github.com/containerd/containerd/issues/4075 * remove unused files * fix strict yaml linter warning and errors * refactor logical conditions to pull and cache container images * remove comment due lint check * document role * remove image_load_on_localhost, because cached images are always loaded to docker on remote sites * remove XXX from debug output
30 lines
1.4 KiB
YAML
30 lines
1.4 KiB
YAML
---
|
|
# NOTE: The ampersand hell in this block is needed because docker-inspect uses go templates,
|
|
# which uses double ampersands as delimiters, just like Jinja does. If you want to understand
|
|
# the template, just replace all instances of {{ `{{` }} with {{ and {{ '}}' }} with }}.
|
|
# It will output something like the following:
|
|
# nginx:1.15,gcr.io/google-containers/kube-proxy:v1.14.1,gcr.io/google-containers/kube-proxy@sha256:44af2833c6cbd9a7fc2e9d2f5244a39dfd2e31ad91bf9d4b7d810678db738ee9,gcr.io/google-containers/kube-apiserver:v1.14.1,etc...
|
|
- name: check_pull_required | Generate a list of information about the images on a node
|
|
shell: "{{ image_info_command }}"
|
|
no_log: true
|
|
register: docker_images
|
|
failed_when: false
|
|
changed_when: false
|
|
check_mode: no
|
|
when: not download_always_pull
|
|
|
|
- name: check_pull_required | Set pull_required if the desired image is not yet loaded
|
|
set_fact:
|
|
pull_required: >-
|
|
{%- if image_reponame | regex_replace('^docker\.io/(library/)?','') in docker_images.stdout.split(',') %}false{%- else -%}true{%- endif -%}
|
|
when: not download_always_pull
|
|
|
|
- name: check_pull_required | Check that the local digest sha256 corresponds to the given image tag
|
|
assert:
|
|
that: "{{ download.repo }}:{{ download.tag }} in docker_images.stdout.split(',')"
|
|
when:
|
|
- not download_always_pull
|
|
- not pull_required
|
|
- pull_by_digest
|
|
tags:
|
|
- asserts
|