refactor: 移除 Database registry 与 Instance 初始化依赖
This commit is contained in:
+11
-10
@@ -11,8 +11,8 @@ Retain 后人工重新绑定与资源侧 Delete。撤销 PostgreSQL ownership re
|
||||
|
||||
依据 [ADR-0009](../decisions/0009-database-resource-and-claim.md),当前合同见
|
||||
[系统规格](specification.md)。下面的迁移来源与已存在代码不反向约束新设计。
|
||||
本轮只有文档修订,registry adapter、旧 Instance 判定与测试仍待代码重构撤除;新增 Database
|
||||
资源、绑定、导入、角色/凭据管理边界与回收链路尚未实现。wiki 同步位置见
|
||||
registry adapter、专属迁移/测试及 Instance 的 registry 判定现已撤除;Instance 根据完整管理
|
||||
能力观察直接判定 Ready。新增 Database 资源、绑定、导入、角色/凭据管理边界与回收链路尚未实现。wiki 同步位置见
|
||||
`homelab-wiki/services/postgresql-tenant-operator.md`,跨仓库发布状态由 wiki 的同步记录维护。
|
||||
|
||||
## 来源基线
|
||||
@@ -35,7 +35,7 @@ Retain 后人工重新绑定与资源侧 Delete。撤销 PostgreSQL ownership re
|
||||
代码被移动到 Ayatori 的 `internal/database/domain/instance`,测试 import 和文档链接相应更新;
|
||||
首个后续切片按已批准合同增加 Instance extension observation:观测与当前 target 绑定,进入重新
|
||||
验证或删除时失效,且支持判定不授权 Tenant provisioning。已有 Ready 切片曾按原合同加入
|
||||
registry 准备决策;这一依赖现已撤销,后续须从代码移除,不能把旧运行链路接回模型。
|
||||
registry 准备决策;这一依赖现已从代码移除,不能把旧运行链路接回模型。
|
||||
各层验证边界见 [Instance 领域规格](domain-instance.md)。
|
||||
|
||||
## 边界
|
||||
@@ -97,15 +97,16 @@ checkpoint/status/finalizer 链路仍是后续切片。
|
||||
单元测试补充成功空列表、查询附带部分数据时丢弃、结果与可变 slice 隔离、每轮重新读取和
|
||||
generation 变化时的目标绑定;原凭据/TLS/超时/并发测试沿同一 metadata 路径继续运行。
|
||||
|
||||
## 待撤换的 registry 实现
|
||||
## Registry 撤除
|
||||
|
||||
`adapter/postgresql/registry` 曾从固定来源基线迁入,使用调用方提供的 pgx 连接和 tern
|
||||
迁移;已有测试覆盖唯一约束、Retain 墓碑和事务结果不确定的恢复。这是旧实现状态,
|
||||
不再是新领域需求,也未装配到 InstanceService。
|
||||
原 `adapter/postgresql/registry`、SQL 迁移、registry 专属集成测试及 tern 依赖已删除;
|
||||
未提交的 inspection 实验也已撤除。来源仍可在 Git 历史追溯,没有删除外部 PostgreSQL 对象。
|
||||
Instance 不再具有 InitializingRegistry 阶段、RegistryState、准备决策或回读方法;
|
||||
首次完整管理能力观察即可完成验证,重验失败则撤销本轮就绪证据。
|
||||
|
||||
工作树中另有未提交的 registry inspection 实验及测试,本轮保留,不继续接入或宣称完成。
|
||||
后续代码变更撤除 registry adapter、Instance 相关状态/方法和仅服务旧合同的测试与依赖,
|
||||
保留凭据、TLS、metadata 与真实权限验证的有效部分。不操作现有 PostgreSQL 服务或旧仓库工作树。
|
||||
保留凭据读取与连接刷新、TLS、metadata/扩展观察及其真实后端测试。领域测试覆盖每项能力
|
||||
在初次验证和 Ready 重验时失败、依赖恢复、重启后重新取证、错误目标/阶段及删除保护。
|
||||
这不等于管理权限探测矩阵或三资源 controller 已实现。
|
||||
|
||||
## 设计入口
|
||||
|
||||
|
||||
@@ -6,8 +6,7 @@
|
||||
## 当前设计验收(2026-09-24)
|
||||
|
||||
[ADR-0009](../decisions/0009-database-resource-and-claim.md) 将资源生命周期从 Tenant 中分离。
|
||||
新增验收矩阵见 [系统规格](specification.md#11-验收)。旧 registry 测试仅说明历史代码行为,
|
||||
不再是完成标准;代码重构时撤除,不继续 schema 审计或自动所有权恢复切片。
|
||||
新增验收矩阵见 [系统规格](specification.md#11-验收)。registry 实现、专属测试与迁移依赖已撤除,不继续 schema 审计或自动所有权恢复切片。
|
||||
|
||||
| 层次 | 本次设计要求 |
|
||||
| --- | --- |
|
||||
@@ -21,7 +20,7 @@ Instance 删除与 Released 引用。冲突必须给出可操作而不泄密的
|
||||
envtest 不运行 GC 或 ESO;这些行为必须由测试集群验证。
|
||||
新增资源 API 尚未实现,本轮没有完成或运行这些新增行为测试。
|
||||
|
||||
## Ayatori 已接入的凭据、metadata 与历史 registry 切片测试
|
||||
## Ayatori 已接入的凭据与 metadata 切片测试
|
||||
|
||||
本节命令已在 Ayatori 接入;以下历史 Compose/Kind 操作仍属于迁入的目标合同。
|
||||
|
||||
@@ -51,12 +50,8 @@ metadata 测试验证版本与可用扩展的只读查询,包括未安装扩
|
||||
权限撤回只修改每个场景自建 PostgreSQL 容器的 ACL;不连接现有服务。
|
||||
可用列表不等于安装权限,这些检查不替代后续的完整管理权限矩阵或 Instance Ready 验收。
|
||||
|
||||
registry 测试独立使用一次性 PostgreSQL,不启动 Kubernetes API server。覆盖重复和并发迁移、
|
||||
所有权唯一约束、并发占用、Retain 墓碑与 Delete 幂等、连接重建、取消恢复、未知 schema 与
|
||||
超前版本拒绝。通过在真实 COMMIT 成功后注入客户端错误,验证结果不确定时的重试;这不替代
|
||||
真实网络故障测试,也不覆盖跨后端的删除步骤。
|
||||
|
||||
工作树中未提交的 registry 回读实验不再继续;本轮保留其文件,不把实验测试作为新设计验收。
|
||||
Instance 领域测试不再提供 registry 状态,初次验证与 Ready 重验分别覆盖所有管理检查项的
|
||||
未观察、不可用、认证失败、权限不足及未知值,并验证依赖恢复;完整管理观察可直接 Ready。
|
||||
|
||||
这些测试尚不包含 Instance CRD/controller、Secret watch、status/finalizer 事件链、权限探测矩阵、ESO 或 Tenant 供应。版本查询成功不意味着 Instance Ready。
|
||||
|
||||
@@ -175,8 +170,8 @@ make test-integration
|
||||
```
|
||||
|
||||
该 target 会启动一次性 Compose 依赖,并通过 `POSTGRES_TEST_DSN` 把测试指向开发
|
||||
PostgreSQL。registry 测试会删除并重建固定的测试 schema,因此禁止将该变量指向真实
|
||||
homelab database。测试后运行 `make dev-down` 清理依赖。
|
||||
PostgreSQL。这是旧环境设计,不是当前 Ayatori 入口;当前 fixture 不接受外部 DSN,
|
||||
使用本页前部的 `make test-database-integration`,禁止把测试指向真实 homelab database。
|
||||
|
||||
Gitea Actions 的 job 本身运行在 Docker container 中,不能通过 `127.0.0.1` 访问
|
||||
Docker host 上发布的 Compose 端口。CI 会暂时将 job container 加入 Compose 网络,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
日期:2026-09-24。资源模型修订依据
|
||||
[ADR-0009](../decisions/0009-database-resource-and-claim.md),行为以
|
||||
[系统规格](specification.md) 为准。本页替代原 registry 准备与恢复合同,不表示代码已改完。
|
||||
[系统规格](specification.md) 为准。本页替代原 registry 准备与恢复合同;领域依赖已撤除,完整应用/controller 链路尚未接入。
|
||||
|
||||
## 职责
|
||||
|
||||
@@ -83,6 +83,6 @@ finalizer 不阻止并发申请 CR 创建;新请求见 Instance 删除中/不
|
||||
真实 API server 验证 Secret、resourceVersion、watch、finalizer;真实 PostgreSQL 验证
|
||||
权限、TLS、凭据更新和查询失败,不以领域布尔值或 server_version 查询代替管理权限验收。
|
||||
|
||||
现有 Instance 领域代码仍含 registry 判定,现有 registry adapter 和测试也尚未撤除。
|
||||
本轮只修订文档;后续代码重构必须删除 registry 依赖并重写对应测试,不能因旧测试通过
|
||||
就声称新 Instance Ready 或三资源生命周期已完成。
|
||||
Instance 领域代码、adapter 与测试的 registry 依赖已撤除。AssessManagement 根据完整观察
|
||||
直接完成验证;AssessReadiness 失败进入 Validating,依赖恢复后重新验证。领域测试覆盖各检查项
|
||||
在这两个入口的失败与恢复,但完整权限探测、Instance controller 和三资源生命周期尚未完成。
|
||||
|
||||
Reference in New Issue
Block a user