Merge pull request 'ci: 运行 PostgreSQL adapter 集成测试' (#5) from ci/postgresql-integration into main
E2E Tests / Run on Ubuntu (push) Failing after 43s
Lint / Run on Ubuntu (push) Successful in 4m34s
Tests / Run on Ubuntu (push) Successful in 4m10s

Reviewed-on: #5
This commit was merged in pull request #5.
This commit is contained in:
2026-09-10 17:22:09 +00:00
3 changed files with 31 additions and 5 deletions
+12
View File
@@ -30,5 +30,17 @@ jobs:
go mod tidy
make test
- name: Running PostgreSQL Integration Tests
run: |
make dev-up
docker network connect postgresql-tenant-operator-dev_default "${HOSTNAME}"
POSTGRES_TEST_DSN="postgres://postgres:postgres-dev-only@postgres:5432/postgres?sslmode=disable" make test-integration
- name: Clean up Integration Dependencies
if: always()
run: |
docker network disconnect postgresql-tenant-operator-dev_default "${HOSTNAME}" || true
make dev-down
- name: Verify generated files and modules are current
run: git diff --exit-code
+2 -2
View File
@@ -65,8 +65,8 @@ homelab 日常集群。
Gitea Actions 直接使用 `.github/workflows` 中兼容 GitHub Actions 语法的工作流:
- `Tests`:运行生成、格式化、vet、envtest,并检查生成文件和 `go.mod`/`go.sum`
没有未提交漂移。
- `Tests`:运行生成、格式化、vet、envtest、一次性 Docker adapter integration tests,
并检查生成文件和 `go.mod`/`go.sum` 没有未提交漂移。
- `Lint`:校验 golangci-lint 配置并运行静态检查。
- `E2E Tests`:在一次性 Kind 集群中安装 CRD 和 controller,执行端到端验证。
+17 -3
View File
@@ -108,7 +108,21 @@ Kubernetes auth、最小 policy 和 ESO 必须在 Kind E2E fixture 中验证。
### 3. 运行针对临时依赖的测试或 controller
adapter 集成测试加入后,统一通过独立 Make target 执行,不默认塞进快速单元测试。
adapter 集成测试通过独立 Make target 执行,不默认塞进快速单元测试:
```sh
make test-integration
```
该 target 会启动一次性 Compose 依赖,并通过 `POSTGRES_TEST_DSN` 把测试指向开发
PostgreSQL。registry 测试会删除并重建固定的测试 schema,因此禁止将该变量指向真实
homelab database。测试后运行 `make dev-down` 清理依赖。
Gitea Actions 的 job 本身运行在 Docker container 中,不能通过 `127.0.0.1` 访问
Docker host 上发布的 Compose 端口。CI 会暂时将 job container 加入 Compose 网络,
并通过 `postgres:5432` 运行集成测试;清理前先断开该网络,才能删除 Compose
network。本机执行仍使用默认的 `127.0.0.1:15432`。
本机运行 controller 时,先确认当前 kubeconfig 指向专用 Kind,而不是真实 homelab:
```sh
@@ -157,8 +171,8 @@ E2E fixture 必须把测试 PostgreSQL、OpenBao 和 ESO 部署进 Kind,并等
-> 删除 Kind
```
当前 controller 尚未实现 PostgreSQL/OpenBao adapter,脚手架 E2E 只能验证 CRD、
manager Deployment 和 metrics endpoint。上述真实依赖 fixture 应与第一个完整
当前 controller 只实现 PostgreSQL registry adapter,尚未实现完整 PostgreSQL/OpenBao
provisioning;现有 E2E 只能验证 CRD、manager Deployment 和 metrics endpoint。上述真实依赖 fixture 应与第一个完整
reconcile 纵向切片一起实现,不能在文档中声称已经通过。
## 测试数据与泄漏检查