k8s-operator相关
创建一个operator项目
kubebuilder init
kubebuilder init --domain my.domain --repo my.domain/guestbook
kubebuilder init --domain ucs.com --repo ucs.com/cmreload --skip-go-version-check
client.Client ---> controller-runtime
group: 相当于组织下面的服务组
kubebuilder create api --group ops --version v1beta1 --kind ConfigReload
make manifests 生成资源清单
make install

operator= crd + webhook+controller


Validating Webhook(验证型 Webhook)
核心目的:“拒绝非法请求”
用于校验用户提交的资源对象是否符合业务逻辑或自定义规则。如果校验失败,API Server 会拒绝该请求并返回错误信息给用户。
触发时机:在资源创建(CREATE)、更新(UPDATE)或删除(DELETE)时触发。
Mutating Webhook(变更型 Webhook)
核心目的:“自动修正或补充默认值”
用于在资源被持久化之前,对资源对象进行修改。常用于设置默认值、注入侧边栏容器、添加注解等。
触发时机:在资源创建(CREATE)或更新(UPDATE)时触发(通常在 Validating Webhook 之前执行)
- 为未指定的字段设置默认值(例如:如果用户没指定
imagePullPolicy,则设为Always)。 - 注入环境变量或卷挂载。
- 自动生成名称或标签。

kubebuilder create webhook --group ship --version v1beta1 --kind Frigate --defaulting --programmatic-validation
kubebuilder create webhook \
--group ops \
--version v1beta1 \
--kind ConfigReload\
--defaulting \
--programmatic-validation
浙公网安备 33010602011771号