feat: PikaOA切换NC01数据库与本地附件备份
This commit is contained in:
@@ -25,15 +25,18 @@
|
||||
|
||||
## 数据库边界
|
||||
|
||||
- 测试数据库固定使用 PK01 host PostgreSQL。
|
||||
- `config/platform-db/postgres-pk01.yaml` 声明独立的:
|
||||
- 生产与测试数据库固定使用 NC01 host PostgreSQL,不创建 namespace-local PostgreSQL。
|
||||
- `config/platform-db/postgres-nc01.yaml` 声明独立的:
|
||||
- 生产 role/database:`pikaoa`;
|
||||
- role:`pikaoa_test`;
|
||||
- database:`pikaoa_test`;
|
||||
- schema:`pikaoa`;
|
||||
- `DATABASE_URL` export:`platform-infra/pikaoa-test.env`。
|
||||
- 生产 `DATABASE_URL` export:`platform-infra/pikaoa.env`;
|
||||
- 测试 `DATABASE_URL` export:`platform-infra/pikaoa-test.env`。
|
||||
- `pikaoa-test` namespace 不创建 PostgreSQL StatefulSet、Service 或临时数据库。
|
||||
- 数据库生命周期独立于 namespace 和业务 workload。
|
||||
- 测试数据清理由 PK01 PostgreSQL 受控入口负责,不依赖删除 namespace。
|
||||
- 迁移采用全新 role/database,不复制旧数据。
|
||||
- 数据库准备、Secret export 与后续状态查询只走 `platform-db postgres` 受控入口。
|
||||
|
||||
## Secret 初始化
|
||||
|
||||
@@ -66,7 +69,7 @@
|
||||
|
||||
## 初始化顺序
|
||||
|
||||
1. 使用 `platform-db postgres` 受控入口准备 PK01 `pikaoa_test` role/database,并 export `DATABASE_URL`。
|
||||
1. 使用 `platform-db postgres` 受控入口和 `config/platform-db/postgres-nc01.yaml` 准备 `pikaoa_test` role/database,并 export `DATABASE_URL`。
|
||||
2. 执行 foundation:
|
||||
|
||||
```bash
|
||||
@@ -139,7 +142,14 @@
|
||||
- API、Worker、Web 并行构建并以 digest 发布到生产 GitOps branch;
|
||||
- Argo Application `pikaoa-nc01` 自动同步 `pikaoa` namespace;
|
||||
- 禁止人工补建 PipelineRun 代替 source merge。
|
||||
- 生产使用 PK01 host PostgreSQL 独立 `pikaoa` database/role,不使用 namespace-local PostgreSQL。
|
||||
- 生产使用 NC01 host PostgreSQL 独立 `pikaoa` database/role,不使用 namespace-local PostgreSQL。
|
||||
- 生产库逻辑备份由 `config/platform-db/postgres-nc01.yaml#backup.logicalDumps` 声明,写入 NC01 host 本地目录。
|
||||
- 生产附件主存储保持 NC01 k3s PVC,独立备份由 `config/pikaoa.yaml#delivery.targets.NC01.attachmentsBackup` 声明:
|
||||
- source PVC 只读挂载;
|
||||
- Restic repository 使用 NC01 hostPath `/var/backups/unidesk/pikaoa/attachments-restic`;
|
||||
- `backup`、`check`、`forget/prune` 与 `restore-smoke` 均由 YAML 渲染;
|
||||
- `restore-smoke` 只恢复到临时 `emptyDir`;
|
||||
- Secret 只包含 `RESTIC_PASSWORD`,不需要 SFTP key 或 known_hosts。
|
||||
- PikaOA 公网 exposure 由 `config/pikaoa.yaml` 的产品 target 唯一声明:
|
||||
- `testRuntime.targets.NC01.exposure` 拥有 `oa-dev.hwpod.com` 与 NodePort `32080`;
|
||||
- `releaseRuntime.targets.NC01.exposure` 拥有 `oa.hwpod.com` 与 NodePort `32096`;
|
||||
|
||||
Reference in New Issue
Block a user