mirror of
https://github.com/kubernetes-sigs/kubespray.git
synced 2026-03-08 11:07:43 +03:00
Refactor calico route reflector to run in k8s cluster (#4975)
* Refactor calico-rr to run in k8s cluster with taint Change-Id: I75a3169ff5b36ce8302fc7ef1c32d3eb697b5afa * add preinstall checks * rework calico/rr role Change-Id: I2f0a7e6cb77cf91ad4a615923680760d2e5d9ca8 * add empty calico-rr group Change-Id: I006c0a60db9b72d02245bf8fdfabcf982144a5ad
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
75d1be8272
commit
023108a733
@@ -1,82 +1,29 @@
|
||||
---
|
||||
# Required from inventory:
|
||||
# calico_rr_ip - which specific IP to use for RR, defaults to
|
||||
# "ip" from inventory or "ansible_default_ipv4.address"
|
||||
- name: Calico-rr | Pre-upgrade tasks
|
||||
include_tasks: pre.yml
|
||||
|
||||
- name: Calico-rr | Set IP fact
|
||||
set_fact:
|
||||
rr_ip: "{{ calico_rr_ip | default(ip) | default(fallback_ips[inventory_hostname]) }}"
|
||||
- name: Calico-rr | Fetch current node object
|
||||
command: "{{ bin_dir }}/calicoctl.sh get node {{ inventory_hostname }} -oyaml"
|
||||
register: calico_rr_node
|
||||
|
||||
- name: Calico-rr | Create calico certs directory
|
||||
file:
|
||||
dest: "{{ calico_cert_dir }}"
|
||||
state: directory
|
||||
mode: 0750
|
||||
owner: root
|
||||
group: root
|
||||
|
||||
- name: Calico-rr | Link etcd certificates for calico-node
|
||||
file:
|
||||
src: "{{ etcd_cert_dir }}/{{ item.s }}"
|
||||
dest: "{{ calico_cert_dir }}/{{ item.d }}"
|
||||
state: hard
|
||||
force: yes
|
||||
with_items:
|
||||
- {s: "{{ kube_etcd_cacert_file }}", d: "ca_cert.crt"}
|
||||
- {s: "{{ kube_etcd_cert_file }}", d: "cert.crt"}
|
||||
- {s: "{{ kube_etcd_key_file }}", d: "key.pem"}
|
||||
|
||||
- name: Calico-rr | Create dir for logs
|
||||
file:
|
||||
path: /var/log/calico-rr
|
||||
state: directory
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: root
|
||||
|
||||
- name: Calico-rr | Write calico-rr.env for systemd init file
|
||||
template:
|
||||
src: calico-rr.env.j2
|
||||
dest: /etc/calico/calico-rr.env
|
||||
notify: restart calico-rr
|
||||
|
||||
- name: Calico-rr | Write calico-rr systemd init file
|
||||
template:
|
||||
src: calico-rr-docker.service.j2
|
||||
dest: /etc/systemd/system/calico-rr.service
|
||||
notify: restart calico-rr
|
||||
when:
|
||||
- container_manager in ['crio', 'docker', 'rkt']
|
||||
|
||||
- name: Calico-rr | Write calico-rr systemd init file
|
||||
template:
|
||||
src: calico-rr-containerd.service.j2
|
||||
dest: /etc/systemd/system/calico-rr.service
|
||||
notify: restart calico-rr
|
||||
when:
|
||||
- container_manager == 'containerd'
|
||||
# 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'
|
||||
|
||||
- name: Calico-rr | Configure route reflector
|
||||
command: |-
|
||||
{{ bin_dir }}/etcdctl \
|
||||
--endpoints={{ etcd_access_addresses }} \
|
||||
put /calico/bgp/v1/rr_v4/{{ rr_ip }} \
|
||||
'{
|
||||
"ip": "{{ rr_ip }}",
|
||||
"cluster_id": "{{ cluster_id }}"
|
||||
}'
|
||||
environment:
|
||||
ETCDCTL_API: 3
|
||||
ETCDCTL_CERT: "{{ etcd_cert_dir }}/admin-{{ groups['etcd'][0] }}.pem"
|
||||
ETCDCTL_KEY: "{{ etcd_cert_dir }}/admin-{{ groups['etcd'][0] }}-key.pem"
|
||||
shell: |-
|
||||
echo -e '{{ calico_rr_node.stdout }}' |
|
||||
{{ bin_dir }}/calicoctl.sh replace -f-
|
||||
retries: 4
|
||||
delay: "{{ retry_stagger | random + 3 }}"
|
||||
delegate_to: "{{ groups['etcd'][0] }}"
|
||||
|
||||
- meta: flush_handlers
|
||||
|
||||
- name: Calico-rr | Enable calico-rr
|
||||
service:
|
||||
name: calico-rr
|
||||
state: started
|
||||
enabled: yes
|
||||
- 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 }}"
|
||||
|
||||
Reference in New Issue
Block a user