feat: 接入 Instance 版本与扩展可用性观测 #8

Merged
panxiao81 merged 1 commits from feat/database-metadata-observation into main 2026-09-24 16:51:48 +00:00
Owner

变更

延续原项目批准的 Instance 合同,在现有 CredentialReader → Connector → Database 边界接入只读 metadata,不新增连接池封装或任意查询回调。

  • 单条 SQL 查询 pg_catalog 限定的服务器版本和 pg_available_extensions;可用集合不等于已安装集合或安装权限。
  • ObserveMetadata 每轮重新读取,在 Secret 有效值回读一致后绑定当前 target/generation;查询失败或中途轮换丢弃整份结果。
  • 成功空集合与未观察分开;不可变扩展集合与 adapter slice 隔离。
  • ObserveVersion 委托同一条 metadata 路径,原凭据、TLS、超时和并发验证继续覆盖新路径。

验证

  • go test -tags=integration -race -count=1 ./... 全部通过,真实 PostgreSQL 集成包 103 秒。
  • golangci-lint run --build-tags=integration ./...:0 issues。
  • make manifests generate 无额外生成文件差异;git diff --check 通过。
  • 新增真实 API server + 临时 PostgreSQL 场景:未安装扩展、名称大小写、search_path 遮蔽、低权限账号读取、撤销权限失败及恢复、中途凭据轮换丢弃扩展结果。
  • 单元测试:每轮刷新、成功空列表、部分数据伴随失败、slice 隔离、目标变化与 generation 绑定。

边界

不安装扩展、不初始化 registry、不产生完整管理能力结论或 Instance Ready。管理权限矩阵、registry 完整回读与 checkpoint/status/finalizer/controller 链路仍待后续切片。可用性成功不授予 Tenant 写权限。

已更新模块 README 与测试文档;wiki 合同不变,不重复记录实现进度。未触碰原 PostgreSQL Tenant Operator 的受保护未提交文件,也未改动 #2。

## 变更 延续原项目批准的 Instance 合同,在现有 CredentialReader → Connector → Database 边界接入只读 metadata,不新增连接池封装或任意查询回调。 - 单条 SQL 查询 pg_catalog 限定的服务器版本和 pg_available_extensions;可用集合不等于已安装集合或安装权限。 - ObserveMetadata 每轮重新读取,在 Secret 有效值回读一致后绑定当前 target/generation;查询失败或中途轮换丢弃整份结果。 - 成功空集合与未观察分开;不可变扩展集合与 adapter slice 隔离。 - ObserveVersion 委托同一条 metadata 路径,原凭据、TLS、超时和并发验证继续覆盖新路径。 ## 验证 - go test -tags=integration -race -count=1 ./... 全部通过,真实 PostgreSQL 集成包 103 秒。 - golangci-lint run --build-tags=integration ./...:0 issues。 - make manifests generate 无额外生成文件差异;git diff --check 通过。 - 新增真实 API server + 临时 PostgreSQL 场景:未安装扩展、名称大小写、search_path 遮蔽、低权限账号读取、撤销权限失败及恢复、中途凭据轮换丢弃扩展结果。 - 单元测试:每轮刷新、成功空列表、部分数据伴随失败、slice 隔离、目标变化与 generation 绑定。 ## 边界 不安装扩展、不初始化 registry、不产生完整管理能力结论或 Instance Ready。管理权限矩阵、registry 完整回读与 checkpoint/status/finalizer/controller 链路仍待后续切片。可用性成功不授予 Tenant 写权限。 已更新模块 README 与测试文档;wiki 合同不变,不重复记录实现进度。未触碰原 PostgreSQL Tenant Operator 的受保护未提交文件,也未改动 #2。
panxiao81 added 1 commit 2026-09-24 15:15:47 +00:00
feat: 接入 Instance 版本与扩展可用性观测
Verify / test (pull_request) Successful in 6m1s
Verify / lint (pull_request) Successful in 7m19s
Verify / database-integration (pull_request) Successful in 5m11s
9441b568da
panxiao81 merged commit e2e795a889 into main 2026-09-24 16:51:48 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: panxiao81/ayatori#8