SuperAPI AI 工具集

crd-impact

通用与其它

查看项目

更新于 10-15 22:37

技能介绍

用途:对 CRD(Custom Resource Definition)变更做只读的爆炸半径分析,找出仓库中所有引用该 CRD 的控制器、Operator、Webhook、RBAC 规则、清单与客户端,并评估影响等级。

主要能力:解析 CRD 文件或 group/version/kind 输入,提取 GROUP、VERSION、KIND、PLURAL、SHORT_NAMES 及 spec/status 字段路径;通过 git diff $(git merge-base HEAD main) -- <crd-file> 与基线对比,识别新增、删除、类型变更的字段;并行执行五类搜索:控制器(Go 导入、Reconcile、SetupWithManager、ctrl.NewControllerManagedBy、For(&<kind>{}))、Webhook(kubebuilder 标记、Validating/MutatingWebhookConfiguration、Defaulter/Validator)、RBAC(kubebuilder:rbac、ClusterRole/Role YAML)、清单(示例 CR、测试夹具、Helm 模板、Kustomize overlay)、客户端用法(生成客户端、informer、lister、dynamic client、E2E 测试)。

使用方式:以文件路径或 group/version/kind(如 apps.example.com/v1alpha1/MyResource)作为 $ARGUMENTS 传入。可选检查 kubectl 是否可用,仅用于获取实时 CRD schema。输出先给字段增删改摘要,再按影响等级分组输出表格(File、Type、Impact、Reason),MUST UPDATE 优先。

适用场景:CRD 升级、字段重构、API 版本迁移前的变更评审与影响排查。

限制:只读,不创建或修改文件,可安全重复运行;无 git 历史或新文件时无法做字段级分类,此时全部标记为 SHOULD UPDATE 并附说明;kubectl 为可选依赖。