From 6439d0cf96c3680cbfca526d5cb379243c3dea09 Mon Sep 17 00:00:00 2001 From: Max Gautier Date: Wed, 11 Oct 2023 15:52:12 +0200 Subject: [PATCH] Use calico_pool_blocksize from cluster when existing The blockSize attribute from Calico IPPool resources cannot be changed once set [1]. Consequently, we use the one currently defined when configuring the existing IPPool, avoiding upgrade errors by trying to change it. In particular, this can be useful when calico_pool_blocksize default changes in kubespray, which would otherwise force users to add an explicit setting to their inventories. [1]: https://docs.tigera.io/calico/latest/reference/resources/ippool#spec --- roles/network_plugin/calico/tasks/install.yml | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/roles/network_plugin/calico/tasks/install.yml b/roles/network_plugin/calico/tasks/install.yml index d371440a3a2..950093e1d32 100644 --- a/roles/network_plugin/calico/tasks/install.yml +++ b/roles/network_plugin/calico/tasks/install.yml @@ -232,10 +232,20 @@ } - name: Calico | Process calico network pool - set_fact: - _calico_pool: "{{ _calico_pool_cmd.stdout | from_json | combine(_calico_pool, recursive=True) }}" when: - _calico_pool_cmd is success + block: + - name: Calico | Get current calico network pool blocksize + set_fact: + _calico_blocksize: > + { + "spec": { + "blockSize": {{ (_calico_pool_cmd.stdout | from_json).spec.blockSize }} + } + } + - name: Calico | Merge calico network pool + set_fact: + _calico_pool: "{{ _calico_pool_cmd.stdout | from_json | combine(_calico_pool, _calico_blocksize, recursive=True) }}" - name: Calico | Configure calico network pool command: @@ -273,10 +283,20 @@ } - name: Calico | Process calico ipv6 network pool - set_fact: - _calico_pool_ipv6: "{{ _calico_pool_ipv6_cmd.stdout | from_json | combine(_calico_pool_ipv6, recursive=True) }}" when: - _calico_pool_ipv6_cmd is success + block: + - name: Calico | Get current calico ipv6 network pool blocksize + set_fact: + _calico_blocksize_ipv6: > + { + "spec": { + "blockSize": {{ (_calico_pool_ipv6_cmd.stdout | from_json).spec.blockSize }} + } + } + - name: Calico | Merge calico ipv6 network pool + set_fact: + _calico_pool_ipv6: "{{ _calico_pool_ipv6_cmd.stdout | from_json | combine(_calico_pool_ipv6, _calico_blocksize_ipv6, recursive=True) }}" - name: Calico | Configure calico ipv6 network pool command: