docs: 明确 Ayatori 显式注入及领域边界
docs / check (push) Successful in 13m3s

This commit is contained in:
2026-09-27 19:18:07 +00:00
parent 4a9b584913
commit 575c98c303
2 changed files with 20 additions and 3 deletions
+13 -2
View File
@@ -60,13 +60,24 @@ infra 能力,不属于第一个使用它们的 Database 领域。启动入口
依赖产品领域,也不为复用而增加全局注册中心或统一包装所有后端的 reader/writer。 依赖产品领域,也不为复用而增加全局注册中心或统一包装所有后端的 reader/writer。
优先使用官方 SDK 和 manager 已提供的接口;不同身份与权限范围仍须显式隔离。 优先使用官方 SDK 和 manager 已提供的接口;不同身份与权限范围仍须显式隔离。
领域按用例需要定义 repository,adapter 保留对象映射、凭据格式、路径、冲突与恢复语义。 领域维护业务值对象与规则,application 按消费方需要定义 repository 接口,adapter 负责
例如 Database 七键凭据及 UID 路径不是通用 KV 规则。此次修订纠正原实现把 Bao 认证放在 对象映射与后端访问。例如 Database 七键凭据、位置约束及冲突恢复不是通用 KV 规则,
也不应因接入 Bao 而把这些业务规则归入 adapter。此次修订纠正原实现把 Bao 认证放在
Database adapter 的归属,认证方式与部署位置约定不变。源码拆分由 Database adapter 的归属,认证方式与部署位置约定不变。源码拆分由
[PR #13](https://git.ddupan.top/panxiao81/ayatori/pulls/13) 跟踪,2026-09-27 经维护者批准合并; [PR #13](https://git.ddupan.top/panxiao81/ayatori/pulls/13) 跟踪,2026-09-27 经维护者批准合并;
实现与详细约定见 实现与详细约定见
[6b2808c 的总体架构](https://git.ddupan.top/panxiao81/ayatori/src/commit/6b2808ce91b03215f466746a15d0c3d7442bb9d4/docs/architecture/overview.md#进程内依赖边界)。 [6b2808c 的总体架构](https://git.ddupan.top/panxiao81/ayatori/src/commit/6b2808ce91b03215f466746a15d0c3d7442bb9d4/docs/architecture/overview.md#进程内依赖边界)。
2026-09-27 维护者进一步确认采用 Wire 风格的显式构造器注入:当前规模由 bootstrap
集中手写装配,不引入运行时 IoC 容器或代码生成依赖。controller 接收装配完的用例,
不在 Reconcile 或注册过程中创建 adapter/use case。application 保留 I/O 编排、消费方
接口及并发快照;凭据值对象、准备资格和恢复规则归领域,Kubernetes Conditions 映射归
adapter。此约定用于纠正业务规则混入 application 及装配分散的问题,不要求把所有接口
和临时数据结构搬进领域。实现见待审阅的
[PR #15](https://git.ddupan.top/panxiao81/ayatori/pulls/15),具体边界与测试见
[7834cab 的总体架构](https://git.ddupan.top/panxiao81/ayatori/src/commit/7834cab/docs/architecture/overview.md#进程内依赖边界);
不改变现有 API 或凭据协议,尚未部署。
## CI 验证约定 ## CI 验证约定
2026-09-24 维护者决定:全量验证自动在 PR 执行,main push 不再重复运行;保留手动入口。 2026-09-24 维护者决定:全量验证自动在 PR 执行,main push 不再重复运行;保留手动入口。
+7 -1
View File
@@ -193,7 +193,8 @@ Database 保留凭据 repository/adapter 语义;装配由独立 bootstrap 包
版本漂移均按 Conflict 人工处理,不认领、不生成替代密码,也不随部署参数搬迁。 版本漂移均按 Conflict 人工处理,不认领、不生成替代密码,也不随部署参数搬迁。
按维护者要求,字段切片已扩展为一个完整的凭据准备行为,见 按维护者要求,字段切片已扩展为一个完整的凭据准备行为,见
[凭据准备闭环](https://git.ddupan.top/panxiao81/ayatori/src/commit/35ada6d7eb58245c5214632282178b145489d0dc/docs/database/README.md#凭据准备闭环), [凭据准备闭环](https://git.ddupan.top/panxiao81/ayatori/src/commit/35ada6d7eb58245c5214632282178b145489d0dc/docs/database/README.md#凭据准备闭环),
仍在 [PR #14](https://git.ddupan.top/panxiao81/ayatori/pulls/14) 审阅,未合并、未部署。 已随 [PR #14](https://git.ddupan.top/panxiao81/ayatori/pulls/14) 在 CI 三项检查通过后合并
(合并提交 `72ce3ed`),未部署。
显式设置 `--database-credential-mount` 后启用:校验双向绑定和 Instance,固定位置, 显式设置 `--database-credential-mount` 后启用:校验双向绑定和 Instance,固定位置,
创建并回读,保存确认版本。用例在 application,Kubernetes repository 负责状态写入, 创建并回读,保存确认版本。用例在 application,Kubernetes repository 负责状态写入,
controller 只驱动 watch/重查;Bao client 与认证生命周期仍由公共 infra 统一装配。 controller 只驱动 watch/重查;Bao client 与认证生命周期仍由公共 infra 统一装配。
@@ -204,6 +205,11 @@ controller 只驱动 watch/重查;Bao client 与认证生命周期仍由公共
删除边界;完整集成回归通过,但这不是现场验证。只有 CredentialsReady 可以为 True, 删除边界;完整集成回归通过,但这不是现场验证。只有 CredentialsReady 可以为 True,
PostgreSQL 创建、ESO 交付和删除回收尚未接入,Database/Tenant 不能据此宣告 Ready。 PostgreSQL 创建、ESO 交付和删除回收尚未接入,Database/Tenant 不能据此宣告 Ready。
凭据准备的分层进一步按维护者确认的
[显式装配与领域边界](../architecture/ayatori-control-plane.md#controller-公共基础设施边界)
重构,见待审阅的 [PR #15](https://git.ddupan.top/panxiao81/ayatori/pulls/15)。
该重构不扩展供应范围或修改凭据协议;本地完整集成回归已通过,尚未合并或部署。
- operator 管理实例内的租户资源,不运行 PostgreSQL/OpenBao,也不管理 VM、存储、备份或 OpenBao PKI。 - operator 管理实例内的租户资源,不运行 PostgreSQL/OpenBao,也不管理 VM、存储、备份或 OpenBao PKI。
- 应用密码写入 OpenBao,不进入 CR、Event 或日志;ESO 负责向 Kubernetes 消费者投射。 - 应用密码写入 OpenBao,不进入 CR、Event 或日志;ESO 负责向 Kubernetes 消费者投射。
- Database 默认 Retain;删除 Tenant 保留资源对象与数据,Released 不自动重新分配。 - Database 默认 Retain;删除 Tenant 保留资源对象与数据,Released 不自动重新分配。