From 6549b8f8ae1f6db922ebd51135feeb9a6ef86dc4 Mon Sep 17 00:00:00 2001 From: Erwan Miran Date: Tue, 16 Oct 2018 08:44:49 +0200 Subject: [PATCH] Ability to define the asNumber on a per node basis when route reflectors are not used in order to peer directly with routers (#3492) --- roles/network_plugin/calico/tasks/install.yml | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/roles/network_plugin/calico/tasks/install.yml b/roles/network_plugin/calico/tasks/install.yml index b0b5c1c31..fc359366c 100644 --- a/roles/network_plugin/calico/tasks/install.yml +++ b/roles/network_plugin/calico/tasks/install.yml @@ -159,6 +159,52 @@ - calico_version | version_compare('v3.0.0', '<') - nodeToMeshEnabled|default(True) +- name: Calico | Configure node asNumber for per node peering + shell: > + echo '{ + "apiVersion": "projectcalico.org/v3", + "kind": "Node", + "metadata": { + "name": "{{ inventory_hostname }}" + }, + "spec": { + "bgp": { + "asNumber": "{{ local_as }}" + }, + "orchRefs":[{"nodeName":"{{ inventory_hostname }}","orchestrator":"k8s"}] + }}' | {{ bin_dir }}/calicoctl create --skip-exists -f - + retries: 4 + delay: "{{ retry_stagger | random + 3 }}" + when: + - calico_version | version_compare('v3.0.0', '>=') + - peer_with_router|default(false) + - inventory_hostname in groups['k8s-cluster'] + - local_as is defined + - groups['calico-rr'] | default([]) | length == 0 + +- name: Calico | Configure node asNumber for per node peering (legacy) + shell: > + echo '{ + "apiVersion": "v1", + "kind": "node", + "metadata": { + "name": "{{ inventory_hostname }}" + }, + "spec": { + "bgp": { + "asNumber": "{{ local_as }}" + }, + "orchRefs":[{"nodeName":"{{ inventory_hostname }}","orchestrator":"k8s"}] + }}' | {{ bin_dir }}/calicoctl create --skip-exists -f - + retries: 4 + delay: "{{ retry_stagger | random + 3 }}" + when: + - calico_version | version_compare('v3.0.0', '<') + - peer_with_router|default(false) + - inventory_hostname in groups['k8s-cluster'] + - local_as is defined + - groups['calico-rr'] | default([]) | length == 0 + - name: Calico | Configure peering with router(s) shell: > echo '{