docs: clarify Instance identity and deletion semantics
This commit is contained in:
+17
-5
@@ -1,6 +1,6 @@
|
||||
# Instance 领域对象规格
|
||||
|
||||
状态:Draft,待批准。日期:2026-09-12。
|
||||
状态:Draft,含已确认决策。日期:2026-09-13。
|
||||
|
||||
上层边界见 [领域模型](domain-model.md)。本文只展开 Instance,不包含 Tenant 的供应
|
||||
实现,也不新增 CRD 字段。设计签名用于评审职责与行为,不是待复制的 Go 接口代码。
|
||||
@@ -18,6 +18,11 @@ context、客户端或 IO 接口。领域行为不是公共 SetReady:调用方
|
||||
每轮从 CR 重建一个 Instance;对象不跨 reconcile 缓存,也不是线程共享单例。
|
||||
管理连接可由装配层跨轮次复用,但连接复用不代表上次能力验证仍然成立。
|
||||
|
||||
身份与 endpoint 以管理员声明为准。改变 endpoint 不验证是否同一物理服务器或
|
||||
registry,不增加安装身份连续性检查;只使旧观察失效,按新配置重验管理能力。
|
||||
新 CR 是新 Instance,不自动获得旧 UID 资源的所有权,也不迁移或清理旧目标。
|
||||
下文“观察绑定匹配”仅指结果属于本轮身份/配置,不是物理服务器身份认证协议。
|
||||
|
||||
## 2. 字段与值对象
|
||||
|
||||
所有可变状态封装在对象内部。构造后身份和本轮 definition 不可变;配置变更通过
|
||||
@@ -130,8 +135,8 @@ EnsureRegistry(context, target) -> Completed | AccessFailure
|
||||
endpoint 的成功结果不得用于新 endpoint。Inspect 是只读;EnsureRegistry 是幂等初始化/迁移,
|
||||
不能顺带建立 Tenant 数据库或接管未知 schema。Completed 不足以推进 Ready,必须回读。
|
||||
|
||||
适配器由装配层绑定管理连接;凭据源、连接池释放及 Bao token 重新认证留在该边界
|
||||
之后。适配器不得自行把基础设施异常转换成 Ready。返回的失败至少区分依赖不可用、
|
||||
适配器由装配层绑定管理连接;Secret 读取与连接池释放留在该边界之后,Instance
|
||||
管理连接不涉及 Bao token。适配器不得把基础设施异常转换成 Ready。失败区分依赖不可用、
|
||||
认证失败、权限不足和 registry 不兼容;不兼容属于不可安全继续,不自动覆写。
|
||||
registry 不兼容的具体 Condition 映射须在接口规格中确定,不能统一误报权限不足。
|
||||
|
||||
@@ -184,7 +189,13 @@ Ready --registry 需修复/保存--> InitializingRegistry
|
||||
- 外部 IO 超时:产生安全失败结果;保存 status 使用仍有效的外层上下文,不能复用
|
||||
已超时的 IO 上下文而丢失失败状态。
|
||||
- 已请求删除的 Instance 不允许新供应;BeginDeletion 不删除 PostgreSQL、Tenant 或
|
||||
Bao。Tenant 引用检查及 Instance 删除竞争协议仍需另行批准。
|
||||
Bao。应用层在开始受管时添加并保存 finalizer,而非出现 Tenant 后再添加。
|
||||
删除时查询所有引用它的 Tenant(含删除中的对象);有引用或查询失败就保留
|
||||
finalizer,确认无引用才移除。引用查询、finalizer 写入和本地连接释放均不属于
|
||||
领域 IO,Instance 只根据删除请求禁用供应能力。
|
||||
- 首版不为 Instance 删除增加跨对象锁或准入控制。并发创建的 Tenant CR 不被
|
||||
finalizer 拦截,但遇到删除中/不存在的 Instance 不得开始供应;不承诺取消
|
||||
已在途的外部操作,也不声称引用查询与移除 finalizer 是跨对象原子事务。
|
||||
- CheckExtensions 失败不能产生任何外部写入;修改 allowlist 不会自行卸载扩展。
|
||||
- Snapshot、错误、日志和领域对象格式化不输出明文凭据或 token。
|
||||
- 领域测试只提供观察值,无需数据库、网络、context 或 IO mock;相同状态和输入
|
||||
@@ -197,6 +208,7 @@ Ready --registry 需修复/保存--> InitializingRegistry
|
||||
|
||||
本轮请先确认字段归属、应用层采集事实/Instance 纯决策的分工、方法与状态转换合同。
|
||||
管理 Secret 来源、Bao 故障不单独撤销 Instance Ready,以及管理用户名/密码变化时
|
||||
重建连接池已确认。其他决策及未决项见总体草案,不增加后台清扫器或状态字段。
|
||||
重建连接池,以及管理员声明的 Instance 身份/endpoint 和简化 finalizer 删除规则
|
||||
均已确认。其他决策及未决项见总体草案,不增加后台清扫器或状态字段。
|
||||
|
||||
批准本对象结构不等于批准这些未决行为,也不意味着立刻实现完整供应链路。
|
||||
|
||||
Reference in New Issue
Block a user