From ae003af262f6a586588d8ada5e1b41e972980e65 Mon Sep 17 00:00:00 2001
From: Hans Feldt <2808287+hafe@users.noreply.github.com>
Date: Tue, 30 Jun 2020 11:32:05 +0200
Subject: [PATCH] Fix kubelet cgroup driver detection for crio (#6331)

* Fix kubelet cgroup driver detection for crio

Remove fact standalone_kubelet since it is not used

* Fix yamllint complaints of roles/kubernetes/node/tasks/facts.yml

Co-authored-by: Hans Feldt <hafe@users.noreply.github.com>
---
 roles/kubernetes/node/tasks/facts.yml | 48 +++++++++++++++------------
 1 file changed, 27 insertions(+), 21 deletions(-)

diff --git a/roles/kubernetes/node/tasks/facts.yml b/roles/kubernetes/node/tasks/facts.yml
index a879651d7..b7b3ad011 100644
--- a/roles/kubernetes/node/tasks/facts.yml
+++ b/roles/kubernetes/node/tasks/facts.yml
@@ -1,14 +1,25 @@
 ---
-- name: look up docker cgroup driver
-  shell: "docker info | grep 'Cgroup Driver' | awk -F': ' '{ print $2; }'"
-  register: docker_cgroup_driver_result
-  changed_when: false
-  when: container_manager in ['crio', 'docker']
+- block:
+  - name: look up docker cgroup driver
+    shell: "docker info | grep 'Cgroup Driver' | awk -F': ' '{ print $2; }'"
+    register: docker_cgroup_driver_result
+    changed_when: false
 
-- name: set standalone_kubelet fact
-  set_fact:
-    standalone_kubelet: >-
-      {%- if inventory_hostname in groups['kube-master'] and inventory_hostname not in groups['kube-node'] -%}true{%- else -%}false{%- endif -%}
+  - name: set kubelet_cgroup_driver_detected fact for docker
+    set_fact:
+      kubelet_cgroup_driver_detected: "{{ docker_cgroup_driver_result.stdout }}"
+  when: container_manager == 'docker'
+
+- block:
+  - name: look up crio cgroup driver
+    shell: "crio-status info | grep 'cgroup driver' | awk -F': ' '{ print $2; }'"
+    register: crio_cgroup_driver_result
+    changed_when: false
+
+  - name: set kubelet_cgroup_driver_detected fact for crio
+    set_fact:
+      kubelet_cgroup_driver_detected: "{{ crio_cgroup_driver_result.stdout }}"
+  when: container_manager == 'crio'
 
 - name: set kubelet_cgroup_driver_detected fact for containerd
   set_fact:
@@ -16,18 +27,13 @@
       {%- if containerd_use_systemd_cgroup -%}systemd{%- else -%}cgroupfs{%- endif -%}
   when: container_manager == 'containerd'
 
-- name: set kubelet_cgroup_driver_detected fact for other engines
-  set_fact:
-    kubelet_cgroup_driver_detected: "{{ docker_cgroup_driver_result.stdout }}"
-  when: container_manager in ['crio', 'docker']
-
 - name: os specific vars
   include_vars: "{{ item }}"
   with_first_found:
-    - files:
-        - "{{ ansible_distribution|lower }}-{{ ansible_distribution_version|lower|replace('/', '_') }}.yml"
-        - "{{ ansible_distribution|lower }}-{{ ansible_distribution_release }}.yml"
-        - "{{ ansible_distribution|lower }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml"
-        - "{{ ansible_distribution|lower }}.yml"
-        - "{{ ansible_os_family|lower }}.yml"
-      skip: true
+  - files:
+    - "{{ ansible_distribution|lower }}-{{ ansible_distribution_version|lower|replace('/', '_') }}.yml"
+    - "{{ ansible_distribution|lower }}-{{ ansible_distribution_release }}.yml"
+    - "{{ ansible_distribution|lower }}-{{ ansible_distribution_major_version|lower|replace('/', '_') }}.yml"
+    - "{{ ansible_distribution|lower }}.yml"
+    - "{{ ansible_os_family|lower }}.yml"
+    skip: true
-- 
GitLab