From c59407f105c52a290eb4a2b8a951ccebd17922f6 Mon Sep 17 00:00:00 2001
From: kakkotetsu <kakkotetsu@users.noreply.github.com>
Date: Mon, 20 Dec 2021 18:51:25 +0900
Subject: [PATCH] add support for Calico BGPPeer sourceAddress (#8306)

---
 docs/calico_peer_example/new-york.yml         | 2 ++
 docs/calico_peer_example/paris.yml            | 2 ++
 roles/network_plugin/calico/tasks/install.yml | 3 ++-
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/docs/calico_peer_example/new-york.yml b/docs/calico_peer_example/new-york.yml
index dd4d8125b..af497a9a9 100644
--- a/docs/calico_peer_example/new-york.yml
+++ b/docs/calico_peer_example/new-york.yml
@@ -2,8 +2,10 @@
 # peers:
 #   - router_id: "10.99.0.34"
 #     as: "65xxx"
+#     sourceaddress: "None"
 #   - router_id: "10.99.0.35"
 #     as: "65xxx"
+#     sourceaddress: "None"
 
 # loadbalancer_apiserver:
 #   address: "10.99.0.44"
diff --git a/docs/calico_peer_example/paris.yml b/docs/calico_peer_example/paris.yml
index 6d4ab4179..1768e0305 100644
--- a/docs/calico_peer_example/paris.yml
+++ b/docs/calico_peer_example/paris.yml
@@ -2,8 +2,10 @@
 # peers:
 #   - router_id: "10.99.0.2"
 #     as: "65xxx"
+#     sourceaddress: "None"
 #   - router_id: "10.99.0.3"
 #     as: "65xxx"
+#     sourceaddress: "None"
 
 # loadbalancer_apiserver:
 #   address: "10.99.0.21"
diff --git a/roles/network_plugin/calico/tasks/install.yml b/roles/network_plugin/calico/tasks/install.yml
index e2ad4a78c..076b8b50a 100644
--- a/roles/network_plugin/calico/tasks/install.yml
+++ b/roles/network_plugin/calico/tasks/install.yml
@@ -418,7 +418,8 @@
       "spec": {
         "asNumber": "{{ item.as }}",
         "node": "{{ inventory_hostname }}",
-        "peerIP": "{{ item.router_id }}"
+        "peerIP": "{{ item.router_id }}",
+        "sourceAddress": "{{ item.sourceaddress|default('UseNodeIP') }}"
       }}
   register: output
   retries: 4
-- 
GitLab