whiskyCavalier/cicd-image-security-gitops
GitHub: whiskyCavalier/cicd-image-security-gitops
该项目是一个集成 Trivy 镜像漏洞扫描与 ArgoCD GitOps 部署的安全左移 CI/CD pipeline 模板,确保仅有通过安全扫描的容器镜像才能进入生产环境。
Stars: 0 | Forks: 0
# 集成 Trivy 镜像安全扫描与 ArgoCD GitOps 部署的 CI/CD Pipeline




一个完整的**安全左移 CI/CD pipeline**:构建 → **Trivy 漏洞扫描(遇到 CRITICAL/HIGH CVE 时使构建失败)** → 推送 → 通过 ArgoCD 进行 GitOps 部署 —— 并针对目前尚无可用修复方案的 CVE,提供了一个有据可查、可审计的例外处理流程(经过审核、说明原因并设有时间限制 —— 绝不静默忽略)。
## Pipeline 阶段
1. **构建** —— 多阶段 Dockerfile,最终镜像极简化
2. **扫描** —— 使用 Trivy 对构建好的镜像进行扫描;遇到 CRITICAL/HIGH 且没有有效、未过期的 allow-list 条目时阻断流程
3. **推送** —— 只有在扫描通过后才会执行;镜像使用 git SHA 打标签,绝不使用 `:latest`
4. **GitOps 部署触发** —— pipeline 的最后一步操作是执行 `git commit`,在由 GitOps 跟踪的 manifest 中更新镜像标签;**pipeline 永远不会直接操作集群** —— ArgoCD 的 reconciliation 循环才是实际执行部署的组件
## 为什么 pipeline 永远不会直接操作集群
如果 CI pipeline 可以直接运行 `kubectl apply`,那么本作品集其余部分所强调的“GitOps repo 即唯一事实来源”这一特性就会悄无声息地失效 —— 可能会发生未反映在 git 中的部署。本 repo 的最后一个 CI 步骤始终是进行一次 git commit;而 ArgoCD 才是实际执行 apply 操作的组件。
参见 [docs/01-phase-0-planning.md](docs/01-phase-0-planning.md),ADR-001。
## 文档
| 文档 | 内容 |
|---|---|
| [docs/01-phase-0-planning.md](docs/01-phase-0-planning.md) | Pipeline 阶段、fail-fast 策略、ADR |
| [docs/02-phase-1-github-actions.md](docs/02-phase-1-github-actions.md) | GitHub Actions workflow |
| [docs/03-phase-2-image-scanning.md](docs/03-phase-2-image-scanning.md) | Trivy 扫描策略 |
| [docs/04-phase-3-gitops-deploy.md](docs/04-phase-3-gitops-deploy.md) | GitOps 部署触发机制 |
| [docs/05-algorithms.md](docs/05-algorithms.md) | CVE 严重等级阻断逻辑(伪代码) |
| [docs/06-runbook.md](docs/06-runbook.md) | 运维手册 |
## 架构图
参见 [`diagrams/cicd-pipeline-flow.mmd`](diagrams/cicd-pipeline-flow.mmd)。
## 快速开始
```
git clone https://github.com/whiskyCavalier/cicd-image-security-gitops.git
cd cicd-image-security-gitops
# 将 github-actions/build-scan-deploy.yml 接入到你的 app repo 的 .github/workflows/ 目录中
# 为 update-gitops-repo job 配置 GITOPS_PAT secret
```
## 相关项目
这是一个包含 6 个项目的平台工程作品集的一部分:Kafka-on-Kubernetes GitOps、OpenShift 多租户、Kafka 混沌工程、跨区域容灾以及 observability-as-code。
## 关键词
CI/CD pipeline、Trivy 漏洞扫描、容器镜像安全、安全左移、GitHub Actions、ArgoCD GitOps 部署、DevSecOps、Kubernetes 部署自动化、CVE 阻断策略、平台工程作品集项目。
## 作者
**Arvind Vijay**
## 许可证
MIT —— 参见 [LICENSE](LICENSE)。
标签:ArgoCD, DevSecOps, GitOps, Web截图, 上游代理, 子域名突变, 容器安全, 自动化运维, 请求拦截