mritd / goadmission

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 中的初始化方法顺序, 否则可能导致准入控制路由无法正常加载.

About

License:Apache License 2.0


Languages

Language:Go 95.4%Language:Dockerfile 2.9%Language:Shell 1.7%