Helm 插件开发与使用全解析
1. Helm 插件概述
Helm 插件具有诸多实用特性,可与现有的 Helm 用户体验实现无缝集成。其中,最显著的特性是每个插件都能为 Helm 提供一个自定义的顶级子命令,这些子命令还能利用 shell 补全功能。
在 Helm 2 中,插件的一个原始特性是会提供连接 Tiller(已弃用的 Helm 服务器端组件)的环境设置。因为涉及 Helm 版本发布的操作都需通过 Tiller 进行,所以这对于需要与 Helm 紧密集成的插件子命令来说至关重要。而在 Helm 3 中,Tiller 已被移除,所有与 Kubernetes API 的通信都由 Helm 客户端自身完成,但插件系统得以保留。
插件安装后,会基于插件名称提供一个新命令,该命令可直接与 Helm 集成,甚至会显示在 helm help
中。例如,安装名为 inspect-templates
的插件后,会提供额外的 Helm 命令 helm inspect-templates [args]
,执行该命令时,会将提供的任何参数或标志传递给插件执行的底层工具。
2. 构建 Helm 插件
构建 Helm 插件是一个相对直接的过程,不过根据插件的要求和整体复杂度,可能需要一些编程知识,不过许多插件仅运行基本的 shell 命令。
2.1 底层实现
以 inspect-templates
插件为例,其底层实现是一个 Bash 脚本 inspect-templates.sh