Support for BGP protocol and peer configuration for MetalLB

Change-Id: I43eb9ec44bd8edeae259e05af114ef3c41bdf4f0
diff --git a/kubernetes/files/kube-addons/metallb/metallb.yaml b/kubernetes/files/kube-addons/metallb/metallb.yaml
index 0c5e458..68f81a3 100644
--- a/kubernetes/files/kube-addons/metallb/metallb.yaml
+++ b/kubernetes/files/kube-addons/metallb/metallb.yaml
@@ -240,8 +240,16 @@
   config: |
     address-pools:
     - name: metallb-ip-space
-      protocol: layer2
+      protocol: {{ common.addons.get('metallb', {}).get('protocol', 'layer2') }}
       addresses:
       {%- for address in common.addons.get('metallb', {}).get('addresses', []) %}
       - {{ address }}
       {%- endfor %}
+      {%- if common.addons.metallb.peers is defined and common.addons.get('metallb', {}).get('protocol', 'layer2') == 'bgp' %}
+    peers:
+    {%- for peer in common.addons.get('metallb', {}).get('peers', []) %}
+    - peer-address: {{ peer.get('peer-address', '127.0.0.1') }}
+      peer-asn: {{ peer.get('peer-asn', '64512') }}
+      my-asn: {{ peer.get('my-asn', '64512') }}
+    {%- endfor %}
+    {%- endif %}