一个计算机技术爱好者与学习者

0%

自己动手制作Helm Chart

1. 前言

本文中,我们学习制作Helm Chart,用来简化imagepullsecret-patcher的部署。

参考文档:

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
2
3
4
5
helm install imagepullsecret-patcher ./imagepullsecret-patcher \
-n imagepullsecret-patcher --create-namespace \
--set imageCredentials.registry=harbor.voidking.com \
--set imageCredentials.username=haojin \
--set imageCredentials.password=haojin123

4、打包chart

1
helm package imagepullsecret-patcher

生成chart包 imagepullsecret-patcher-0.1.0.tgz

5. 分享Chart仓库

参考文档:

5.1. 创建Chart仓库

1、在github创建一个公共仓库

未完待续

  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-make-helm-chart/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~