在Kubernetes上去部署一些资源,现在通常取用helm来管理。
Helm里提供了一个hook的机制来帮助开发者控制在release的不停生命周期阶段去做某些特定操作。
比如在创建系统之前需要提前配置一些ConfigMap去给后续启动的服务提供configuration,在比如在服务启动前生成Secret,来提供必要的证书等信息。
一下时copy的一些定义:
- 预安装pre-install:在模板渲染后,kubernetes 创建任何资源之前执行
- 安装后post-install:在所有 kubernetes 资源安装到集群后执行*
- 预删除pre-delete:在从 kubernetes 删除任何资源之前执行删除请求
- 删除后post-delete:删除所有 release 的资源后执行
- 升级前pre-upgrade:在模板渲染后,但在任何资源升级之前执行
- 升级后post-upgrade:在所有资源升级后执行
- 预回滚pre-rollback:在模板渲染后,在任何资源回滚之前执行
- 回滚后post-rollback:在修改所有资源后执行回滚请求
- crd-install:在运行其他检查之前添加 CRD 资源,只能用于 chart 中其他的资源清单定义的 CRD 资源。
分享一个实际遇到的问题,
我们在已有的系统上新加一个功能,这里边要用到一个secret,所以这个secret的hook的定义就是pre-install, pre-upgrade。这个就是在install和upgrade的场景,都要创建这个secret。
但是有个问题就是pre-upgrade导致每次upgrade都会去重新创建这个secret。但是这个sec