Skip to content

mritd/goadmission

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

如需要使用默认的自动编译脚本, 请先安装 Task 工具.

三、补充说明

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