feat: 接入管理 Secret 凭据与连接刷新 #6

Merged
panxiao81 merged 4 commits from feat/database-admin-credentials into main 2026-09-24 14:45:58 +00:00
3 changed files with 11 additions and 25 deletions
Showing only changes of commit 3d91abe380 - Show all commits
+4 -19
View File
@@ -47,8 +47,6 @@ jobs:
database-integration: database-integration:
runs-on: [self-hosted, pod] runs-on: [self-hosted, pod]
timeout-minutes: 30 timeout-minutes: 30
env:
DOCKER_HOST: unix:///var/run/docker.sock
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
@@ -61,26 +59,13 @@ jobs:
go-version-file: go.mod go-version-file: go.mod
cache: true cache: true
# 复用 dynamic runner 的 pod-smoke:daemon 与数据只属于本次 Pod job。 # Runner 提供本 job 可用的 Docker;workflow 只验证,不重复启动 daemon。
- name: Start job-local Docker - name: Verify Docker availability
shell: bash shell: bash
run: | run: |
set -euo pipefail set -euo pipefail
command -v docker docker version
command -v dockerd docker info --format 'Server={{.ServerVersion}} StorageDriver={{.Driver}}'
sudo -n nohup dockerd \
--host=unix:///var/run/docker.sock \
--storage-driver=overlay2 \
>/tmp/ayatori-dockerd.log 2>&1 &
for _ in {1..60}; do
if docker info >/dev/null 2>&1; then
docker version
exit 0
fi
sleep 1
done
cat /tmp/ayatori-dockerd.log
exit 1
- name: Test Database integration with real backends - name: Test Database integration with real backends
run: make test-database-integration run: make test-database-integration
+2 -2
View File
@@ -53,8 +53,8 @@ controller 接入、Secret watch、finalizer、registry 与真实权限检查仍
运行 `make test-database-integration` 验证真实 API server + 一次性 PostgreSQL;fixture 不接受外部 运行 `make test-database-integration` 验证真实 API server + 一次性 PostgreSQL;fixture 不接受外部
DSN,镜像固定摘要,使用随机本机回环端口并在退出时删除测试容器。覆盖缺失/错误凭据、RBAC、 DSN,镜像固定摘要,使用随机本机回环端口并在退出时删除测试容器。覆盖缺失/错误凭据、RBAC、
namespace 边界、有效值轮换、metadata 无关变化、中途轮换、重建/重试、并发读取、Forget/Close namespace 边界、有效值轮换、metadata 无关变化、中途轮换、重建/重试、并发读取、Forget/Close
与 TLS DNS/IP SAN、错误 CA/主机名和禁止明文降级。CI 使用 Pod runner 执行,workflow 显式启动 与 TLS DNS/IP SAN、错误 CA/主机名和禁止明文降级。CI 使用 Pod runner 执行,由 runner 提供
本 job 独占的 Docker daemon,随 Pod 销毁;不依赖 VM 或共享宿主 Docker。普通 lint 之外还检查 可用的 Docker,workflow 只做预检、不自行启动 daemon;不依赖 VM。普通 lint 之外还检查
integration 标签代码。领域单测、真实 API 行为与真实 PostgreSQL 行为分别验收,不以本切片 integration 标签代码。领域单测、真实 API 行为与真实 PostgreSQL 行为分别验收,不以本切片
替代整个 Instance controller 的集成验收。 替代整个 Instance controller 的集成验收。
+5 -4
View File
@@ -21,10 +21,11 @@ TLS 测试在临时目录生成一次性证书与私钥,不使用生产 CA。
当前覆盖固定 namespace 的 Secret 读取与 RBAC、缺失/无效凭据恢复、有效凭据变化后的重连、 当前覆盖固定 namespace 的 Secret 读取与 RBAC、缺失/无效凭据恢复、有效凭据变化后的重连、
无关字段更新不重连、中途轮换时丢弃观察、会话重建、并发读取、本地连接释放和 TLS 验证。 无关字段更新不重连、中途轮换时丢弃观察、会话重建、并发读取、本地连接释放和 TLS 验证。
快速测试、lint 和 Database 集成测试均使用 Pod runner。集成 job 按 dynamic runner 的 快速测试、lint 和 Database 集成测试均使用 Pod runner。按维护者于 2026-09-21 更新的接口
`pod-smoke.yml` 显式启动 Pod 内独占的 Docker daemon(overlay2),预检成功后再运行测试, 约定,runner 提供默认可用的 Docker;workflow 通过 `docker version` 和 `docker info` 预检,
不依赖 VM、共享宿主 Docker 或生产数据库。daemon 与数据随 job Pod 销毁。 不自行启动 daemon、不强制 storage driver 或覆盖 Docker endpoint。该约定的 CI 验收依赖
daemon 启动失败会打印启动日志;fixture 启动失败会保留退出错误与 stderr,并遮蔽测试密码, runner 后端修复上线,不能从本地测试通过推断远端已经可用。
fixture 启动失败会保留退出错误与 stderr,并遮蔽测试密码,
以区分缺少命令、daemon 不可达、权限和镜像拉取失败。 以区分缺少命令、daemon 不可达、权限和镜像拉取失败。
这些测试尚不包含 Instance CRD/controller、Secret watch、status/finalizer 事件链、registry、 这些测试尚不包含 Instance CRD/controller、Secret watch、status/finalizer 事件链、registry、