|
|
@ -3,27 +3,24 @@ |
|
|
|
include_tasks: pre.yml |
|
|
|
|
|
|
|
- name: Calico-rr | Fetch current node object |
|
|
|
command: "{{ bin_dir }}/calicoctl.sh get node {{ inventory_hostname }} -oyaml" |
|
|
|
command: "{{ bin_dir }}/calicoctl.sh get node {{ inventory_hostname }} -ojson" |
|
|
|
register: calico_rr_node |
|
|
|
until: calico_rr_node is succeeded |
|
|
|
delay: "{{ retry_stagger | random + 3 }}" |
|
|
|
retries: 10 |
|
|
|
|
|
|
|
# FIXME(mattymo): Use jsonpatch when ansible/ansible#52931 is merged |
|
|
|
- name: Calico-rr | Set route reflector cluster ID |
|
|
|
shell: >- |
|
|
|
echo -e '{{ calico_rr_node.stdout }}' | |
|
|
|
sed '/bgp:/a \ \ \ \ routeReflectorClusterID: {{ cluster_id }}' |
|
|
|
register: calico_rr_node |
|
|
|
when: '("routeReflectorClusterID: " + cluster_id|string) not in calico_rr_node.stdout_lines' |
|
|
|
set_fact: |
|
|
|
calico_rr_node_patched: >- |
|
|
|
{{ calico_rr_node.stdout | from_json | combine({ 'spec': { 'bgp': |
|
|
|
{ 'routeReflectorClusterID': cluster_id }}}, recursive=True) }} |
|
|
|
|
|
|
|
- name: Calico-rr | Configure route reflector |
|
|
|
shell: |- |
|
|
|
echo -e '{{ calico_rr_node.stdout }}' | |
|
|
|
{{ bin_dir }}/calicoctl.sh replace -f- |
|
|
|
retries: 4 |
|
|
|
delay: "{{ retry_stagger | random + 3 }}" |
|
|
|
shell: "{{ bin_dir }}/calicoctl.sh replace -f-" |
|
|
|
args: |
|
|
|
stdin: "{{ calico_rr_node_patched | to_json }}" |
|
|
|
|
|
|
|
- name: Calico-rr | Set label for route reflector |
|
|
|
command: >- |
|
|
|
{{ bin_dir }}/calicoctl.sh label node {{ inventory_hostname }} |
|
|
|
'i-am-a-route-reflector=true' --overwrite |
|
|
|
retries: 4 |
|
|
|
delay: "{{ retry_stagger | random + 3 }}" |