---
- name: install | Copy kubeadm binary from download dir
  copy:
    src: "{{ local_release_dir }}/kubeadm-{{ kubeadm_version }}-{{ image_arch }}"
    dest: "{{ bin_dir }}/kubeadm"
    mode: 0755
    remote_src: true
  tags:
    - kubeadm
  when:
    - not inventory_hostname in groups['kube_control_plane']

- name: install | Copy kubelet binary from download dir
  copy:
    src: "{{ local_release_dir }}/kubelet-{{ kube_version }}-{{ image_arch }}"
    dest: "{{ bin_dir }}/kubelet"
    mode: 0755
    remote_src: true
  tags:
    - kubelet
    - upgrade
  notify: Node | restart kubelet

- name: install | Copy socat wrapper for Container Linux with Docker
  command: "{{ docker_bin_dir }}/docker run --rm -v {{ bin_dir }}:/opt/bin {{ install_socat_image_repo }}:{{ install_socat_image_tag }}"
  args:
    creates: "{{ bin_dir }}/socat"
  when:
    - ansible_os_family in ['Flatcar Container Linux by Kinvolk']
    - container_manager == "docker"

- name: install | Copy socat wrapper for Container Linux with Containerd
  command: "{{ containerd_bin_dir }}/ctr --namespace k8s.io run --rm --mount type=bind,src={{ bin_dir }},dst=/opt/bin,options=rbind:rw {{ install_socat_image_repo }}:{{ install_socat_image_tag }} copysocat"
  args:
    creates: "{{ bin_dir }}/socat"
  when:
    - ansible_os_family in ['Flatcar Container Linux by Kinvolk']
    - container_manager == "containerd"

- name: install | Copy socat wrapper for Container Linux with crio
  command: "podman run --rm --mount type=bind,source={{ bin_dir }},destination=/opt/bin,rw=true {{ install_socat_image_repo }}:{{ install_socat_image_tag }}"
  args:
    creates: "{{ bin_dir }}/socat"
  when:
    - ansible_os_family in ['Flatcar Container Linux by Kinvolk']
    - container_manager == "crio"