Files
pikasTech-HWLAB/docs/reference/node-gitops-cicd.md
T
2026-07-15 16:47:05 +02:00

65 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Node GitOps CI/CD(历史路径)
本文不再承载 node/lane CI/CD、GitOps 或公开入口需求规格正文。
统一规格出处是 UniDesk OA
- [PJ2026-0106 平台运维](https://github.com/pikasTech/unidesk/blob/master/project-management/PJ2026-01/specs/PJ2026-0106-platform-ops.md)
- [PJ2026-010601 发布流水](https://github.com/pikasTech/unidesk/blob/master/project-management/PJ2026-01/specs/PJ2026-010601-controlled-release.md)
- [PJ2026-010602 源码同步](https://github.com/pikasTech/unidesk/blob/master/project-management/PJ2026-01/specs/PJ2026-010602-source-sync.md)
- [PJ2026-010603 YAML运维](https://github.com/pikasTech/unidesk/blob/master/project-management/PJ2026-01/specs/PJ2026-010603-yaml-first-ops.md)
- [PJ2026-010604 公开入口](https://github.com/pikasTech/unidesk/blob/master/project-management/PJ2026-01/specs/PJ2026-010604-public-entry.md)
- [PJ2026-010605 运维监控](https://github.com/pikasTech/unidesk/blob/master/project-management/PJ2026-01/specs/PJ2026-010605-observability-monitoring.md)
职责边界:
- 目标 node/lane 的具体实现、PipelineRun 观察和运行命令按本仓 `AGENTS.md` 与受控 CLI 执行。
- 需求边界、node/lane 规则和运维职责只更新 UniDesk OA。
## 运行参考
`scripts/gitops-render.mjs` 只保留一条 runtime lane 渲染链:
- `vNN` lane
- 继续使用既有版本号默认,包括 branch、catalog、namespace、runtime path、端口与 endpoint 推导。
- 修改 renderer 时必须用同一 source commit 对比生成目录,确认既有 lane 不漂移。
- 命名 runtime lane
- 必须先在 `deploy/deploy.yaml``lanes.<lane>` 中声明稳定小写 id 与 node。
- 必须显式声明 source/GitOps branch、Git read/write URL、artifact catalog、runtime path、namespace 与 image tag mode。
- 必须显式声明 public endpoints、服务声明与 FRP 端点。
- 命名 lane 的 node
- 必须在 `deploy.nodes` 中声明 `gitopsRoot``sourceRepo`
- renderer 不从 lane 名称猜 branch、namespace、路径、端口或公开入口。
- 命名 lane 缺失 owning YAML 字段时立即失败;不得增加按具体 lane 字符串、branch 名称或端口号分支的 fallback。
- NodePort 服务只从 `lanes.<lane>.publicServices.nodes.<node>` 生成;名称、selector、service port、target port 与 node port 都由 YAML 声明。
node/lane rollout 的 120 秒阈值是性能告警和诊断分界,不是继续盲等的理由:
- `trigger-current --wait` 超过阈值或返回 pending 时,先执行定点 status。
- 使用 `hwlab nodes control-plane status --node <node> --lane <lane> --pipeline-run <name>` 查看 PipelineRun。
- 配合 `git-mirror status` 和 runtime workload 摘要判断卡点。
- 卡点范围包括 PipelineRun task、Argo sync、runtime-ready、public probe 或 git mirror flush。
只需要给 branch-follower 或 control-plane closeout 提供一轮新的真实验证源时:
- 优先使用文档、注释或等价的非运行面小 PR。
- 不把 timeout、runtime 策略或 CI/CD 逻辑改动混入验证样本。
PR 合并后如果目标分支被并行 PR 推进:
- closeout 同时记录本 PR merge commit、当前 source head 和 ancestry 证据。
- 当前 head 包含本 PR merge commit 时,后续 rollout 按当前 head 收敛,避免回滚到旧 source。
- 定点 status 只证明指定旧 PipelineRun 是否 succeeded。
- 最终用户入口验收以当前 node/lane source、GitOps revision、Argo 和 runtime 状态为准。
runtime-ready 卡住时:
- 先查看 `STATUS` 输出里的 notReady workload,再按 workload 日志和事件定位。
- 修复回到 source truth、PR、GitOps 和受控 sync/refresh。
- 不把手工 patch Deployment、裸删 Pod 或临时容器改动作为交付路径。
runtime 已 ready 但 Argo 仍 OutOfSync/Progressing 时:
- 走受控 `hwlab nodes control-plane sync|refresh --node <node> --lane <lane> --confirm` 收敛控制面。
- 再复查 bounded status。