用途
gitops-repo-audit 是一个面向 Flux CD 的 GitOps 仓库审计技能。它的工作对象是本地仓库文件,而不是运行中的集群,因此可以在不接触生产环境的情况下检查清单有效性、API 合规性、最佳实践与安全状况,并给出可执行的改进建议。
主要能力
审计按六个阶段推进,深度可根据用户请求调整:
-
发现(Discovery):运行内置脚本
scripts/discover.sh -d <repo-root>,该脚本封装flux-schema discover,输出 JSON 清单,包含文件/资源/行数统计、目录分类(kubernetes-manifests、kustomize-overlay、helm-chart、terraform)、按 group/version/Kind 计数的资源映射,以及每个文件中的 Flux 资源列表。同时依据repo-patterns.md的启发式表格对仓库模式分类,识别clusters/目录或 FluxInstance 资源,并检查flux-system/下是否存在gotk-sync.yaml(存在则说明使用了 flux bootstrap,建议迁移到 Flux Operator 的 FluxInstance,迁移指南 URL 为 https://fluxoperator.dev/docs/guides/migration/)。 -
清单校验(Manifest Validation):运行
scripts/validate.sh -d <repo-root> ${bundle:+-b "$bundle"},校验每个清单及每个 Kustomize overlay 的渲染输出,失败时以非零退出并给出无效资源数与构建失败数。加密 Secret 和无 schema 的第三方 CRD 会被优雅跳过,视为预期而非失败。-b参数会把所有清单和渲染后的 overlay 合并到临时 bundle 文件(用mktemp生成唯一路径,避免并发审计互相覆盖),每条带# === file/kustomize-overlay: … ===来源注释。可用-e <dir>排除目录;若仓库使用${...}变量替换,可构建 dotenv 文件并用-E <dotenv>重跑,以模拟集群实际看到的清单。 -
API 合规(API Compliance):运行
scripts/check-deprecated.sh -d <repo-root>,执行flux migrate -f . --dry-run,输出废弃 API 的精确文件路径、行号、资源类型及所需版本迁移;退出码 1 表示发现废弃 API,此时参考api-migration.md给出迁移步骤。 -
最佳实践评估(Best Practices):完整阅读
best-practices.md,按适用类别评估仓库,重点关注 monorepo 结构、ArtifactGenerator 用法、多仓库 RBAC 与多租户、HelmRelease 的 remediation/漂移检测/版本管理、valuesFrom 或 substituteFrom 引用的 ConfigMap/Secret 是否带reconcile.fluxcd.io/watch: "Enabled"标签、镜像自动化的 ImagePolicy semver 范围与更新路径、ResourceSet 的 dependsOn 命名空间与wait: true、ArtifactGenerator 的 pathPattern 是否同时复制 base 与 overlay、postBuild.substitute 变量值是否以 YAML 指示符开头、Kustomize overlay 对渲染结果的影响等。在建议任何 YAML 改动前,需对照assets/schemas/下的字段索引(命名如{kind}-{group}-{version}.fields.txt)核实字段名、类型与嵌套,不得凭清单摘要猜测结构。 -
安全审查(Security Review):完整阅读
security-audit.md,检查 Secret 管理(SOPS、External Secrets)、私有源认证与 Workload Identity、OCI 源的供应链安全(Cosign 验证、不可变标签)、多租户 RBAC 与服务账号、跨命名空间 sourceRef(始终报告,严重程度取决于租户模型)、ResourceSetInputProvider 的 serviceAccountName 与选择器范围、镜像自动化的推送凭据隔离与分支隔离,以及 overlay 补丁是否削弱了 post-render 安全字段。 -
报告(Report):输出 Markdown 报告,包含 Summary、Directory Structure、Validation Results、API Compliance、Best Practices、Security、Recommendations(按 Critical/Warning/Info 分级)等章节。
使用方式
该技能以 agent skill 形式提供,内置脚本位于 scripts/ 目录,参考文档包括 repo-patterns.md、flux-api-summary.md、flux-operator-api-summary.md、best-practices.md、security-audit.md、api-migration.md,字段索引位于 assets/schemas/。技能还附有 Flux CRD 参考表,列出各控制器、Kind、apiVersion 与对应字段索引文件。
适用场景
适合需要审计 Flux CD GitOps 仓库的团队,包括检查清单有效性、发现废弃 API、评估最佳实践与安全态势,以及多仓库(fleet + infra + apps)的独立分析与跨仓库关系梳理。
限制
- 只扫描本地仓库文件,不检查运行中的集群。
- 若仓库未使用 Flux CRD,会明确说明,不会强行套用 Flux 分析。
- SOPS 加密文件不会被误判为格式错误;
flux-system/gotk-components.yaml为自动生成,不做最佳实践分析;缺少kustomization.yaml不视为错误;${VARIABLE}模式视为变量替换而非损坏 YAML;无 schema 的第三方 CRD 显示为 skipped 属预期。 - 具体安装命令、收费与价格信息暂未提供。