Files
homelab-infra/platform/observability/metrics/tests/check-rules.sh
T
panxiao81 0988f5c37e
yaml / yaml (pull_request) Successful in 27s
ansible / collection-test (pull_request) Successful in 1m59s
ansible / lint (pull_request) Successful in 3m14s
feat: 补齐共享数据备份、证书续签与开发实例监控
2026-09-27 17:05:24 +00:00

21 lines
858 B
Bash

#!/usr/bin/env bash
# 依赖 Python 3 + PyYAML,以及 PATH 中的 promtool(验证版本 3.5.0)。
set -euo pipefail
test_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
check_dir="$(mktemp -d)"
trap 'rm -rf "$check_dir"' EXIT
python3 - "$test_dir/../rules" "$check_dir/rules.yaml" <<'PY'
import pathlib
import sys
import yaml
groups = []
for name in ("kubernetes-health", "host-health", "monitoring-delivery", "platform-controllers", "data-services", "openbao", "shared-data-maintenance"):
path = pathlib.Path(sys.argv[1]) / f"{name}.yaml"
groups.extend(yaml.safe_load(path.read_text())["spec"]["groups"])
pathlib.Path(sys.argv[2]).write_text(yaml.safe_dump({"groups": groups}, allow_unicode=True))
PY
cp "$test_dir/"*.test.yaml "$check_dir/"
promtool check rules "$check_dir/rules.yaml"
promtool test rules "$check_dir/"*.test.yaml