---
- name: Make sure dynamic kubelet configuration directory is writeable
  file:
    path: "{{ dynamic_kubelet_configuration_dir }}"
    mode: 0600
    state: directory
  when: dynamic_kubelet_configuration

- name: gets the kubeadm version
  command: "{{ bin_dir }}/kubeadm version -o short"
  register: kubeadm_output

- name: sets kubeadm api version to v1beta1
  set_fact:
    kubeadmConfig_api_version: v1beta1
  when: kubeadm_output.stdout is version('v1.13.0', '>=')
  tags:
    - kubelet
    - kubeadm

- name: Write kubelet environment config file (kubeadm)
  template:
    src: "kubelet.env.{{ kubeadmConfig_api_version }}.j2"
    dest: "{{ kube_config_dir }}/kubelet.env"
    backup: yes
  notify: restart kubelet
  when: kubeadm_output.stdout is version('v1.13.0', '>=')
  tags:
    - kubelet
    - kubeadm

- name: Write kubelet config file
  template:
    src: "kubelet-config.{{ kubeadmConfig_api_version }}.yaml.j2"
    dest: "{{ kube_config_dir }}/kubelet-config.yaml"
  when: kubeadm_output.stdout is version('v1.13.0', '>=')
  tags:
    - kubelet
    - kubeadm

- name: Write kubelet systemd init file
  template:
    src: "kubelet.service.j2"
    dest: "/etc/systemd/system/kubelet.service"
    backup: "yes"
  notify: restart kubelet
  tags:
    - kubelet
    - kubeadm

- name: flush_handlers and reload-systemd
  meta: flush_handlers

- name: Enable kubelet
  service:
    name: kubelet
    enabled: yes
    state: started
  tags:
    - kubelet
