Parameterize number of evpn tunnels for frr
Related-Prod: PRODX-11698
Change-Id: I176fb7b305ab40edbc034afdcfb987ddba6a86cc
diff --git a/de/heat-templates/scripts/instance_boot.sh b/de/heat-templates/scripts/instance_boot.sh
index 913858b..4e4c652 100644
--- a/de/heat-templates/scripts/instance_boot.sh
+++ b/de/heat-templates/scripts/instance_boot.sh
@@ -26,6 +26,7 @@
IRONIC_BAREMETAL_TUNNEL_NETWORK=$ironic_baremetal_tunnel_cidr
TUNNEL_INTERFACE_IP=$tunnel_interface_ip
FRR_BGP_NEIGHBORS=$frr_bgp_neighbors
+FRR_EVPN_TUNNELS_RANGE=$frr_evpn_tunnels_range
TUNNEL_INTERFACE_NETWORK_NETMASK=$(ip -o addr show |grep -w ${TUNNEL_INTERFACE_IP} | awk '{print $4}' |awk -F '/' '{print $2}')
TUNNEL_INTERFACE=$(ip -o addr show |grep -w ${TUNNEL_INTERFACE_IP}/${TUNNEL_INTERFACE_NETWORK_NETMASK} | awk '{print $2}')
NODE_TYPE=$node_type
@@ -95,6 +96,7 @@
FRR_ROUTER_ID=${TUNNEL_INTERFACE_IP}
FRR_BGP_SOURCE_ADDRESS=${TUNNEL_INTERFACE_IP}
FRR_BGP_NEIGHBORS=${FRR_BGP_NEIGHBORS:-}
+FRR_EVPN_TUNNELS_RANGE=${FRR_EVPN_TUNNELS_RANGE:-'20 50'}
function retry {
local retries=$1
@@ -673,40 +675,50 @@
network:
version: 2
ethernets:
- vxlan20: {}
+EOF
+for vni in $(seq ${FRR_EVPN_TUNNELS_RANGE}); do
+cat << EOF >> /etc/netplan/60-evpn.yaml
+ vxlan$vni: {}
+EOF
+done
+cat << EOF >> /etc/netplan/60-evpn.yaml
bridges:
- br20:
+EOF
+for vni in $(seq ${FRR_EVPN_TUNNELS_RANGE}); do
+cat << EOF >> /etc/netplan/60-evpn.yaml
+ br$vni:
dhcp4: false
- interfaces:
- - vxlan20
parameters:
stp: false
+ interfaces:
+ - vxlan$vni
addresses:
- - 192.168.20.254/24
+ - 192.168.$vni.254/24
EOF
+done
-cat << EOF > /etc/systemd/system/evpn-vxlan-tunnel.service
+for vni in $(seq ${FRR_EVPN_TUNNELS_RANGE}); do
+cat << EOF > /etc/systemd/system/evpn-vxlan-tunnel-${vni}.service
[Unit]
-Description=EVPN tunnel
+Description=EVPN tunnel ${vni}
After=network.target
[Service]
Type=oneshot
RemainAfterExit=true
-ExecStart=/sbin/ip link add vxlan20 type vxlan id 20 local ${TUNNEL_INTERFACE_IP} nolearning
-ExecStart=/sbin/ip link set vxlan20 up
+ExecStart=/sbin/ip link add vxlan${vni} type vxlan id ${vni} local ${TUNNEL_INTERFACE_IP} nolearning
+ExecStart=/sbin/ip link set vxlan${vni} up
[Install]
WantedBy=multi-user.target
EOF
-
- systemctl enable evpn-vxlan-tunnel.service
- systemctl start evpn-vxlan-tunnel.service
+ systemctl enable evpn-vxlan-tunnel-${vni}.service
+ systemctl start evpn-vxlan-tunnel-${vni}.service
+done
netplan --debug apply
# NOTE(vsaienko): give some time to apply changes
sleep 15
-
}
function install_frr {