docs: 固化 PaC 私有源与大载荷边界

This commit is contained in:
Codex
2026-07-16 10:03:56 +02:00
parent 76eadab3cc
commit 8b0fb0ff20
+12
View File
@@ -86,6 +86,18 @@
- CI/CD OTel endpoint、service/resource 属性、采样与 exporter timeout/failure policy 由 `config/platform-infra/pipelines-as-code.yaml` 引用现有 `config/platform-infra/observability.yaml` 并负责渲染。outer PaC 在最早可控 step 生成 W3C trace context,后续 source、image、artifact、GitOps 与 helper 复用同一 traceIdexport 失败或超时只输出 `warning=true`、`blocking=false` 的有界事件,不改变 PipelineRun、TaskRun 或业务 step 终态。
- `config/platform-infra/pipelines-as-code.yaml` 可以声明多个 repository 和 consumer。`cicd status --node <NODE>` 用于 node 汇总,`history --target <NODE>` 用于全 consumer 审计,`status --target <NODE> --consumer <id>` 用于 consumer 只读状态;不得跨 repository 混合 PipelineRun 或 env reuse 证据。
- PaC Repository CR `spec.url` 必须匹配 Gitea webhook payload 的 public repository URLClusterIP/service URL 只属于 `cloneUrl` 与 `params.git_read_url`。Repository params 必须使用该 consumer 的 node-specific snapshot prefix。
- 私有 Gitea source checkout 必须复用 PaC Repository 已声明的 Secret
- source-artifact binding 从 repository 直接投影 `secretName` 与 `tokenKey`,不得在 consumer params 或业务 owning YAML 重复声明;
- Tekton step 通过 `secretKeyRef` 和临时 `GIT_ASKPASS` 读取 token,禁止把 token 拼入 Git URL、PipelineRun 参数或日志;
- `GIT_ASKPASS` 必须在 step 退出时清理,生成清单只能披露 Secret 对象名与 key。
- PaC bootstrap 的大型清单载荷不得作为导出环境变量传给远端子进程:
- 控制端先在权限为 `0700` 的临时目录解码载荷,只导出短路径;
- 远端脚本从路径读取并在退出时清理,兼容入口可以读取旧的内联载荷;
- 新增 release、admission、RBAC、ServiceAccount 或 Argo 载荷时必须进入同一文件传输集合,避免触发 Linux 单参数长度上限。
- source-artifact consumer 的最短验证顺序固定为:
- 先执行 `source-artifact plan`,确认唯一 owner、source worktree 与预期漂移;
- 再执行 `source-artifact write --confirm` 和一次 `source-artifact check`,提交生成文件后只由正常 source PR merge 触发交付;
- 自动链终态后,在 clean exact-commit worktree 执行一次 `source-artifact verify-runtime`,同时证明源码、嵌入式 PipelineRun 与 provenance 对齐。
- GitHub 始终是 upstream write authority。Bridge 只允许 GitHub -> Gitea 更新 YAML 声明的 branch 与 immutable snapshot,不得反向写 GitHub,也不得增加 polling 或第二 trigger path。
- 每个 target 必须使用 YAML 独立声明的 webhook path、bridge 与 FRP port;多个节点不得复用 hook URL。Public Gitea Web UI 与 webhook 只能通过明确 Caddy path routing 共享 hostnamek8s 内部 consumer 必须使用 ClusterIP URL。
- Secret 或 ConfigMap 改变后,Gitea connector 的显式平台配置维护必须等待 workload rollout。成功写 Secret 不能证明 `frpc` 已加载新配置;端到端交付证据仍必须来自之后的新正常 PR merge。