[calico] don't clobber user set bgp configuration options that are not managed by kubespray

pull/8815/head
Calin Cristian Andrei 2022-05-12 12:43:33 +00:00
parent 47812ec002
commit 569a319ff5
1 changed files with 39 additions and 21 deletions

View File

@ -297,27 +297,45 @@
- inventory_hostname in groups['k8s_cluster'] - inventory_hostname in groups['k8s_cluster']
run_once: yes run_once: yes
- name: Calico | Set up BGP Configuration - block:
command: - name: Calico | Get existing BGP Configuration
cmd: "{{ bin_dir }}/calicoctl.sh apply -f -" command: "{{ bin_dir }}/calicoctl.sh get bgpconfig default -o json"
stdin: "{{ stdin is string | ternary(stdin, stdin|to_json) }}" register: _bgp_config_cmd
vars: ignore_errors: True
stdin: > changed_when: False
{ "kind": "BGPConfiguration",
"apiVersion": "projectcalico.org/v3", - name: Calico | Set kubespray BGP Configuration
"metadata": { set_fact:
"name": "default", _bgp_config: >
}, {
"spec": { "kind": "BGPConfiguration",
"listenPort": {{ calico_bgp_listen_port }}, "apiVersion": "projectcalico.org/v3",
"logSeverityScreen": "Info", "metadata": {
{% if not calico_no_global_as_num|default(false) %}"asNumber": {{ global_as_num }},{% endif %} "name": "default",
"nodeToNodeMeshEnabled": {{ nodeToNodeMeshEnabled|default('true') }} , },
{% if calico_advertise_cluster_ips|default(false) %} "spec": {
"serviceClusterIPs": [{"cidr": "{{ kube_service_addresses }}" } {{ ',{"cidr":"' + kube_service_addresses_ipv6 + '"}' if enable_dual_stack_networks else '' }}],{% endif %} "listenPort": {{ calico_bgp_listen_port }},
{% if calico_advertise_service_loadbalancer_ips|length > 0 %}"serviceLoadBalancerIPs": {{ _service_loadbalancer_ips }},{% endif %} "logSeverityScreen": "Info",
"serviceExternalIPs": {{ _service_external_ips|default([]) }} }} {% if not calico_no_global_as_num|default(false) %}"asNumber": {{ global_as_num }},{% endif %}
changed_when: false "nodeToNodeMeshEnabled": {{ nodeToNodeMeshEnabled|default('true') }} ,
{% if calico_advertise_cluster_ips|default(false) %}
"serviceClusterIPs": [{"cidr": "{{ kube_service_addresses }}" } {{ ',{"cidr":"' + kube_service_addresses_ipv6 + '"}' if enable_dual_stack_networks else '' }}],{% endif %}
{% if calico_advertise_service_loadbalancer_ips|length > 0 %}"serviceLoadBalancerIPs": {{ _service_loadbalancer_ips }},{% endif %}
"serviceExternalIPs": {{ _service_external_ips|default([]) }}
}
}
- name: Calico | Process BGP Configuration
set_fact:
_bgp_config: "{{ _bgp_config_cmd.stdout | from_json | combine(_bgp_config, recursive=True) }}"
when:
- _bgp_config_cmd is success
- name: Calico | Set up BGP Configuration
command:
cmd: "{{ bin_dir }}/calicoctl.sh apply -f -"
stdin: "{{ _bgp_config is string | ternary(_bgp_config, _bgp_config|to_json) }}"
changed_when: False
when: when:
- inventory_hostname == groups['kube_control_plane'][0] - inventory_hostname == groups['kube_control_plane'][0]