Parse calico nodes as json (#5114)

This commit is contained in:
Matthew Mosesohn 2019-08-27 20:16:42 +03:00 committed by Kubernetes Prow Robot
parent 10e0fe86fb
commit 184ac6a4e6

View file

@ -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 }}"