---
- name: Slurp CNI config
  slurp:
    src: /etc/cni/net.d/10-calico.conflist
  register: calico_cni_config_slurp
  failed_when: false

- block:
  - name: Set fact calico_cni_config from slurped CNI config
    set_fact:
      calico_cni_config: "{{ calico_cni_config_slurp['content'] | b64decode | from_json }}"
  - name: Set fact calico_datastore to etcd if needed
    set_fact:
      calico_datastore: etcd
    when: "'etcd_endpoints' in calico_cni_config.plugins.0"
  when: calico_cni_config_slurp.content is defined

- name: Calico | Get kubelet hostname
  shell: >-
    set -o pipefail && {{ bin_dir }}/kubectl get node -o custom-columns='NAME:.metadata.name,INTERNAL-IP:.status.addresses[?(@.type=="InternalIP")].address'
    | egrep "{{ ansible_all_ipv4_addresses | join('$|') }}$" | cut -d" " -f1
  args:
    executable: /bin/bash
  register: calico_kubelet_name
  delegate_to: "{{ groups['kube_control_plane'][0] }}"
  when:
  - "cloud_provider is defined"
