fix(pikaoa): 初始化附件备份仓库
This commit is contained in:
@@ -8,13 +8,13 @@ PikaOA 生产附件离机备份已完成首阶段代码、owning YAML、受控 C
|
||||
|
||||
- `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-attachments-backup.ts`:提供 `plan`、`status`、`init`、`apply`、`backup-now`、`restore-smoke`;`init` 通过独立短生命周期 Job 精确区分已初始化、仓库不存在和认证/网络失败,且不挂载生产 PVC;长 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。
|
||||
- `scripts/src/pikaoa-attachments-backup.test.ts`:覆盖独立 CronJob、只读 PVC、`.tmp` 排除、retention、Secret 不泄露、init 必须 confirm、init 已存在 no-op/精确 fresh init 语义与临时 `emptyDir` restore smoke。
|
||||
|
||||
## 验证
|
||||
|
||||
- `bun test ./scripts/src/pikaoa-attachments-backup.test.ts`:2 pass,0 fail。
|
||||
- `bun test ./scripts/src/pikaoa-attachments-backup.test.ts`:3 pass,0 fail,覆盖备份、init 与 restore smoke 安全边界。
|
||||
- `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 目标目录。
|
||||
@@ -26,10 +26,11 @@ PikaOA 生产附件离机备份已完成首阶段代码、owning YAML、受控 C
|
||||
|
||||
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`
|
||||
3. `bun scripts/cli.ts pikaoa attachments-backup init --target NC01 --confirm`
|
||||
4. `bun scripts/cli.ts pikaoa attachments-backup apply --target NC01 --confirm`
|
||||
5. `bun scripts/cli.ts pikaoa attachments-backup backup-now --target NC01 --confirm`
|
||||
6. `bun scripts/cli.ts pikaoa attachments-backup restore-smoke --target NC01 --confirm`
|
||||
7. `bun scripts/cli.ts pikaoa attachments-backup status --target NC01`
|
||||
|
||||
`init`、`backup-now` 与 `restore-smoke` 提交后均使用 `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