SuperAPI AI 工具集

gitops-repo-audit

部署与运维

查看项目

更新于 10-14 19:09

技能介绍

用途

gitops-repo-audit 是一个面向 Flux CD 的 GitOps 仓库审计技能。它的工作对象是本地仓库文件,而不是运行中的集群,因此可以在不接触生产环境的情况下检查清单有效性、API 合规性、最佳实践与安全状况,并给出可执行的改进建议。

主要能力

审计按六个阶段推进,深度可根据用户请求调整:

  1. 发现(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/)。

  2. 清单校验(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> 重跑,以模拟集群实际看到的清单。

  3. API 合规(API Compliance):运行 scripts/check-deprecated.sh -d <repo-root>,执行 flux migrate -f . --dry-run,输出废弃 API 的精确文件路径、行号、资源类型及所需版本迁移;退出码 1 表示发现废弃 API,此时参考 api-migration.md 给出迁移步骤。

  4. 最佳实践评估(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)核实字段名、类型与嵌套,不得凭清单摘要猜测结构。

  5. 安全审查(Security Review):完整阅读 security-audit.md,检查 Secret 管理(SOPS、External Secrets)、私有源认证与 Workload Identity、OCI 源的供应链安全(Cosign 验证、不可变标签)、多租户 RBAC 与服务账号、跨命名空间 sourceRef(始终报告,严重程度取决于租户模型)、ResourceSetInputProvider 的 serviceAccountName 与选择器范围、镜像自动化的推送凭据隔离与分支隔离,以及 overlay 补丁是否削弱了 post-render 安全字段。

  6. 报告(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 属预期。
  • 具体安装命令、收费与价格信息暂未提供。