fix: move Gitea public edge to NC01
This commit is contained in:
@@ -28,7 +28,13 @@ Network identity is part of the evidence. `127.0.0.1:5000` may mean runner-pod l
|
||||
|
||||
Manual hotfixes are allowed only to recover and learn the missing contract. The durable close-out is a repo-owned preflight, desired-state check, CLI behavior, or reference update, followed by the same verification from the actual runner environment. A healthy old live service does not prove CD success; success requires the formal job to pass and live commit or digest identity to match the desired state.
|
||||
|
||||
For node-scoped HWLAB/Gitea/PaC lanes, CI/CD closeout stops at PipelineRun success, GitOps/Argo sync and health, runtime readiness/provenance, git-mirror alignment, and the formal public HTTPS `/health` probe declared by YAML. Browser automation, `web-probe`, Playwright, DOM assertions and user-path E2E are post-deploy product validation, not CI/CD gates. FRP/Caddy public exposure failures are diagnosed by aligning YAML publicExposure, GitOps-rendered frpc config, Secret key presence, frpc login/proxy logs, PK01/Caddy loopback and target-side HTTPS probe; Secret values are never recorded in docs or issue comments.
|
||||
- 对于 node-scoped HWLAB/Gitea/PaC lane:
|
||||
- CI/CD 收口只覆盖 PipelineRun 成功、GitOps/Argo 同步与健康、runtime readiness/provenance、git-mirror 对齐,以及 YAML 声明的正式公网 HTTPS `/health` 探针;
|
||||
- 浏览器自动化、`web-probe`、Playwright、DOM 断言和用户路径 E2E 属于部署后的产品验收,不是 CI/CD 门禁;
|
||||
- 公网暴露故障必须按 owning YAML 选中的 managed edge 诊断;
|
||||
- Gitea 通过 NC01 public-edge 直连 ClusterIP;
|
||||
- 仍由 YAML 选择 FRP 的服务继续检查各自声明的 FRP/Caddy 路径;
|
||||
- Secret 值不得写入文档或 issue 评论。
|
||||
|
||||
## Target Shape
|
||||
|
||||
|
||||
@@ -180,7 +180,10 @@
|
||||
|
||||
## Gitea 与 Pipelines-as-Code 边界
|
||||
|
||||
- Gitea mirror 与 Pipelines-as-Code 是 UniDesk 运维的 CI source/trigger 服务。`config/platform-infra/gitea.yaml` 和 `config/platform-infra/pipelines-as-code.yaml` 分别拥有 mirror/webhook 与 PaC Repository/consumer 配置;repo URL、snapshot、webhook、public exposure、FRP/Caddy port、token sourceRef 和 PaC params 不得隐藏在代码特例中。
|
||||
- Gitea mirror 与 Pipelines-as-Code 是 UniDesk 运维的 CI source/trigger 服务:
|
||||
- `config/platform-infra/gitea.yaml` 拥有 mirror、webhook 与 NC01 public-edge 暴露;
|
||||
- `config/platform-infra/pipelines-as-code.yaml` 拥有 PaC Repository 与 consumer 配置;
|
||||
- repo URL、snapshot、webhook、token sourceRef 和 PaC params 不得隐藏在代码特例中。
|
||||
- Delivery authority resolver 必须组合上述两份 YAML,并按 consumer id、node、lane、upstream repository、branch 和 Gitea repository 精确关联。不得通过 URL 片段、repo 名称前缀或仓库专属 `if` 推断迁移状态。零匹配、多匹配和配置错误都必须返回 `unknown`、`mutation=false` 并停止生成或执行写操作。
|
||||
- PaC consumer 的唯一正式触发是目标 source branch 的 GitHub PR merge。完整自动链固定为:GitHub PR merge -> GitHub webhook -> Gitea controlled mirror -> immutable snapshot -> Gitea webhook -> PaC/Pipelines-as-Code -> Tekton -> GitOps/Argo -> runtime 运行面。
|
||||
- PR 合并后的交付边界:
|
||||
@@ -231,8 +234,15 @@
|
||||
- cache export 使用原生 `ignore-error=true` 或等价非阻塞语义;
|
||||
- cache export 抖动不得在镜像已发布后制造业务构建失败或人工补跑需求。
|
||||
- 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 共享 hostname,k8s 内部 consumer 必须使用 ClusterIP URL。
|
||||
- Secret 或 ConfigMap 改变后,Gitea connector 的显式平台配置维护必须等待 workload rollout。成功写 Secret 不能证明 `frpc` 已加载新配置;端到端交付证据仍必须来自之后的新正常 PR merge。
|
||||
- Gitea 公网入口:
|
||||
- 公开 Web UI 与 owning webhook path 由 `app.publicExposure.routes` 明确分流;
|
||||
- NC01 public-edge 直接连接 ClusterIP Service;
|
||||
- Gitea 不得依赖 PK01、FRPC、Ingress、NodePort 或公网域名回环;
|
||||
- k8s 内部 consumer 必须使用 ClusterIP URL。
|
||||
- Secret 或 ConfigMap 改变后的收口:
|
||||
- Gitea connector 的显式平台配置维护必须等待 workload rollout;
|
||||
- 成功写 Secret 或生成 public-edge 候选不能证明 bridge 已加载新配置;
|
||||
- 端到端交付证据仍必须来自之后的新正常 PR merge。
|
||||
- Shared upstream repository 必须通过 Repository CR params 与 `pipelinesascode.tekton.dev/on-cel-expression` 隔离 target-specific `.tekton`。NC01 delivery 不得在 JD01 cluster 创建 PipelineRun,history 也不得把同一 PipelineRun 归属给多个 consumer。退役 branch-follower 的 unknown 或多 node scope 只返回 follower 自身的只读 status/events/logs 和稳定修复引用,禁止猜测 `JD01` 或其他默认 node 的 PaC status/history。
|
||||
- PaC migrated lane 保持单 trigger path,禁止新增 Gitea Actions、`act_runner`、branch-follower 或脚本 fallback。`config/cicd-gitea-actions-poc.yaml` 只是归档 POC;历史 snapshot 名称不代表该路径仍在运行。
|
||||
- k8s runtime 从拉取已构建 image 起保持 Docker-free。CI 可以使用 YAML 声明的 build tooling,但 runtime 不得依赖 Docker socket 或 daemon。
|
||||
|
||||
Reference in New Issue
Block a user