背景说明
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: v1name: chart-demoversion: 1.0.0
文件结构
[root@cka-master helm]# tree chart-demo/chart-demo/├── Chart.yaml└── templates1 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 exist1 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-1647338188LAST DEPLOYED: Tue Mar 15 17:56:28 2022NAMESPACE: defaultSTATUS: pending-installREVISION: 1TEST SUITE: NoneHOOKS:MANIFEST:[root@cka-master chart-demo]#
模板创建
命令语法
helm create chartName
命令实践
[root@cka-master helm]# helm create mychartCreating mychart[root@cka-master helm]# lsmychart[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.yaml3 directories, 10 files[root@cka-master helm]#
- Chart.yaml是chart的描述信息,例如当前chart的版本信息
- values.yaml是值内容,记录了全局变量配置,比如镜像是什么等
- templates目录是各种模板,比如定义svc、pvc等yaml文件
