背景说明

Chart的初始化可以通过自己手动组织目录结构,也可以通过命令生成一个模板,根据模板文件进行调整修改

解决方案

手动创建

文件创建

  1. [root@cka-master helm]# mkdir chart-demo
  2. [root@cka-master helm]# cd chart-demo/
  3. [root@cka-master chart-demo]# ls
  4. [root@cka-master chart-demo]# mkdir templates

编辑文件Chart.yaml

  1. apiVersion: v1
  2. name: chart-demo
  3. version: 1.0.0

文件结构

  1. [root@cka-master helm]# tree chart-demo/
  2. chart-demo/
  3. ├── Chart.yaml
  4. └── templates
  5. 1 directory, 1 file
  6. [root@cka-master helm]#

文件校验

  1. [root@cka-master chart-demo]# helm lint .
  2. ==> Linting .
  3. [INFO] Chart.yaml: icon is recommended
  4. [INFO] values.yaml: file does not exist
  5. 1 chart(s) linted, 0 chart(s) failed
  6. [root@cka-master chart-demo]#

文件渲染

  1. Error: INSTALLATION FAILED: must either provide a name or specify --generate-name
  2. [root@cka-master chart-demo]# helm install --dry-run --generate-name=true .
  3. NAME: chart-1647338188
  4. LAST DEPLOYED: Tue Mar 15 17:56:28 2022
  5. NAMESPACE: default
  6. STATUS: pending-install
  7. REVISION: 1
  8. TEST SUITE: None
  9. HOOKS:
  10. MANIFEST:
  11. [root@cka-master chart-demo]#

模板创建

命令语法

  1. helm create chartName

命令实践

  1. [root@cka-master helm]# helm create mychart
  2. Creating mychart
  3. [root@cka-master helm]# ls
  4. mychart
  5. [root@cka-master helm]#

目录结构

  1. [root@cka-master helm]# tree mychart/
  2. mychart/
  3. ├── charts
  4. ├── Chart.yaml
  5. ├── templates
  6. ├── deployment.yaml
  7. ├── _helpers.tpl
  8. ├── hpa.yaml
  9. ├── ingress.yaml
  10. ├── NOTES.txt
  11. ├── serviceaccount.yaml
  12. ├── service.yaml
  13. └── tests
  14. └── test-connection.yaml
  15. └── values.yaml
  16. 3 directories, 10 files
  17. [root@cka-master helm]#
  1. Chart.yaml是chart的描述信息,例如当前chart的版本信息
  2. values.yaml是值内容,记录了全局变量配置,比如镜像是什么等
  3. templates目录是各种模板,比如定义svc、pvc等yaml文件