上QQ阅读APP看书,第一时间看更新
2.10 Chart模板开发高阶介绍
前面我们对Chart模板有了基本的认识,也简单了解了Helm的功能。本节我将介绍一些编写Chart用到的高阶方法,包括模板语言、内置函数、内置默认变量等。刚开始读者可能会觉得有些难懂,可以暂且略过本节,当在第3章学习中发现不懂的地方时,再回本节查漏补缺。当然,如果能顺利阅读完本节,肯定对后续的学习大有裨益,学好本节内容对于将来阅读标准社区Chart与开发项目也有很大的帮助。
在开始本节学习之前,我们先创建一个Chart,这个Chart会随着讲解逐渐丰富。就像上文所讲的一样,一个Chart的结构如下所示。
myChart/ Chart.yaml values.yaml Charts/ templates/ ...
template文件夹存放所有的Kubernetes资源文件,values.yaml存放本Chart默认的参数,Chart.yaml存放描述该Chart的元信息,Charts/文件夹存放依赖的子Chart文件内容。
本节先创建一个名为myChart的Chart,然后再填充一些Kubernetes资源到template文件夹中。
[root@iZ8vb0qditk1qw27yu4k5nZ ~]# helm create myChart Creating myChart [root@iZ8vb0qditk1qw27yu4k5nZ ~]# tree myChart/ myChart/ ├── Charts ├── Chart.yaml ├── templates │ ├── deployment.yaml │ ├── _helpers.tpl │ ├── ingress.yaml │ ├── NOTES.txt │ ├── service.yaml │ └── tests │ └── test-connection.yaml └── values.yaml [root@iZ8vb0qditk1qw27yu4k5nZ ~]# rm -rf myChart/templates/* [root@iZ8vb0qditk1qw27yu4k5nZ ~]# tree myChart/ myChart/ ├── Charts ├── Chart.yaml ├── templates └── values.yaml
下面把自动生成的template文件夹的内容全部删除,这样才能方便后面创建我们的文件。当然这是为了演示使用,如果在生产环境中创建Chart,还是建议直接复用自动生成的Chart内容,它会大大提高我们创建Chart的速度。