Browse Source
Enable delegating all downloads (binaries, images, kubeadm images) (#4420)
Enable delegating all downloads (binaries, images, kubeadm images) (#4420)
* Download to delegate and sync files when download_run_once * Fail on error after saving container image * Do not set changed status when downloaded container was up to date * Only sync containers when they are actually required Previously, non-required images (pull_required=false as image existed on target host) were synced to the target hosts. This failed as the image was not downloaded to the download_delegate and hence was not available for syncing. * Sync containers when only missing on some hosts * Consider images with multiple repo tags * Enable kubeadm images pull/syncing with download_delegate * Use kubeadm images list to pull/sync 'kubeadm config images pull' is replaced by collecting the images list with 'kubeadm config images list' and using the commonly used method of pull/syncing the images. * Ensure containers are downloaded and synced for all hosts * Fix download/syncing when download_delegate is a kubernetes hostpull/4688/head
committed by
Kubernetes Prow Robot
11 changed files with 176 additions and 38 deletions
Unified View
Diff Options
-
10docs/downloads.md
-
4roles/download/defaults/main.yml
-
7roles/download/tasks/download_container.yml
-
29roles/download/tasks/download_file.yml
-
50roles/download/tasks/kubeadm_images.yml
-
27roles/download/tasks/main.yml
-
11roles/download/tasks/set_docker_image_facts.yml
-
15roles/download/tasks/sync_container.yml
-
53roles/download/tasks/sync_file.yml
-
2roles/kubernetes/master/tasks/main.yml
-
6roles/kubernetes/node/tasks/install.yml
@ -0,0 +1,53 @@ |
|||||
|
--- |
||||
|
- name: file_download | create local download destination directory |
||||
|
file: |
||||
|
path: "{{download.dest|dirname}}" |
||||
|
state: directory |
||||
|
recurse: yes |
||||
|
mode: 0755 |
||||
|
delegate_to: localhost |
||||
|
become: false |
||||
|
run_once: true |
||||
|
when: |
||||
|
- download_delegate != "localhost" |
||||
|
- download_run_once |
||||
|
- download.enabled |
||||
|
- download.file |
||||
|
|
||||
|
- name: file_download | copy file to ansible host |
||||
|
synchronize: |
||||
|
src: "{{ download.dest }}" |
||||
|
dest: "{{ download.dest }}" |
||||
|
use_ssh_args: "{{ has_bastion | default(false) }}" |
||||
|
mode: pull |
||||
|
run_once: true |
||||
|
become: false |
||||
|
when: |
||||
|
- download.enabled |
||||
|
- download.file |
||||
|
- download_run_once |
||||
|
- ansible_os_family not in ["CoreOS", "Container Linux by CoreOS"] |
||||
|
- inventory_hostname == download_delegate |
||||
|
- download_delegate != "localhost" |
||||
|
|
||||
|
- name: file_download | upload file to nodes |
||||
|
synchronize: |
||||
|
src: "{{ download.dest }}" |
||||
|
dest: "{{ download.dest }}" |
||||
|
use_ssh_args: "{{ has_bastion | default(false) }}" |
||||
|
mode: push |
||||
|
become: true |
||||
|
register: get_task |
||||
|
until: get_task is succeeded |
||||
|
retries: 4 |
||||
|
delay: "{{ retry_stagger | random + 3 }}" |
||||
|
when: |
||||
|
- download.enabled |
||||
|
- download.file |
||||
|
- download_run_once |
||||
|
- (ansible_os_family not in ["CoreOS", "Container Linux by CoreOS"] and |
||||
|
inventory_hostname != download_delegate or |
||||
|
download_delegate == "localhost") |
||||
|
tags: |
||||
|
- upload |
||||
|
- upgrade |
Write
Preview
Loading…
Cancel
Save