Reviewed-on: #17 Reviewed-by: sundapeng <sundp@mail.zgclab.edu.cn> Reviewed-by: xuxt <xuxt@zgclab.edu.cn>
64 lines
1.9 KiB
Bash
Executable File
64 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
TEST_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||
AGENT_ROOT="$(cd "$TEST_ROOT/.." && pwd)"
|
||
MASTER_ROOT="$(cd "$AGENT_ROOT/../master" && pwd)"
|
||
REPO_ROOT="$(cd "$AGENT_ROOT/../.." && pwd)"
|
||
PRIVATE_ROOT="$TEST_ROOT/private"
|
||
TMP_ROOT="$TEST_ROOT/tmp"
|
||
|
||
AGENT_HOSTNAME="dev-e2euser-e2einst-pod-0"
|
||
AGENT_CONFIG_DIR="$PRIVATE_ROOT/argus/agent/$AGENT_HOSTNAME"
|
||
AGENT_HEALTH_DIR="$PRIVATE_ROOT/argus/agent/$AGENT_HOSTNAME/health"
|
||
MASTER_PRIVATE_DIR="$PRIVATE_ROOT/argus/master"
|
||
METRIC_PRIVATE_DIR="$PRIVATE_ROOT/argus/metric/prometheus"
|
||
DNS_DIR="$PRIVATE_ROOT/argus/etc"
|
||
BIND_IMAGE_TAG="${BIND_IMAGE_TAG:-argus-bind9:latest}"
|
||
BIND_ROOT="$(cd "$MASTER_ROOT/../bind" && pwd)"
|
||
|
||
ensure_image() {
|
||
local image="$1"
|
||
if ! docker image inspect "$image" >/dev/null 2>&1; then
|
||
echo "[ERROR] Docker image '$image' 未找到,请先运行统一构建脚本 (例如 ./build/build_images.sh) 生成所需镜像" >&2
|
||
exit 1
|
||
fi
|
||
}
|
||
|
||
mkdir -p "$AGENT_CONFIG_DIR"
|
||
mkdir -p "$AGENT_HEALTH_DIR"
|
||
mkdir -p "$MASTER_PRIVATE_DIR"
|
||
mkdir -p "$METRIC_PRIVATE_DIR"
|
||
mkdir -p "$TMP_ROOT"
|
||
mkdir -p "$DNS_DIR"
|
||
|
||
touch "$AGENT_HEALTH_DIR/.keep"
|
||
|
||
# 中文提示:准备 bind 模块提供的 update-dns.sh,模拟生产下发
|
||
if [[ -f "$BIND_ROOT/build/update-dns.sh" ]]; then
|
||
cp "$BIND_ROOT/build/update-dns.sh" "$DNS_DIR/update-dns.sh"
|
||
chmod +x "$DNS_DIR/update-dns.sh"
|
||
else
|
||
echo "[WARN] bind update script missing at $BIND_ROOT/build/update-dns.sh"
|
||
fi
|
||
|
||
ensure_image "argus-master:latest"
|
||
ensure_image "$BIND_IMAGE_TAG"
|
||
|
||
AGENT_BINARY="$AGENT_ROOT/dist/argus-agent"
|
||
|
||
pushd "$AGENT_ROOT" >/dev/null
|
||
./scripts/build_binary.sh
|
||
popd >/dev/null
|
||
|
||
if [[ ! -x "$AGENT_BINARY" ]]; then
|
||
echo "[ERROR] Agent binary not found at $AGENT_BINARY" >&2
|
||
exit 1
|
||
fi
|
||
|
||
echo "$AGENT_BINARY" > "$TMP_ROOT/agent_binary_path"
|
||
echo "$BIND_IMAGE_TAG" > "$TMP_ROOT/bind_image_tag"
|
||
|
||
echo "[INFO] Agent E2E bootstrap complete"
|