---
- 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
    check_mode: no

  - 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: "{{ bin_dir }}/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:
    kubelet_cgroup_driver_detected: >-
      {%- if containerd_use_systemd_cgroup -%}systemd{%- else -%}cgroupfs{%- endif -%}
  when: container_manager == 'containerd'

- name: set kubelet_cgroup_driver
  set_fact:
    kubelet_cgroup_driver: "{{ kubelet_cgroup_driver_detected }}"
  when: kubelet_cgroup_driver is undefined

- name: set kubelet_cgroups options when cgroupfs is used
  set_fact:
    kubelet_runtime_cgroups: "{{ kubelet_runtime_cgroups_cgroupfs }}"
    kubelet_kubelet_cgroups: "{{ kubelet_kubelet_cgroups_cgroupfs }}"
  when: kubelet_cgroup_driver == 'cgroupfs'

- name: set kubelet_config_extra_args options when cgroupfs is used
  vars:
  set_fact:
    kubelet_config_extra_args: "{{ kubelet_config_extra_args | combine(kubelet_config_extra_args_cgroupfs) }}"
  when: kubelet_cgroup_driver == 'cgroupfs'

- 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