更新代理脚本逻辑
代理容器运行的脚本遵循以下流程:1
读取当前的 image_tag
2
从 Hilt 发布 ECR 列出可用标签
3
按 UPDATE_POLICY 过滤标签
4
没有符合条件的更新?
Exit 0(无需执行任何操作)。
5
验证候选标签在全部 6 个仓库中均存在
确保 Hilt 发布的是完整版本,而非部分推送。
6
镜像同步
7
更新 ECS 任务定义
8
强制 ECS 重新部署
9
重启 EKS 部署
10
等待稳定
11
健康检查
12
用新标签更新 ConfigMap
13
发送 webhook 通知
向
POST $WEBHOOK_URL 发送 JSON 负载:14
镜像同步后发生失败时
- 发送失败 webhook。
- 不要更新 ConfigMap(下次运行将重试)。
- Exit 1(CronJob 会在 Kubernetes 事件中记录失败)。
回滚
如果某次更新引发问题,运维人员可以手动回退:terraform.tfvars 中设置 auto_update_enabled = false 或 auto_update_dry_run = true 并重新应用。