diff --git a/architecture/ayatori-control-plane.md b/architecture/ayatori-control-plane.md index 1e8d141..d77f2db 100644 --- a/architecture/ayatori-control-plane.md +++ b/architecture/ayatori-control-plane.md @@ -1,6 +1,6 @@ --- title: Ayatori 控制面边界 -last_reviewed: 2026-09-24 +last_reviewed: 2026-09-25 --- # Ayatori 控制面边界 @@ -53,6 +53,19 @@ Database 资源模型于 2026-09-24 明确采用官方 PV/PVC 的资源/申请 和[总体架构](https://git.ddupan.top/panxiao81/ayatori/src/branch/main/docs/architecture/overview.md)为准。 本页记录跨 homelab 的稳定边界,不表示 Ayatori 已部署或达到生产可用状态。 +## Controller 公共基础设施边界 + +2026-09-25 维护者确认:OpenBao 认证、客户端及 Kubernetes 读写访问是整个 controller 的 +infra 能力,不属于第一个使用它们的 Database 领域。启动入口统一装配和注入;公共层不反向 +依赖产品领域,也不为复用而增加全局注册中心或统一包装所有后端的 reader/writer。 +优先使用官方 SDK 和 manager 已提供的接口;不同身份与权限范围仍须显式隔离。 + +领域按用例需要定义 repository,adapter 保留对象映射、凭据格式、路径、冲突与恢复语义。 +例如 Database 七键凭据及 UID 路径不是通用 KV 规则。此次修订纠正原实现把 Bao 认证放在 +Database adapter 的归属,认证方式与部署位置约定不变。源码拆分由 +[PR #13](https://git.ddupan.top/panxiao81/ayatori/pulls/13) 跟踪,尚未合并;实现与详细约定见 +[65c60cc 的总体架构](https://git.ddupan.top/panxiao81/ayatori/src/commit/65c60cca4528bc8bf14783fb7b59922283059c02/docs/architecture/overview.md#进程内依赖边界)。 + ## CI 验证约定 2026-09-24 维护者决定:全量验证自动在 PR 执行,main push 不再重复运行;保留手动入口。 diff --git a/architecture/constraints.md b/architecture/constraints.md index 2b0fc84..15b9a21 100644 --- a/architecture/constraints.md +++ b/architecture/constraints.md @@ -6,6 +6,7 @@ | 约束 | 原因与边界 | 来源 | |---|---|---| +| Ayatori 公共 infra 与领域 repository 分离 | 连接、认证和官方读写客户端统一装配;领域保留对象映射和业务语义,不引入万能仓储 | [Controller 公共基础设施边界](ayatori-control-plane.md#controller-公共基础设施边界) | | 新增监控配置优先使用 ServiceMonitor、PodMonitor、PrometheusRule | VictoriaMetrics Operator 负责转换,避免同一目标/规则维护两套声明;历史 VM 配置按需另行迁移 | 维护者 2026-09-25 明确要求;[基础监控运维](../guides/monitoring-foundation.md) | | Ayatori 复用 Kubernetes API machinery,不复用其容器编排产品边界 | kube-apiserver/etcd 提供 API、watch、RBAC 与状态协调;领域调度、生命周期、恢复和 GC 属于 Ayatori controllers;Kubernetes workload 只是可替换 backend | [Ayatori 控制面边界](ayatori-control-plane.md) | | Kubernetes 内置资源不绑定上游实现组件 | 可由 Ayatori Agent/controller 实现和消费 Node、Lease 等 API;使用 Node 不推导必须部署 kubelet、Pod 或 kube-scheduler | [Ayatori 控制面边界](ayatori-control-plane.md) | diff --git a/services/postgresql-tenant-operator.md b/services/postgresql-tenant-operator.md index 31d7e01..65545d7 100644 --- a/services/postgresql-tenant-operator.md +++ b/services/postgresql-tenant-operator.md @@ -180,6 +180,9 @@ manager 已增加显式 HTTPS/CA、auth role、目标 SA/audience 配置、Runna 默认停用;controller 不自动创建身份或授予权限。真实受限 kubeconfig 启动 manager 的测试 验证 TokenRequest、续期、跨 namespace/其他 SA 拒绝、RBAC 撤回恢复与 Bao audience 校验, 三轮 race、本地全量测试和两种 lint 通过。生产 auth 配置与 Database 供应尚未接入,不代表已部署。 +认证客户端与生命周期按维护者确认的 +[公共 infra 边界](../architecture/ayatori-control-plane.md#controller-公共基础设施边界)整理, +Database 保留凭据 repository/adapter 语义;重构继续由同一 PR 跟踪,不表示供应链路已完成。 具体使用边界见该提交的 [认证会话说明](https://git.ddupan.top/panxiao81/ayatori/src/commit/f0aa86f67673fbfb5f182f3ce35679c614be968d/docs/database/README.md#openbao-kubernetes-认证会话)。 diff --git a/verification.md b/verification.md index 3e5aeb7..2da44c8 100644 --- a/verification.md +++ b/verification.md @@ -119,6 +119,14 @@ controller、目标固定、finalizer 保留与生成 RBAC,真实 API server 源码文档与 wiki 已同步边界和正式链接。认证尚未合并,不把本地验证等同于新 head 的远端 CI; 未部署生产 auth/RBAC,也未接入 Database 供应或 ESO 交付。 +同一 PR 的公共 infra 拆分已提交为 +[65c60cc](https://git.ddupan.top/panxiao81/ayatori/commit/65c60cca4528bc8bf14783fb7b59922283059c02)。 +Bao client/TLS 与认证不再归 Database;Secret 凭据适配器注入 manager 的直连 reader, +领域继续维护凭据格式和写入结果语义。分层约定已同步 +[控制面边界](architecture/ayatori-control-plane.md#controller-公共基础设施边界)及源码文档。 +全量单元/API 测试、真实 PostgreSQL/OpenBao 集成、公共 infra race 与两种 lint 本地通过; +新 head 的远端 CI 仍由 PR 跟踪,不把本地验证或本次文档同步当成合并、部署完成。 + ## 2026-09-25 sandbox 存储故障复盘的来源边界 维护者报告 VyOS 到 sandbox 的 LB 故障并授权恢复。现场确认 LB 配置未在故障当天更改,