diff --git a/roles/network_plugin/calico/defaults/main.yml b/roles/network_plugin/calico/defaults/main.yml index 15e0c18abd63c8441ca05493ad201ef73e0fe7ae..80e23e3dbd281e278004a9d64e5ee958180b0ed3 100644 --- a/roles/network_plugin/calico/defaults/main.yml +++ b/roles/network_plugin/calico/defaults/main.yml @@ -127,3 +127,6 @@ calico_felix_log_severity_screen: Info # Calico container settings calico_allow_ip_forwarding: false + +# Calico IPAM strictaffinity +calico_ipam_strictaffinity: false diff --git a/roles/network_plugin/calico/tasks/install.yml b/roles/network_plugin/calico/tasks/install.yml index 5df4ee2b12f7176ea9419806dfb73b8b97df56ef..c7f21ab1e617cf219808c0f21100a2c389321014 100644 --- a/roles/network_plugin/calico/tasks/install.yml +++ b/roles/network_plugin/calico/tasks/install.yml @@ -441,3 +441,14 @@ when: - peer_with_router|default(false) - inventory_hostname in groups['k8s_cluster'] + +- name: Calico | Configure ipam strictaffinity + command: + cmd: "{{ bin_dir }}/calicoctl.sh ipam configure --strictaffinity={{ calico_ipam_strictaffinity }}" + register: output + retries: 4 + until: output.rc == 0 + delay: "{{ retry_stagger | random + 3 }}" + when: + - calico_ipam_strictaffinity is defined + - inventory_hostname in groups['k8s_cluster']