update
This commit is contained in:
16
kubespray/roles/network_plugin/calico/rr/tasks/main.yml
Normal file
16
kubespray/roles/network_plugin/calico/rr/tasks/main.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
- name: Calico-rr | Pre-upgrade tasks
|
||||
include_tasks: pre.yml
|
||||
|
||||
- name: Calico-rr | Configuring node tasks
|
||||
include_tasks: update-node.yml
|
||||
|
||||
- name: Calico-rr | Set label for route reflector # noqa 301
|
||||
command: >-
|
||||
{{ bin_dir }}/calicoctl.sh label node {{ inventory_hostname }}
|
||||
'i-am-a-route-reflector=true' --overwrite
|
||||
changed_when: false
|
||||
register: calico_rr_label
|
||||
until: calico_rr_label is succeeded
|
||||
delay: "{{ retry_stagger | random + 3 }}"
|
||||
retries: 10
|
||||
15
kubespray/roles/network_plugin/calico/rr/tasks/pre.yml
Normal file
15
kubespray/roles/network_plugin/calico/rr/tasks/pre.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
- name: Calico-rr | Disable calico-rr service if it exists
|
||||
service:
|
||||
name: calico-rr
|
||||
state: stopped
|
||||
enabled: no
|
||||
failed_when: false
|
||||
|
||||
- name: Calico-rr | Delete obsolete files
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: absent
|
||||
with_items:
|
||||
- /etc/calico/calico-rr.env
|
||||
- /etc/systemd/system/calico-rr.service
|
||||
@@ -0,0 +1,48 @@
|
||||
---
|
||||
# Workaround to retry a block of tasks, ansible doesn't have a direct way to do it,
|
||||
# you can follow the block loop request in: https://github.com/ansible/ansible/issues/46203
|
||||
- block:
|
||||
- name: Set the retry count
|
||||
set_fact:
|
||||
retry_count: "{{ 0 if retry_count is undefined else retry_count|int + 1 }}"
|
||||
|
||||
- name: Calico | Set label for route reflector # noqa 301 305
|
||||
shell: "{{ bin_dir }}/calicoctl.sh label node {{ inventory_hostname }} calico-rr-id={{ calico_rr_id }} --overwrite"
|
||||
changed_when: false
|
||||
register: calico_rr_id_label
|
||||
until: calico_rr_id_label is succeeded
|
||||
delay: "{{ retry_stagger | random + 3 }}"
|
||||
retries: 10
|
||||
when: calico_rr_id is defined
|
||||
|
||||
- name: Calico-rr | Fetch current node object
|
||||
command: "{{ bin_dir }}/calicoctl.sh get node {{ inventory_hostname }} -ojson"
|
||||
changed_when: false
|
||||
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 # noqa 301 305
|
||||
shell: "{{ bin_dir }}/calicoctl.sh replace -f-"
|
||||
args:
|
||||
stdin: "{{ calico_rr_node_patched | to_json }}"
|
||||
|
||||
rescue:
|
||||
- name: Fail if retry limit is reached
|
||||
fail:
|
||||
msg: Ended after 10 retries
|
||||
when: retry_count|int == 10
|
||||
|
||||
- name: Retrying node configuration
|
||||
debug:
|
||||
msg: "Failed to configure route reflector - Retrying..."
|
||||
|
||||
- name: Retry node configuration
|
||||
include_tasks: update-node.yml
|
||||
Reference in New Issue
Block a user