1. 课程导论:资源模型驱动准入策略的背景、目标与课程整体架构
1.1 背景:为什么需要“资源模型驱动”的准入策略?
在云原生生态中,Argo CD 已成为多集群 GitOps 部署的事实标准。然而,随着集群规模与业务应用数量的增长,团队在管理 Argo CD Application 资源时,普遍面临以下三大痛点:
- 策略碎片化:准入策略(如禁止使用
latest镜像标签、强制设置资源配额)散落在 CI 流水线、Webhook 和人工审核中,缺乏统一治理。 - 项目级管控缺失:Argo CD 原生 AppProject 仅提供粗粒度的来源仓库与目标集群白名单,无法对 Application 的
spec字段进行细粒度校验。 - 策略与资源结构脱节:传统策略引擎(如 OPA/Gatekeeper)通常面向通用 Kubernetes 资源,缺乏对 Argo CD 特定资源模型(ApplicationSet、Application、Project)的语义理解,导致策略编写复杂且难以维护。
核心洞察:Argo CD 的 Application 资源本质上是“部署意图”的载体。若能将其资源模型(Resource Model)结构化,并以此驱动准入策略的生成与执行,即可实现策略与 GitOps 工作流的深度对齐。
1.2 目标:构建自动化、可复用的项目级准入策略体系
本课程旨在设计一套以 资源模型 为驱动的自动化框架,实现以下四个关键目标:
| 目标维度 | 具体描述 | 交付物示例 |
|---|---|---|
| 策略建模 | 将 Argo CD 资源(Application、AppProject、ApplicationSet)抽象为结构化模型 | JSON Schema / CUE 定义 |
| 策略生成 | 根据模型自动生成 OPA Rego 或 CEL 策略 | Rego 策略模板 |
| 策略注入 | 通过 Admission Webhook 或 Argo CD 插件机制注入校验逻辑 | Webhook 配置清单 |
| 策略治理 | 提供策略版本管理、灰度发布与审计能力 | GitOps 策略仓库结构 |
1.3 课程整体架构:从模型到落地的四层设计
本课程按照“模型层 → 策略层 → 执行层 → 治理层”的递进结构组织,共 30 章。下图展示了核心架构与章节映射关系:
1.4 课程核心概念对比
为帮助学员快速建立认知,下表对比了传统准入策略与本课程提出的资源模型驱动方案的关键差异:
| 对比维度 | 传统准入策略 | 资源模型驱动策略 |
|---|---|---|
| 策略来源 | 人工编写 Rego/CEL 规则 | 从资源模型自动推导 |
| 维护成本 | 高,规则与资源结构耦合 | 低,模型变更自动同步策略 |
| Argo CD 适配 | 需额外适配 Application 语义 | 原生支持,模型即策略 |
| 可测试性 | 规则测试覆盖不全 | 模型校验 + 策略单元测试双覆盖 |
| 灰度能力 | 通常全量生效 | 支持按项目/集群灰度 |
1.5 前置知识与学习路径
本课程要求学员具备以下基础:
- 熟悉 Kubernetes 基本概念(Pod、Deployment、Namespace)
- 了解 Argo CD 核心工作流(Application、AppProject、Sync)
- 具备基础的 YAML/JSON 编写能力
学习建议:每章末尾均提供“动手实验”与“常见避坑”环节。建议在真实或模拟环境中跟随操作,以加深对资源模型驱动策略的理解。