refactor: 集中显式注入并归位凭据领域规则
This commit is contained in:
@@ -56,6 +56,17 @@ Makefile 与 Dockerfile 均继续构建 `cmd/main.go`。
|
||||
条件分支,也不为此引入插件注册框架。组件启动失败时释放已装配资源,正常退出则先停止
|
||||
manager worker,再释放连接。
|
||||
|
||||
Database 使用 Wire 式的显式构造函数注入,目前手写装配,不引入 Wire 生成器、Dig/Fx
|
||||
容器或运行时服务查找。`database_wiring.go` 集中展示 repository → 用例 → controller 的
|
||||
对象构造;`registerDatabaseControllers` 负责注册,返回的 `closeDatabaseConnections`
|
||||
只在 worker 停止后关闭 Instance 连接。controller 在启动时接收完整依赖,不在 Reconcile
|
||||
或 SetupWithManager 中补建 adapter/service;缺失依赖在注册时失败。
|
||||
|
||||
domain 持有凭据值对象、准备资格与创建恢复规则;application 只组织读写、调用领域判断
|
||||
和保存结果。用例需要的 repository 接口与并发快照仍由消费方定义,不把所有类型都强塞
|
||||
进领域。Kubernetes adapter 将领域阶段映射为已有 Conditions,领域不依赖其字符串协议。
|
||||
单测检查 domain/controller 的依赖边界,并验证共享 writer、直连 reader 和服务的注入。
|
||||
|
||||
基础设施能力属于整个 controller-manager,不因首个消费者是 Database 就归入该领域。
|
||||
`internal/infra/openbao` 管理官方 SDK client 的 TLS 配置、Kubernetes 认证及 token 生命周期,
|
||||
不依赖 Database 或其他产品领域。Bao client 默认禁用自动重试,写入结果不确定时由用例处理;
|
||||
|
||||
@@ -183,6 +183,10 @@ Database 已有 `status.credentialRef` 和 `status.credentialVersion` 的字段
|
||||
顺序为固定位置 → 确认后端尚无凭据 → 保存 CreationStarted → 创建并回读 → 保存确认版本。
|
||||
`CredentialReconciler` 只负责 Database/Tenant/Instance watch 和 30 秒依赖重查;
|
||||
Kubernetes repository 负责直接读取及有 resourceVersion 保护的状态更新。
|
||||
三类 controller 的依赖均在 bootstrap 显式组装,不在 Reconcile 中构造服务。
|
||||
`domain/credential` 保存应用凭据值对象、准备资格、固定位置与未确认创建的恢复规则;
|
||||
application 保留 I/O 顺序、消费方接口及并发快照,不再复用绑定用例的快照类型。
|
||||
领域阶段与 `CredentialsReady`/Reason 的转换由 Kubernetes adapter 负责,已有 API 保持兼容。
|
||||
|
||||
外部操作前后回查目标:Database 必须仍是同一 UID/resourceVersion,Tenant/Instance 必须
|
||||
保持绑定、spec generation、删除状态、finalizer 保护与有效 Ready;无关 Conditions 刷新
|
||||
|
||||
Reference in New Issue
Block a user