From 5ab8a712d99f458ceb7c40460e949117fe4e6e37 Mon Sep 17 00:00:00 2001
From: Takashi Okamoto <toraneko@gmail.com>
Date: Sat, 4 Aug 2018 10:01:35 +0000
Subject: [PATCH] Add download_container flag to avoid docker pull when use
 cri-o.

---
 roles/download/defaults/main.yml             | 3 +++
 roles/download/tasks/download_prep.yml       | 3 +++
 roles/download/tasks/main.yml                | 2 +-
 roles/kubernetes/node/tasks/install_host.yml | 2 --
 roles/kubespray-defaults/defaults/main.yaml  | 4 ++++
 5 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/roles/download/defaults/main.yml b/roles/download/defaults/main.yml
index 546cdbc63..d673c72b5 100644
--- a/roles/download/defaults/main.yml
+++ b/roles/download/defaults/main.yml
@@ -10,6 +10,9 @@ skip_downloads: false
 download_run_once: False
 download_compress: 1
 
+# if this is set to true will download container
+download_container: True
+
 # if this is set to true, uses the localhost for download_run_once mode
 # (requires docker and sudo to access docker). You may want this option for
 # local caching of docker images or for Container Linux by CoreOS cluster nodes.
diff --git a/roles/download/tasks/download_prep.yml b/roles/download/tasks/download_prep.yml
index 1fd7abf2f..b44da45da 100644
--- a/roles/download/tasks/download_prep.yml
+++ b/roles/download/tasks/download_prep.yml
@@ -7,6 +7,7 @@
   failed_when: false
   changed_when: false
   check_mode: no
+  when: download_container
 
 - name: container_download | Create dest directory for saved/loaded container images
   file:
@@ -15,6 +16,7 @@
     recurse: yes
     mode: 0755
     owner: "{{ansible_ssh_user|default(ansible_user_id)}}"
+  when: download_container
 
 - name: container_download | create local directory for saved/loaded container images
   file:
@@ -28,5 +30,6 @@
   when:
     - download_run_once
     - download_delegate == 'localhost'
+    - download_container
   tags:
     - localhost
diff --git a/roles/download/tasks/main.yml b/roles/download/tasks/main.yml
index 190fb737d..1984f626d 100644
--- a/roles/download/tasks/main.yml
+++ b/roles/download/tasks/main.yml
@@ -11,7 +11,7 @@
   when:
     - not skip_downloads|default(false)
     - item.value.enabled
-    - not item.value.container | item.value.container and download_container
+    - (not (item.value.container|default(False))) or (item.value.container and download_container)
 
 - name: "Sync container"
   include_tasks: sync_container.yml
diff --git a/roles/kubernetes/node/tasks/install_host.yml b/roles/kubernetes/node/tasks/install_host.yml
index 47a53b281..3ca923848 100644
--- a/roles/kubernetes/node/tasks/install_host.yml
+++ b/roles/kubernetes/node/tasks/install_host.yml
@@ -3,7 +3,6 @@
 - name: install | Copy kubelet binary from download dir
   command: rsync -piu "{{ local_release_dir }}/hyperkube" "{{ bin_dir }}/kubelet"
   changed_when: false
-  when: hyperkube_enabled
   tags:
     - hyperkube
     - upgrade
@@ -13,7 +12,6 @@
     path: "{{ bin_dir }}/kubelet"
     mode: "0755"
     state: file
-  when: hyperkube_enabled
   tags:
     - hyperkube
     - upgrade
diff --git a/roles/kubespray-defaults/defaults/main.yaml b/roles/kubespray-defaults/defaults/main.yaml
index 1a75178a2..c676598bc 100644
--- a/roles/kubespray-defaults/defaults/main.yaml
+++ b/roles/kubespray-defaults/defaults/main.yaml
@@ -135,6 +135,10 @@ kube_api_aggregator_routing: false
 # Optionally do not run docker role
 manage_docker: true
 
+# cri-o options
+# Optionally run cri-o role
+manage_crio: false
+
 # Path used to store Docker data
 docker_daemon_graph: "/var/lib/docker"
 
-- 
GitLab