treasuremap/tools/deployment/seaworthy-virt/airship_gate/lib/bgp.sh

38 lines
1.4 KiB
Bash

#!/bin/bash
FRR_DAEMONS="${TEMP_DIR}/daemons"
FRR_DEBIAN_CONF="${TEMP_DIR}/debian.conf"
FRR_BGPD_CONF="${TEMP_DIR}/bgpd.conf"
bgp_router_config() {
frr_as_number="$(config_bgp_as "frr_as")"
calico_as_number="$(config_bgp_as "calico_as")"
bgp_net="$(config_netspec_for_role "bgp")"
frr_ip="$(config_vm_net_ip "build" "$bgp_net")"
# shellcheck disable=SC2016
FRR_AS=${frr_as_number} CALICO_AS=${calico_as_number} FRR_IP=${frr_ip} envsubst '${FRR_AS} ${CALICO_AS} ${FRR_IP}' < "${TEMPLATE_DIR}/bgpd_conf.sub" > "${FRR_BGPD_CONF}"
cp "${TEMPLATE_DIR}/daemons.sub" "${FRR_DAEMONS}"
cp "${TEMPLATE_DIR}/debian_conf.sub" "${FRR_DEBIAN_CONF}"
}
bgp_router_start() {
# nodename where BGP router should run
nodename=$1
remote_work_dir="/var/tmp/frr"
remote_daemons_file="${remote_work_dir}/$(basename "$FRR_DAEMONS")"
remote_debian_conf_file="${remote_work_dir}/$(basename "$FRR_DEBIAN_CONF")"
remote_bgpd_conf_file="${remote_work_dir}/$(basename "$FRR_BGPD_CONF")"
ssh_cmd "${nodename}" mkdir -p "${remote_work_dir}"
rsync_cmd "$FRR_DAEMONS" "${nodename}:${remote_daemons_file}"
rsync_cmd "$FRR_DEBIAN_CONF" "${nodename}:${remote_debian_conf_file}"
rsync_cmd "$FRR_BGPD_CONF" "${nodename}:${remote_bgpd_conf_file}"
ssh_cmd "${nodename}" docker run -ti -d --net=host --privileged -v /var/tmp/frr:/etc/frr --restart always --name FRRouting "$IMAGE_BGP"
}