From e86c0cf036b63896b84131cafb9ad4f9c7dc9b7b Mon Sep 17 00:00:00 2001 From: Max Gautier Date: Mon, 30 Oct 2023 17:37:43 +0100 Subject: [PATCH] Use calico_pool_blocksize from cluster when existing (#10516) 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 158b62a9a..455f74840 100644 --- a/roles/network_plugin/calico/tasks/install.yml +++ b/roles/network_plugin/calico/tasks/install.yml @@ -233,10 +233,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: @@ -272,10 +282,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: