feat(pikaoa): 建立附件离机备份控制面
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
# R1.6.1.2 任务报告
|
||||
|
||||
## 阶段结论
|
||||
|
||||
PikaOA 生产附件离机备份已完成首阶段代码、owning YAML、受控 CLI、定向测试与 plan 渲染。当前 NC01 生产 `pikaoa` namespace、附件 PVC、备份 Secret 和 PK01 专用 SFTP 目录尚未就绪,因此真实 `apply`、首备和 restore smoke 保持 `prerequisite-waiting`,不冒充成功,也不阻塞 PikaOA、PaC 或 Argo。
|
||||
|
||||
## 变更
|
||||
|
||||
- `config/pikaoa.yaml`:声明 04:17 日常 Restic 备份、retention、只读附件 PVC、`.tmp` 排除、PK01 SFTP 目标、独立 check 与 forget/prune schedule、临时目录 restore smoke 和非阻塞策略。
|
||||
- `config/secrets-distribution.yaml`:声明 Restic 密码 env 与 SSH 私钥、`known_hosts` 两个 raw-file 的 `sourceRef`、`sourceKey` 与 `targetKey`,禁止从运行面反解或手写 Secret。
|
||||
- `scripts/src/pikaoa-attachments-backup.ts`:提供 `plan`、`status`、`apply`、`backup-now`、`restore-smoke`,长 apply 使用异步 UniDesk job;手动备份和恢复提交 Kubernetes Job 后立即返回并通过 `status` 轮询。
|
||||
- `scripts/src/pikaoa-test-target.ts`:把 `pikaoa attachments-backup` 接入现有 PikaOA CLI dispatcher。
|
||||
- `scripts/src/pikaoa-attachments-backup.test.ts`:覆盖独立 CronJob、只读 PVC、`.tmp` 排除、retention、Secret 不泄露与临时 `emptyDir` restore smoke。
|
||||
|
||||
## 验证
|
||||
|
||||
- `bun test ./scripts/src/pikaoa-attachments-backup.test.ts`:2 pass,0 fail。
|
||||
- `pikaoa attachments-backup plan --target NC01 --output json`:`ok=true`、`mode=local-render`、4 个对象、schedule 为 04:17、晚于数据库 03:37、`valuesPrinted=false`。
|
||||
- `pikaoa attachments-backup apply --target NC01 --output json`:默认 dry-run,`mutation=false`。
|
||||
- `pikaoa attachments-backup status --target NC01 --output json`:真实只读观察返回 `prerequisite-waiting`、`businessBlocking=false`,未发现生产 namespace、附件 PVC、备份 Secret 和 PK01 目标目录。
|
||||
- `git diff --check` 通过。
|
||||
|
||||
## 后续原入口
|
||||
|
||||
生产附件 PVC 与 PK01 最小权限 SFTP 前置就绪后,主代理按顺序执行:
|
||||
|
||||
1. `bun scripts/cli.ts secrets sync --config config/secrets-distribution.yaml --target pikaoa-nc01 --confirm`
|
||||
2. `bun scripts/cli.ts pikaoa attachments-backup status --target NC01`
|
||||
3. `bun scripts/cli.ts pikaoa attachments-backup apply --target NC01 --confirm`
|
||||
4. `bun scripts/cli.ts pikaoa attachments-backup backup-now --target NC01 --confirm`
|
||||
5. `bun scripts/cli.ts pikaoa attachments-backup status --target NC01`
|
||||
6. `bun scripts/cli.ts pikaoa attachments-backup restore-smoke --target NC01 --confirm`
|
||||
7. `bun scripts/cli.ts pikaoa attachments-backup status --target NC01`
|
||||
|
||||
只有首备 snapshot 摘要与临时目录 restore smoke 成功后,才可把 MDTODO R1.6.1.2 从 `in_progress` 更新为 `completed`。
|
||||
Reference in New Issue
Block a user