--- - name: Slurp CNI config slurp: src: /etc/cni/net.d/10-calico.conflist register: calico_cni_config_slurp failed_when: false - name: Gather calico facts tags: - facts when: calico_cni_config_slurp.content is defined 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: - "'plugins' in calico_cni_config" - "'etcd_endpoints' in calico_cni_config.plugins.0" - name: Calico | Get kubelet hostname shell: >- set -o pipefail && {{ 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 - name: Calico | Gather os specific variables 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 }}-{{ ansible_architecture }}.yml" - "{{ ansible_os_family | lower }}.yml" - defaults.yml paths: - ../vars skip: true