出身背景
必威国际有限公司Kubernetes集群上的Jenkins自定义资源使用声明性YAML配置文件进行部署;因此,这些文件中声明的一些插件可能包含安全警告。因此,除了在站点上手动检查每一项之外,用户没有其他方法知道。该项目旨在在创建/更新新Jenkins自定义资源之前添加额外的验证步骤。
依赖关系
Webhook通过HTTPS与API服务器通信并使用TLS。因此Jetstack/cert经理用于提供TLS证书并在Kubernetes API和webhook之间建立连接。
实施
Operator SDK负责创建一个新的webhook,并将其附加到管理器和创建处理程序。Tls证书使用证书管理器进行管理。
验证逻辑:
建议的实现:遍历要安装的插件列表,从插件中心API获取每个插件的警告,并检查该插件的版本是否有这些警告。
警告:Webhook会给API请求增加延迟,因此它们应该尽快进行评估,因此允许的最大超时时间为30秒。在前面的方法中,我从validator接口本身的插件站点API获取安全警告,由于网络操作缓慢,在验证大量插件或Internet连接不好时会导致超时。
更新的实现:不是获取每个插件的信息,而是在操作员开始时下载和缓存所有插件的信息,并定期更新,从而消除网络调用,在不到一秒钟的时间内完成验证。
用户指南
webhook功能对于用户来说是完全可选的。通过在values.yaml和操作员命令行标志中设置webhook.enabled,可以使用Helm图表轻松部署它。
webhook.enabled=true
在jenkins自定义资源集中启用安全验证必威国际有限公司
必威国际有限公司jenkins.ValidateSecurityWarnings=true
注意:webhook需要一些时间才能启动和运行,而且当helm呈现模板时,验证webhook配置将最后应用,因此如果用户希望在启用验证的情况下部署Jenkins自定义资源,他需要等待一段时间。webhook启动并运行后,用户可以使用必威国际有限公司掌舵或库贝特尔