Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4f6b916ae5
|
||
|
|
172c17bfa3
|
||
|
|
e37957f12d
|
||
|
|
0aaf689e2b
|
||
|
|
6d614d8d08
|
||
|
|
6863474c01
|
||
|
|
e43442c266
|
||
|
|
adf2812767
|
||
|
|
ceb58eb42b
|
||
|
|
8d0992f039
|
||
|
|
7fdc97e02b | ||
|
|
23ec3f4f5c
|
||
|
|
56cf76a358 |
@@ -34,6 +34,11 @@ Agent/CLI 和人工任务。当前 Job controller 是控制循环与 adapter 的
|
|||||||
内部 Run 能力,不构成 FaaS、Cloud Run 或应用托管承诺。KaaS 只有出现实际需求时才评估,不是
|
内部 Run 能力,不构成 FaaS、Cloud Run 或应用托管承诺。KaaS 只有出现实际需求时才评估,不是
|
||||||
产品路线的必达终点。
|
产品路线的必达终点。
|
||||||
|
|
||||||
|
Compute 方向已被记录但延后实施:选择性复用 `core/v1 Node` 与 Lease,由 Ayatori Compute Agent
|
||||||
|
实现节点状态并由自有 controller 调度,不引入 kubelet、Pod 或 kube-scheduler。长期 VM 主路径
|
||||||
|
可以是普通 Linux 节点上的 libvirt/QEMU;Proxmox 用于 brownfield adopt 和过渡。OpenSandbox/Kata
|
||||||
|
microVM 属于 Run/Sandbox 的隔离实现,不因此成为 VirtualMachine 资源。
|
||||||
|
|
||||||
详细设计以 Ayatori 仓库的
|
详细设计以 Ayatori 仓库的
|
||||||
[ADR-0001](https://git.ddupan.top/panxiao81/ayatori/src/branch/main/docs/decisions/0001-kubernetes-api-machinery.md)
|
[ADR-0001](https://git.ddupan.top/panxiao81/ayatori/src/branch/main/docs/decisions/0001-kubernetes-api-machinery.md)
|
||||||
、[ADR-0006](https://git.ddupan.top/panxiao81/ayatori/src/branch/main/docs/decisions/0006-demand-driven-resource-scope.md)
|
、[ADR-0006](https://git.ddupan.top/panxiao81/ayatori/src/branch/main/docs/decisions/0006-demand-driven-resource-scope.md)
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
| Ayatori 复用 Kubernetes API machinery,不复用其容器编排产品边界 | kube-apiserver/etcd 提供 API、watch、RBAC 与状态协调;领域调度、生命周期、恢复和 GC 属于 Ayatori controllers;Kubernetes workload 只是可替换 backend | [Ayatori 控制面边界](ayatori-control-plane.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) |
|
| Kubernetes 内置资源不绑定上游实现组件 | 可由 Ayatori Agent/controller 实现和消费 Node、Lease 等 API;使用 Node 不推导必须部署 kubelet、Pod 或 kube-scheduler | [Ayatori 控制面边界](ayatori-control-plane.md) |
|
||||||
| Ayatori 只为已验证的管理缺口新增北向资源 | 当前优先 Database、LoadBalancer、Bucket/Object Storage;VM 价值已确认但南向较重;Run 是内部切片,KaaS 按需,FaaS/PaaS 默认不做 | [Ayatori 控制面边界](ayatori-control-plane.md) |
|
| Ayatori 只为已验证的管理缺口新增北向资源 | 当前优先 Database、LoadBalancer、Bucket/Object Storage;VM 价值已确认但南向较重;Run 是内部切片,KaaS 按需,FaaS/PaaS 默认不做 | [Ayatori 控制面边界](ayatori-control-plane.md) |
|
||||||
|
| Ayatori Compute 复用 Node/Lease API,但不引入 Kubernetes workload plane | Compute Agent 实现 Node 状态;libvirt 是长期候选主路径,PVE 是 brownfield 过渡;Kata microVM 属于 Sandbox backend | [Ayatori 控制面边界](ayatori-control-plane.md) |
|
||||||
| Samba AD、OCI、Proxmox 优先 IaC,以代码为准 | Ansible/Terraform 声明及任务优先于旧 README;声明不等于已验证部署 | 维护者于 2026-09-16 明确、各服务使用指南 |
|
| Samba AD、OCI、Proxmox 优先 IaC,以代码为准 | Ansible/Terraform 声明及任务优先于旧 README;声明不等于已验证部署 | 维护者于 2026-09-16 明确、各服务使用指南 |
|
||||||
| 服务独立部署,Terraform root/state 按服务隔离 | 避免认证和变更影响范围绑在一起 | `AGENTS.md`、`CLAUDE.md` |
|
| 服务独立部署,Terraform root/state 按服务隔离 | 避免认证和变更影响范围绑在一起 | `AGENTS.md`、`CLAUDE.md` |
|
||||||
| OpenBao 恢复不能依赖 k3s 或读取自己内部的恢复凭据 | 先恢复信任根,再恢复消费者 | `infrastructure/openbao/README.md`、`CLAUDE.md` |
|
| OpenBao 恢复不能依赖 k3s 或读取自己内部的恢复凭据 | 先恢复信任根,再恢复消费者 | `infrastructure/openbao/README.md`、`CLAUDE.md` |
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
title: Gitea Dynamic Runner
|
title: Gitea Dynamic Runner
|
||||||
lifecycle: experimental
|
lifecycle: experimental
|
||||||
evidence: documented
|
evidence: documented
|
||||||
last_reviewed: 2026-09-16
|
last_reviewed: 2026-09-21
|
||||||
last_verified: null
|
last_verified: null
|
||||||
sources:
|
sources:
|
||||||
- https://git.ddupan.top/panxiao81/gitea-dynamic-runner/src/branch/main/README.md
|
- https://git.ddupan.top/panxiao81/gitea-dynamic-runner/src/branch/main/README.md
|
||||||
@@ -48,13 +48,23 @@ runs-on: [self-hosted, vm]
|
|||||||
|
|
||||||
| 接口 | 执行方式 | 使用时需要理解的边界 |
|
| 接口 | 执行方式 | 使用时需要理解的边界 |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `pod` | 动态 Kubernetes privileged Pod;workflow 使用 host executor | Docker、BuildKit、kind 等工具由 pipeline 按需 setup;这里的 host executor 指 Pod 内执行环境 |
|
| `pod` | 动态 Kubernetes privileged Pod;workflow 使用 host executor | 旧 README 要求 pipeline 按需 setup Docker;Docker 的新约定见下文。host executor 指 Pod 内执行环境 |
|
||||||
| `vm` | 动态 Cloud Hypervisor microVM | 每个任务创建独立 COW disk、seed 和 TAP,guest runner 执行一个 job 后关机并清理 |
|
| `vm` | 动态 Cloud Hypervisor microVM | 每个任务创建独立 COW disk、seed 和 TAP,guest runner 执行一个 job 后关机并清理 |
|
||||||
|
|
||||||
两种接口不能仅凭“环境一次性”就认定具有相同的隔离边界。
|
两种接口不能仅凭“环境一次性”就认定具有相同的隔离边界。
|
||||||
接入前需要结合项目设计约束和实际部署确认任务的信任范围。
|
接入前需要结合项目设计约束和实际部署确认任务的信任范围。
|
||||||
旧 homelab-infra 文档中的 `kind-microvm` 是早期记录,不作为本项目当前 workflow 接口。
|
旧 homelab-infra 文档中的 `kind-microvm` 是早期记录,不作为本项目当前 workflow 接口。
|
||||||
|
|
||||||
|
### Docker 可用性约定更新
|
||||||
|
|
||||||
|
维护者于 2026-09-21 明确:CI 后端正在修复,后续由 runner 保证 dockerd 默认可用。
|
||||||
|
这取代旧说明中要求业务 workflow 自行启动 Docker daemon 的部分;不能据此推断 BuildKit、
|
||||||
|
kind 等其他工具也默认就绪。数据库集成测试不因使用 Docker 而要求 VM。
|
||||||
|
消费方 workflow 应检查 Docker 是否可用,而不重复启动 daemon、强制 storage driver 或
|
||||||
|
覆盖 runner 提供的 endpoint。[Ayatori #6](https://git.ddupan.top/panxiao81/ayatori/pulls/6)
|
||||||
|
正在按此约定调整。此处依据维护者说明,不表示后端修复已经部署或远端集成已经通过,
|
||||||
|
`last_verified` 保持不变。
|
||||||
|
|
||||||
## 组件如何协作
|
## 组件如何协作
|
||||||
|
|
||||||
当前 README 描述的 bootstrap 路径为:
|
当前 README 描述的 bootstrap 路径为:
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
title: PostgreSQL Tenant Operator(计划中的 DBaaS)
|
title: PostgreSQL Tenant Operator(计划中的 DBaaS)
|
||||||
lifecycle: planned
|
lifecycle: planned
|
||||||
evidence: documented
|
evidence: documented
|
||||||
last_reviewed: 2026-09-16
|
last_reviewed: 2026-09-20
|
||||||
last_verified: null
|
last_verified: null
|
||||||
sources:
|
sources:
|
||||||
- https://git.ddupan.top/panxiao81/postgresql-tenant-operator
|
- https://git.ddupan.top/panxiao81/postgresql-tenant-operator
|
||||||
@@ -26,10 +26,45 @@ homelab 资源有限,为每个应用维护一套数据库会浪费资源。绝
|
|||||||
|
|
||||||
## 当前进度
|
## 当前进度
|
||||||
|
|
||||||
2026-09-16 查阅[项目 README](https://git.ddupan.top/panxiao81/postgresql-tenant-operator/src/branch/main/README.md)
|
维护者于 2026-09-20 提供的阶段状态如下:
|
||||||
与架构文档时,项目记录为 **API 骨架阶段,尚未对 PostgreSQL 或 OpenBao 执行写操作**。
|
|
||||||
已批准的设计合同不等于已经实现的功能,本文不表示 DBaaS 已上线。
|
- 已合并 Instance 的 Endpoint、凭据引用、身份/版本、定义与观测目标等值对象;
|
||||||
项目首页还注明 `config/samples` 保留旧 API 骨架,不能将其直接当作最终使用接口。
|
- 已合并扩展支持能力模型,以及 Instance 最小生命周期与状态 checkpoint;
|
||||||
|
- CI PR #14 已合并:lint/test 使用 Pod runner,e2e 使用 VM runner;当前没有开放 PR;
|
||||||
|
- 上述领域基础尚未接入实际运行链路,不能理解为新设计已经可用;
|
||||||
|
- 仍缺完整 Ready 判定、Kubernetes Secret 管理凭据与连接刷新、应用层/数据库 adapter/controller
|
||||||
|
接入、CRD 与批准规格对齐及集成验证;
|
||||||
|
- Tenant 的完整创建、凭据交付和 Retain/Delete 生命周期仍未完成;
|
||||||
|
- 旧运行链路仍包含直接读取 OpenBao 管理凭据的逻辑。
|
||||||
|
|
||||||
|
本地暂停在 `feature/instance-extension-observations`,有两个未提交文件,实现 Instance 接收扩展
|
||||||
|
观测及其测试。该部分此前只通过领域包 lint,未运行本地测试、未提交、未推送;分支仍基于 #13,
|
||||||
|
未包含刚合并的 CI 改动。该工作区必须原样保留,不能作为已合并能力或迁移来源。
|
||||||
|
|
||||||
|
已批准的设计合同不等于已经实现的功能,本文不表示 DBaaS 已上线。生成的 CRD/API 与 samples
|
||||||
|
仍可能落后于批准规格,不能直接作为最终使用接口。
|
||||||
|
|
||||||
|
2026-09-20,维护者决定将该项目合并为 Ayatori 的 Database 领域模块。已批准的规格、领域模型、
|
||||||
|
状态机和测试继续作为迁移合同;不会把独立仓库的 manager、生成文件和当前工作树整仓复制。
|
||||||
|
首个迁移基线使用包含已合并 Instance 领域基础与 CI #14 的最新 main commit,再按领域层、API、
|
||||||
|
adapter 和 controller 的纵向切片进入 Ayatori;暂停中的两个未提交文件不进入首个切片。旧仓库
|
||||||
|
在迁移完成并验收前仍是现有设计与代码的来源,本决定不表示 DBaaS 已上线。
|
||||||
|
|
||||||
|
维护者同时确认目前没有可用版本,也没有 PostgreSQL 实例或 Tenant 被该 operator 托管。因此
|
||||||
|
合并不承担旧运行链路、旧 CRD/status 或数据的兼容责任:直接读取 OpenBao 管理凭据的旧路径可以
|
||||||
|
删除,未投入使用且落后于规范的 CRD/samples/实现结构不保留兼容层。
|
||||||
|
|
||||||
|
源项目已批准的系统规格、API 语义、Instance/Tenant 领域模型、状态机、ownership registry、
|
||||||
|
凭据交付、Retain/Delete、恢复和测试设计整体直接复用为 Ayatori DBaaS 合同。大胆重构针对旧运行
|
||||||
|
实现和项目装配,不表示可以静默改变这些已批准行为;合同变化仍须先修订规格并单独评审。
|
||||||
|
|
||||||
|
原 `database.ddupan.top/v1alpha1` API group 也不保留。Ayatori 中的目标 API 使用
|
||||||
|
`database.ayatori.ddupan.top/v1alpha1`,并纳入统一的 `api/database/v1alpha1` 与 Database 模块
|
||||||
|
结构;由于不存在已部署消费者,不建立 alias 或 conversion 入口。
|
||||||
|
|
||||||
|
合并边界记录在 Ayatori PR
|
||||||
|
[#3 的 ADR-0008](https://git.ddupan.top/panxiao81/ayatori/src/commit/33fb3ec9725dca8a10f2ad4bcd71cf83413932ee/docs/decisions/0008-merge-postgresql-tenant-operator.md);
|
||||||
|
该决定已于 2026-09-21 合并 main,链接固定到合并版本;设计合并不表示 Database 实现已完成。
|
||||||
|
|
||||||
## 计划中的使用方式
|
## 计划中的使用方式
|
||||||
|
|
||||||
@@ -63,5 +98,6 @@ GitOps、Terraform、kubectl 和未来 Backstage 计划共用这套 Kubernetes A
|
|||||||
- [部署](https://git.ddupan.top/panxiao81/postgresql-tenant-operator/src/branch/main/docs/deployment.md)与[安全](https://git.ddupan.top/panxiao81/postgresql-tenant-operator/src/branch/main/docs/security.md):依赖和权限。
|
- [部署](https://git.ddupan.top/panxiao81/postgresql-tenant-operator/src/branch/main/docs/deployment.md)与[安全](https://git.ddupan.top/panxiao81/postgresql-tenant-operator/src/branch/main/docs/security.md):依赖和权限。
|
||||||
- [迁移](https://git.ddupan.top/panxiao81/postgresql-tenant-operator/src/branch/main/docs/migration.md)与[运维](https://git.ddupan.top/panxiao81/postgresql-tenant-operator/src/branch/main/docs/operations.md):现有数据库、删除和恢复合同。
|
- [迁移](https://git.ddupan.top/panxiao81/postgresql-tenant-operator/src/branch/main/docs/migration.md)与[运维](https://git.ddupan.top/panxiao81/postgresql-tenant-operator/src/branch/main/docs/operations.md):现有数据库、删除和恢复合同。
|
||||||
|
|
||||||
具体实现进度回到[项目仓库](https://git.ddupan.top/panxiao81/postgresql-tenant-operator)查询,
|
迁移前的具体实现进度仍回到[项目仓库](https://git.ddupan.top/panxiao81/postgresql-tenant-operator)
|
||||||
后续查询前先向维护者对齐当前工作与 ticket。本页保留设计定位和带日期的阶段摘要。
|
查询;迁移后的实现与发布进度转到 Ayatori。后续查询前先向维护者对齐当前工作与 ticket。
|
||||||
|
本页保留设计定位和带日期的阶段摘要。
|
||||||
|
|||||||
Reference in New Issue
Block a user