1. 前言
本文中,我们学习制作Helm Chart,用来简化imagepullsecret-patcher的部署。
参考文档:
- 《Helm入门篇》
- Helm - Getting Started
- 《K8S配置使用imagePullSecrets》
- imagepullsecret-patcher
- imagepullsecret-patcher deploy-example
2. 第一个Chart
1、生成chart模板
1 | helm create imagepullsecret-patcher |
2、删除所有templates
1 | rm -rf imagepullsecret-patcher/templates/* |
3、准备资源清单
- imagepullsecret-patcher/templates/namespace.yaml
- imagepullsecret-patcher/templates/rbac.yaml
- imagepullsecret-patcher/templates/deployment.yaml
具体资源清单内容参见:make-helm-chart/v1/imagepullsecret-patcher
这份资源清单来自《K8S配置使用imagePullSecrets》,yaml文件中没有使用任何变量。
4、检查chart
1 | helm lint imagepullsecret-patcher |
5、执行安装
1 | helm install imagepullsecret-patcher ./imagepullsecret-patcher |
chart安装成功,但是出现了一个问题:chart所属namespace是default,但是真实资源所属namespace是imagepullsecret-patcher(在yaml文件中指定的)。
3. 第一个Chart存在的问题
第一个Chart,存在几个问题:
helm install
的namespace和真实资源的namespace不同- deployment等资源的name是固定的,不能在values.yaml中或者安装时自定义
- dockerconfigjson是固定的,不能在values.yaml中或者安装时自定义
- imagepullsecret-patcher/values.yaml 中的变量完全无用
- chart的version和app的version不符合预期
为了解决上面几个问题,我们先来补充下helm的知识。参考文档《Helm官方文档摘录》
4. 第二个Chart
第二个Chart,解决第一个Chart中存在的问题。
1、准备资源清单
- imagepullsecret-patcher/templates/rbac.yaml
- imagepullsecret-patcher/templates/deployment.yaml
- imagepullsecret-patcher/templates/_helpers.tpl
- imagepullsecret-patcher/templates/NOTES.txt
- imagepullsecret-patcher/values.yaml
具体资源清单内容参见:make-helm-chart/v2/imagepullsecret-patcher
2、检查chart
1 | helm lint imagepullsecret-patcher |
3、执行安装
1 | helm install imagepullsecret-patcher ./imagepullsecret-patcher \ |
4、打包chart
1 | helm package imagepullsecret-patcher |
生成chart包 imagepullsecret-patcher-0.1.0.tgz
5. 分享Chart仓库
参考文档:
5.1. 创建Chart仓库
1、在github创建一个公共仓库
未完待续