From 388e3f86f41c6de4691768e6f8a4afaaa22594cb Mon Sep 17 00:00:00 2001 From: panxiao81 Date: Fri, 25 Sep 2026 11:34:14 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=90=8C=E6=AD=A5=20Database=20API=20?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E4=B8=8E=E5=8E=9F=E7=94=9F=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/postgresql-tenant-operator.md | 15 ++++++++++++--- verification.md | 14 +++++++++++--- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/services/postgresql-tenant-operator.md b/services/postgresql-tenant-operator.md index 1e107d2..bb14baa 100644 --- a/services/postgresql-tenant-operator.md +++ b/services/postgresql-tenant-operator.md @@ -104,10 +104,11 @@ Delete 即为删除授权,不加第二次审批。动态凭据路径按 Databa 已有凭据位置;Released 不自动改密,重新开放前由管理员处理旧访问。 对应 Ayatori `docs/database/specification.md`、`domain-model.md` 与 `api-reference.md` 已推送为 [7e9e8e8](https://git.ddupan.top/panxiao81/ayatori/commit/7e9e8e828bfcbdc8d4e2fcb6bc3d13727712a82c), -由 [Ayatori PR #10](https://git.ddupan.top/panxiao81/ayatori/pulls/10) 跟踪;尚未合并。 +已随 [Ayatori PR #10](https://git.ddupan.top/panxiao81/ayatori/pulls/10) 通过三项 CI 并合并 main, +合并版本为 [55b269c](https://git.ddupan.top/panxiao81/ayatori/commit/55b269ce2eb40f6b44c1afe838389093efdac98e)。 -Ayatori 的 `feat/database-resource-api` 工作区已加入三资源 Go 类型、生成 CRD、Scheme 注册 -与 YAML 示例,已包含在上述本地提交,尚未发布。`make test` 使用真实 API server 验证作用域、默认值、声明 +Ayatori main 已加入三资源 Go 类型、生成 CRD、Scheme 注册与 YAML 示例,尚未部署为业务服务。 +`make test` 使用真实 API server 验证作用域、默认值、声明 校验、status 隔离、绑定写入版本冲突与示例。绑定 controller 已接入 manager:动态资源按 Tenant UID 命名,先写资源侧绑定,再回读补齐 Tenant status;进入 Binding 后固定申请目标, 拒绝 Released、旧 UID 和陈旧 Ready 观察。真实 API server 覆盖部分写入故障后新 reconciler @@ -147,6 +148,14 @@ GitOps、Terraform、kubectl 和未来 Backstage 计划共用这套 Kubernetes A ## 职责边界 +2026-09-25 维护者确认第一版 PostgreSQL 管理账号使用原生非 superuser 方案,具有 +CREATEDB/CREATEROLE,不引入 SECURITY DEFINER 接口。扩展安装按实际权限逐请求验证, +可用列表不等于任意扩展均可安装;基础管理能力不授予导入或接管他人资源的权限。 +这项决定沿用原安全文档的非 superuser 原则,并明确了此前未选定的实施方式。 +Instance 观测、Secret watch 与删除引用保护的后续实现目前位于 Ayatori +`feat/database-instance-observation` 工作区,尚未提交/发布;权限矩阵、启用方式和测试边界 +以该工作区 `docs/database/README.md`、`security.md` 为准,不能把 main 的旧实现当成已具备该能力。 + - operator 管理实例内的租户资源,不运行 PostgreSQL/OpenBao,也不管理 VM、存储、备份或 OpenBao PKI。 - 应用密码写入 OpenBao,不进入 CR、Event 或日志;ESO 负责向 Kubernetes 消费者投射。 - Database 默认 Retain;删除 Tenant 保留资源对象与数据,Released 不自动重新分配。 diff --git a/verification.md b/verification.md index bee84d7..08908e5 100644 --- a/verification.md +++ b/verification.md @@ -86,13 +86,21 @@ wiki 权威摘要:[DBaaS 设计](services/postgresql-tenant-operator.md#当前 删除前策略可改与 Database UID 凭据定位的决定已同步到 [DBaaS 设计](services/postgresql-tenant-operator.md#当前资源模型2026-09-24-已确认)。 依据维护者当日确认;Ayatori 已提交为 `7e9e8e828bfcbdc8d4e2fcb6bc3d13727712a82c`, -源码已推送至 [Ayatori PR #10](https://git.ddupan.top/panxiao81/ayatori/pulls/10), +源码已通过 [Ayatori PR #10](https://git.ddupan.top/panxiao81/ayatori/pulls/10) 的三项 CI, +并于同日按维护者要求合并为 +[55b269c](https://git.ddupan.top/panxiao81/ayatori/commit/55b269ce2eb40f6b44c1afe838389093efdac98e)。 wiki 按维护者要求直接合入 main,原 [wiki PR #3](https://git.ddupan.top/panxiao81/homelab-wiki/pulls/3) 保留为历史讨论入口;后续纯文档变更不另开 PR。 关联源码:[7e9e8e8](https://git.ddupan.top/panxiao81/ayatori/commit/7e9e8e828bfcbdc8d4e2fcb6bc3d13727712a82c)。 这只是第一版 API 范围确认,不表示新资源链路已实现。 -后续 `feat/database-resource-api` 工作区已实现三资源 schema 与真实 API server 校验, -本地 `make test` 通过;实现已包含在上述提交,远端 CI 结果以 PR 为准。已接入绑定 +上述已合并实现包含三资源 schema 与真实 API server 校验, +本地 `make test` 与远端 CI 均通过。已接入绑定 controller、目标固定、finalizer 保留与生成 RBAC,真实 API server 验证并发、补写及 watch。 尚未实现 finalizer 清理、供应与交付,不宣称完成三资源生命周期或现场验收。 + +同日确认原生非 superuser + CREATEDB/CREATEROLE 管理方案,已同步至 +[DBaaS 职责边界](services/postgresql-tenant-operator.md#职责边界)。后续 Instance 观测链路在 +`/tmp/ayatori-database-domain` 的 `feat/database-instance-observation` 分支,尚未提交;本地已通过 +全量测试、三轮 controller/application race、真实 PostgreSQL/API server 集成测试及普通/integration lint。 +源码文档已经同步,但固定 commit/PR 链接待提交后补齐,不代表已合并、部署或现场验收。