我们创建一个chart 并查看其结构

右侧注释为其文件的的解释

  1. $ helm create mychart
  2. $ cd mychart/
  3. $ tree
  4. ├── charts # 用于放置子charts
  5. ├── Chart.yaml # 这里有一些chart的基本信息,名称、版本、对应的app版本等。
  6. ├── templates # 放置模板 最终被渲染为不同的 manifest(大概是一些配置和元数据)
  7. ├── deployment.yaml # 这个模板最终会被渲染为 deployment的基本manifest
  8. ├── _helpers.tpl # 这个文件用于 存放模板,给其他地方调用,本身不会被渲染(参照函数库理解)
  9. ├── ingress.yaml
  10. ├── NOTES.txt # chart的说明文件,会在安装、升级后显示其内容,也可以用模板的方式写,会被渲染。
  11. └── service.yaml
  12. └── values.yaml # 存放‘值’ 的地方,渲染templates下模板所用的值,有一大部分来源于此

在Kubernetes中,ConfigMap是存储配置数据的地方。其他的东西,比如Pod,可以访问ConfigMap中的数据

模板名称不遵循严格的命名模式。但是,我们建议.yaml为YAML文件后缀,.tpl为模板助手后缀。

我们创建一个名为:mychart/templates/configmap.yaml 的文件
其内容如下:

  1. apiVersion: v1
  2. kind: ConfigMap
  3. metadata:
  4. name: {{ .Release.Name }}-configmap
  5. data:
  6. myvalue: "Hello World"

这里有一个模板引用,{{ .Release.Name }}会被渲染为 ap的release名称。(该Release对象是Helm的内置对象之一,稍后会进一步介绍它。)
接下来,介绍几个命令:

  1. $ helm install ./mychart # 安装并获取反馈信息
  2. NAME: clunky-serval
  3. LAST DEPLOYED: Tue Nov 1 17:45:37 2016
  4. NAMESPACE: default
  5. STATUS: DEPLOYED
  6. RESOURCES:
  7. ==> v1/ConfigMap
  8. NAME DATA AGE
  9. clunky-serval-configmap 1 1m
  10. $ helm get manifest full-coral
  11. # helm get manifest命令获取release名称(full-coral)并打印出上传到服务器的所有Kubernetes资源。
  12. # 每个文件都以---开始作为文档的起始,然后是一个自动生成的注释行,告诉我们该模板文件生成于哪个YAML文档
  13. ---
  14. # Source: mychart/templates/configmap.yaml
  15. apiVersion: v1
  16. kind: ConfigMap
  17. metadata:
  18. name: goodly-gupp-configmap # 渲染过的值
  19. data:
  20. myvalue: "Hello World"
  21. $ helm install --debug --dry-run ./mychart
  22. # 一个快速调试的技巧(还有一个是 helm lint name):当您想测试模板渲染,但实际上不安装任何东西时,
  23. # 可以使用helm install --debug --dry-run ./mychart。
  24. # 这会把chart发送到Tiller服务器,将渲染模板。但不安装chart,会将渲染模板返回,以便可以看到如下输出
  25. SERVER: "localhost:44134"
  26. CHART PATH: /Users/mattbutcher/Code/Go/src/k8s.io/helm/_scratch/mychart
  27. NAME: goodly-guppy
  28. TARGET NAMESPACE: default
  29. CHART: mychart 0.1.0
  30. MANIFEST:
  31. ---
  32. # Source: mychart/templates/configmap.yaml
  33. apiVersion: v1
  34. kind: ConfigMap
  35. metadata:
  36. name: goodly-guppy-configmap
  37. data:
  38. myvalue: "Hello World"

转载注明出处:
https://www.jianshu.com/p/d0b0dcad531e

版权声明:本文为mingbai原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/mingbai/p/helmchart2.html