---
- name: Calico-rr | Pre-upgrade tasks
  include_tasks: pre.yml

- name: Calico-rr | Fetch current node object
  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

- name: Calico-rr | Set route reflector cluster ID
  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: "{{ 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
