操作审计

operator-audit
分类通用
作者Alireza Rezvani
许可MIT
评分4.40/5
使用14.8K

/operator-audit

对 Kubernetes Operator 仓库运行完整审计:

1. 根据 operator-pattern 最佳实践验证所有 CRD YAML
2. 对每个 Go 控制器的 reconcile 函数进行 Lint 检查,识别反模式
3. 根据 OperatorHub 能力等级(1-5 级)对 Operator 进行评分
4. 输出一份 Markdown 报告,包含每项检查的通过/失败状态及具体的后续改进步骤

使用方法

code
/operator-audit
/operator-audit --operator-dir ./my-operator
/operator-audit --crd-dir ./config/crd --controller-dir ./controllers

实现细节

bash
SKILL=engineering/kubernetes-operator/skills/kubernetes-operator
DIR="${OPERATOR_DIR:-.}"

echo "## CRD validation"
python "$SKILL/scripts/crd_validator.py" --crd "$DIR/config/crd" || true

echo ""
echo "## Reconcile lint"
python "$SKILL/scripts/reconcile_lint.py" --controller "$DIR/controllers" || python "$SKILL/scripts/reconcile_lint.py" --controller "$DIR/internal/controller" || true

echo ""
echo "## Capability audit"
python "$SKILL/scripts/operator_capability_audit.py" --operator-dir "$DIR"

输出结果

一份包含以下内容的 Markdown 报告:

  • CRD 检查结果(按文件):每项检查标记为 FAIL / WARN / PASS
  • Reconcile 检查结果:带有行号的反模式记录
  • 当前能力等级 + 具体的提升步骤

前置条件

  • 在 Kubernetes Operator 仓库中运行
  • Go 控制器需位于 controllers/internal/controller/
  • CRD 需位于 config/crd/(kubebuilder 布局)
  • 已安装 kubernetes-operator skill

后置条件

  • Markdown 报告将流式输出到终端
  • 若全部 PASS 则退出码为 0;若有任何 FAIL 则退出码为 1