/goadmission

Primary LanguageGoApache License 2.0Apache-2.0

goadmission

一个用于快速开发 Kubernetes 动态准入控制的脚手架。

一、简介

goadmission 是一个开发 Kubernetes 动态准入控制的脚手架,goadmission 集成了以下组件:

  • zap 日志组件提供高性能的日志处理以及定制化
  • cobra 提供友好的终端命令行解析处理
  • json-iterator 提供高性能的 json 序列化与反序列化
  • gorilla/mux 提供 HTTP 路由处理

二、如何使用

克隆本项目到本地,在 adfunc 添加新的准入控制 WebHook 即可,文件命名请尽量保持一致(func_*.go); 原有的准入控制函数如果不需要可以直接删除,本脚手架会自动加载通过 init 方法注册的准入控制到全局 HTTP 路由。所有准入控制的实际 HTTP 路由都会增加对应类型前缀,比如准入控制路由路径为 /disable-service-links,实际 HTTP 路由路径为 /mutating/disable-service-links

三、补充说明

如果想要增加非准入控制 WebHook 的 HTTP 路由,请在 route 下新建文件,使用方式与 adfunc 类似。 不要改动 main.go 中的初始化方法顺序,否则可能导致准入控制路由无法正常加载。