Kubernetes Operator 生成工具

一个通过AI代理快速生成和部署Kubernetes Operator CRD和Webhook的开发工具,适用于DevOps工程师和Kubebuilder项目开发。

  • by Sagart-cactus
  • Shell
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Sagart-cactus/k8s-operator-creator-agent

使用说明

K8s操作员创建者代理

这个仓库将Kubernetes操作符开发变成了一个 引导式高速工作流程.在此仓库中运行Codex或Claude Code代理,回答几个问题,然后观察它生成一个可用的CRD+webhook并将其部署到本地集群-- 快.

这是给谁的

  • DevOps工程师构建或编辑CRD控制器/webhooks
  • 使用Kustomize的Kubebuilder项目
  • 本地开发人员

预期流量

  1. 克隆此仓库
  2. 运行代理(Codex或Claude Code)
  3. 回答简短的问答(目的、字段、验证、webhook类型)
  4. 代理人 编写代码 和 生成清单
  5. 代理人 创建一个类集群 并安装CRD/webhook
  6. 代理人 快速反馈迭代 (倾斜实时更新+集群检查)

快速启动(结构)

  1. 确保你有Go、kind、kubectl、kustomize和Tilt
  2. 跑 make prereqs 用于自动安装
  3. 在此仓库中运行您的代理(Codex或Claude Code)
  4. 按照提示操作--代理构建+部署
  5. 保持循环热 make dev

样品试剂提示(复制/粘贴)

You are the CRD/Webhook Builder agent for this repo. Follow AGENTS.md strictly.

Goal: build a “TTLJob” CRD that runs a Job and auto-deletes it after a TTL.

Requirements:
- CRD: TTLJob with spec fields:
  - image (string, required)
  - command ([]string, optional)
  - ttlSeconds (int, required)
  - backoffLimit (int, optional, default 3)
  - labels (map[string]string, optional)
- Status fields:
  - phase (string: Pending/Running/Succeeded/Failed)
  - startTime (timestamp)
  - completionTime (timestamp)
  - jobName (string)
- Validating webhook:
  - ttlSeconds must be >= 60
  - image must be non-empty
  - backoffLimit must be 0..10
- Mutating webhook:
  - default backoffLimit to 3
  - default ttlSeconds to 3600 if not set
- RBAC: namespace-scoped
- Safety: only mutate CRs labeled “dev-mode=true”
- Fast dev loop: use Tilt + local compile + binary sync + restart
- Use kubebuilder + kustomize conventions

Steps:
1) Ask any missing questions (only if needed)
2) Generate CRD schema, controller logic, webhook scaffolding
3) Add Tiltfile, dev overlay, and Make targets
4) Create kind cluster and deploy
5) Verify with MCP if available, otherwise kubectl
6) Summarize how to run `make dev` and test with a sample CR

快速提示(短测试)

Follow AGENTS.md. Build a “CachePolicy” CRD with:
- spec: cacheName (string, required), ttlSeconds (int, required)
- status: phase (Pending/Active/Expired), lastRefreshTime (timestamp)
- validating webhook: ttlSeconds >= 30
- mutating webhook: default ttlSeconds = 300
- namespace-scoped RBAC
- dev-only, kind-only
Generate CRD, controller, webhook, dev overlay, and Tiltfile. Deploy to kind and verify.

辅助脚本

  • make kind 创建一个类集群
  • make deploy 应用Kustomize开发覆盖
  • make verify 显示基本CRD/webhook/pod状态
  • make prereqs 检查并安装缺失的工具

如何使用本指南

  • AGENTS.md 是 代理合同 (它必须做什么)
  • WORKFLOW.md 是 快速循环配方
  • PROMPTS.md + CHECKLIST.md 是 护栏
  • MCP_SETUP.md 电线 集群感知反馈

范围

  • 仅限开发人员,默认情况下仅限种类
  • 组合管理器(控制器+webhook)流程
  • 仅适用于第一个版本

非目标

  • 生产部署
  • 多语言支持(稍后可以添加)
  • 取代Helm/Kustomize包装标准

为什么这不一样

  • 这是 代理优先:工作流存在于 AGENTS.md
  • 这是 默认情况下为快速:典型代码更改没有图像重建循环
  • 这是 设计安全:仅限种类和仅限开发