背景说明
Chart的初始化可以通过自己手动组织目录结构,也可以通过命令生成一个模板,根据模板文件进行调整修改
解决方案
手动创建
文件创建
[root@cka-master helm]# mkdir chart-demo
[root@cka-master helm]# cd chart-demo/
[root@cka-master chart-demo]# ls
[root@cka-master chart-demo]# mkdir templates
编辑文件Chart.yaml
apiVersion: v1
name: chart-demo
version: 1.0.0
文件结构
[root@cka-master helm]# tree chart-demo/
chart-demo/
├── Chart.yaml
└── templates
1 directory, 1 file
[root@cka-master helm]#
文件校验
[root@cka-master chart-demo]# helm lint .
==> Linting .
[INFO] Chart.yaml: icon is recommended
[INFO] values.yaml: file does not exist
1 chart(s) linted, 0 chart(s) failed
[root@cka-master chart-demo]#
文件渲染
Error: INSTALLATION FAILED: must either provide a name or specify --generate-name
[root@cka-master chart-demo]# helm install --dry-run --generate-name=true .
NAME: chart-1647338188
LAST DEPLOYED: Tue Mar 15 17:56:28 2022
NAMESPACE: default
STATUS: pending-install
REVISION: 1
TEST SUITE: None
HOOKS:
MANIFEST:
[root@cka-master chart-demo]#
模板创建
命令语法
helm create chartName
命令实践
[root@cka-master helm]# helm create mychart
Creating mychart
[root@cka-master helm]# ls
mychart
[root@cka-master helm]#
目录结构
[root@cka-master helm]# tree mychart/
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
3 directories, 10 files
[root@cka-master helm]#
- Chart.yaml是chart的描述信息,例如当前chart的版本信息
- values.yaml是值内容,记录了全局变量配置,比如镜像是什么等
- templates目录是各种模板,比如定义svc、pvc等yaml文件