diff --git a/roles/network_plugin/calico/tasks/check.yml b/roles/network_plugin/calico/tasks/check.yml index cfacf12a18c5fc6aaec39f20bc0a5c077ea197f3..7ddca6418b87736708efe0bbec885e8230c731dc 100644 --- a/roles/network_plugin/calico/tasks/check.yml +++ b/roles/network_plugin/calico/tasks/check.yml @@ -10,7 +10,7 @@ run_once: yes - name: "Get current version of calico cluster version" - shell: "{{ bin_dir }}/calicoctl version | grep 'Cluster Version' | awk '{ print $3}'" + shell: "{{ bin_dir }}/calicoctl version | grep 'Cluster Version:' | awk '{ print $3}'" register: calico_version_on_server run_once: yes delegate_to: "{{ groups['kube-master'][0] }}" @@ -22,6 +22,7 @@ that: - calico_version_on_server.stdout|version_compare('v2.6.5', '>=') msg: "Your version of calico is not fresh enough for upgrade" + when: calico_upgrade_enabled - name: "Set upgrade flag when version needs to be updated" set_fact: diff --git a/roles/network_plugin/calico/tasks/install.yml b/roles/network_plugin/calico/tasks/install.yml index 4e1f1dc5e9531ab46e05c918c24891a2b66ef38d..f2d41f9fcce84dafbac8fb18d1beb6612338e87a 100644 --- a/roles/network_plugin/calico/tasks/install.yml +++ b/roles/network_plugin/calico/tasks/install.yml @@ -1,5 +1,4 @@ --- - - name: Calico | Write Calico cni config template: src: "cni-calico.conflist.j2" @@ -103,6 +102,24 @@ delegate_to: "{{ groups['kube-master'][0] }}" when: - 'calico_conf.stdout == "0"' + - calico_version | version_compare("v3.0.0", ">=") + +- name: Calico | Configure calico network pool (legacy) + shell: > + echo ' + { "kind": "ipPool", + "spec": {"disabled": false, "ipip": {"enabled": {{ ipip }}, "mode": "{{ ipip_mode|lower }}"}, + "nat-outgoing": {{ nat_outgoing|default(false) and not peer_with_router|default(false) }}}, + "apiVersion": "v1", + "metadata": {"cidr": "{{ kube_pods_subnet }}"} + }' | {{ bin_dir }}/calicoctl apply -f - + environment: + NO_DEFAULT_POOLS: true + run_once: true + delegate_to: "{{ groups['kube-master'][0] }}" + when: + - 'calico_conf.stdout == "0"' + - calico_version | version_compare("v3.0.0", "<") - name: "Determine nodeToNodeMesh needed state" set_fact: @@ -112,7 +129,6 @@ - inventory_hostname in groups['k8s-cluster'] run_once: yes - - name: Calico | Set global as_num shell: > echo ' @@ -127,6 +143,21 @@ "asNumber": {{ global_as_num }} }} ' | {{ bin_dir }}/calicoctl --skip-exists create -f - run_once: true delegate_to: "{{ groups['kube-master'][0] }}" + when: + - calico_version | version_compare('v3.0.0', '>=') + +- name: Calico | Set global as_num (legacy) + command: "{{ bin_dir}}/calicoctl config set asNumber {{ global_as_num }}" + run_once: true + when: + - calico_version | version_compare('v3.0.0', '<') + +- name: Calico | Disable node mesh (legacy) + command: "{{ bin_dir }}/calicoctl config set nodeToNodeMesh off" + run_once: yes + when: + - calico_version | version_compare('v3.0.0', '<') + - nodeToMeshEnabled|default(True) - name: Calico | Configure peering with router(s) shell: > @@ -147,7 +178,7 @@ with_items: - "{{ peers|default([]) }}" when: - - calico_version_on_server.stdout|version_compare('v3.0.0', '>') or calico_upgrade_enabled + - calico_version | version_compare('v3.0.0', '>=') - peer_with_router|default(false) - inventory_hostname in groups['k8s-cluster'] @@ -164,8 +195,7 @@ delay: "{{ retry_stagger | random + 3 }}" with_items: "{{ peers|default([]) }}" when: - - calico_version_on_server.stdout|version_compare('v3.0.0', '<') - - not calico_upgrade_enabled + - calico_version | version_compare('v3.0.0', '<') - peer_with_router|default(false) - inventory_hostname in groups['k8s-cluster'] @@ -188,7 +218,7 @@ with_items: - "{{ groups['calico-rr'] | default([]) }}" when: - - calico_version_on_server.stdout|version_compare('v3.0.0', '>') or calico_upgrade_enabled + - calico_version | version_compare('v3.0.0', '>=') - peer_with_calico_rr|default(false) - inventory_hostname in groups['k8s-cluster'] - hostvars[item]['cluster_id'] == cluster_id @@ -208,7 +238,7 @@ delay: "{{ retry_stagger | random + 3 }}" with_items: "{{ groups['calico-rr'] | default([]) }}" when: - - calico_version_on_server.stdout|version_compare('v3.0.0', '<') + - calico_version | version_compare('v3.0.0', '<') - not calico_upgrade_enabled - peer_with_calico_rr|default(false) - hostvars[item]['cluster_id'] == cluster_id