首先,我们使用helm create来创建一个helm模板,查看该模板目录结构如下:
mychart/
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
- templates:目录包括了模板文件。当Helm评估chart时,会通过模板渲染引擎将所有文件发送到templates/目录中。 然后收集模板的结果并发送给Kubernetes。
- values.yaml:这个文件包含了chart的 默认值 。这些值会在用户执行helm install 或 helm upgrade时被覆盖
- Chart.yaml:文件包含了该chart的描述。
- charts/:目录存放其他的chart(称之为 子chart)。例如一个项目有很多需要安装很多个模块,我们可以把每一个模块做成一个chart模板放在charts目录中。
mychart/templates/目录用于存放pod资源文件:
- NOTES.txt: chart的"帮助文本",执行完helm install后会在屏幕打印出来
- *.yaml: 都是创建pod的资源对象,service,deployment,configmap等
- _helpers.tpl: 放置可以通过chart复用的模板辅助对象