Files
hpnn-proto/lb/hc-config.sh
T

66 lines
1.5 KiB
Bash
Raw Normal View History

#!/bin/bash
# Генерация конфигурации демона hcd из topology.env — единственного источника
# правды по адресам стенда. Пока пул задан статически; на следующем шаге его
# место займёт модель Load_Balancer -> Listener -> Pool -> Member в OVSDB.
set -euo pipefail
LB_DIR=/opt/lb
# shellcheck disable=SC1091
source "$LB_DIR/topology.env"
OUT=${1:-/var/run/openvswitch/hc.json}
cat > "$OUT" <<EOF
{
"bridge": "$BR",
"of_version": "$OF",
"pool_id": $POOL_ID,
"slots": $SLOTS,
"slot_table": 11,
"dnat_table": 12,
"probe": "$HC_PROBE",
"http_path": "$HC_HTTP_PATH",
"interval": "$HC_INTERVAL",
"timeout": "$HC_TIMEOUT",
"rise": $HC_RISE,
"fall": $HC_FALL,
"api": "$HC_API",
"apply_script": "$LB_DIR/apply.sh",
"members": [
{
"id": 1,
"name": "be1",
"address": "$BE1_IP",
"port": $BE1_PORT,
"weight": 1,
"source": "$HC2_IP"
},
{
"id": 2,
"name": "be2",
"address": "$BE2_IP",
"port": $BE2_PORT,
"weight": 1,
"source": "$HC3_IP"
},
{
"id": 3,
"name": "be3",
"address": "$BE3_IP",
"port": $BE3_PORT,
"weight": 1,
"source": "$HC2_IP"
},
{
"id": 4,
"name": "be4",
"address": "$BE4_IP",
"port": $BE4_PORT,
"weight": 1,
"source": "$HC3_IP"
}
]
}
EOF
echo "$OUT"