编写第一个模板

本文介绍了如何使用Helm的helmcreate命令创建模板文件,然后编辑configmap.yaml来定义ConfigMap资源。通过Helm安装和卸载发布,展示了如何动态地注入发布名称到ConfigMap的name字段,并利用helmgetmanifest检查模板渲染的结果。此外,提到了使用--debug--dry-run选项来预览模板内容而无需实际部署。
摘要由CSDN通过智能技术生成

使用helm chart创建一个ConfigMap资源

  1. 利用helm create命令先创建一个模板文件
helm create mychart
  1. 进入mychart/templates,删除所有.yaml文件,新建一个configmap.yaml
#configmap.yaml,文件名称没有严格要求,以.yaml结尾的YAML文件
apiVersion: v1
kind: ConfigMap
metadata:
  name: mychart-configmap
data:
  value1: "Hello Helm"

在这个yaml中,name定义的是configmap的名称,data中定义的是内容,以键值的方式存在。变量的值都是写死的。
3. 通过模板文件,就有了一个可安装的chart,安装如下:

# helm install firstchart mychart/
NAME: firstchart
LAST DEPLOYED: Sun Jul 30 14:55:39 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
  1. 使用Helm检索版本并查看实际加载的模板
# helm get manifest firstchart
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: mychart-configmap
data:
  value1: "Hello Helm"

helm get manifest 命令后跟一个发布名称(firstchart)然后打印出了所有已经上传到server的Kubernetes资源。 每个文件以—开头表示YAML文件的开头,然后是自动生成的注释行,表示哪个模板文件生成了这个YAML文档。

  1. 卸载发布
    helm uninstall firstchart

添加一个简单的模板调用

通常来讲name的值一般不会写死,我们额可以通过插入发布名称来生成名称字段,如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-cm
data:
  value1: "Hello Helm"

{{ .Release.Name }} 将发布名称注入了模板。值作为一个 命名空间对象 传给了模板,用点(.)分隔每个命名空间的元素。

Release是一个Helm的内置对象,后面的博文会讲到

再安装一次资源,发布名称起名test

# helm install test mychart/
NAME: test
LAST DEPLOYED: Sun Jul 30 15:09:16 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1

运行helm get manifest test查看生成的完整的YAML如下:

# helm get manifest test
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: test-cm
data:
  value1: "Hello Helm"

以上通过创建一个configmap资源简单了解了chart模板。在YAML中,我们分别通过自定义和变量传参的方式来设置name的值,最后通过helm install安装chart,再用helm get manifest 去查看模板的内容。
这里,当你想测试模板渲染的内容但又不想安装任何实际应用时,可以使用helm install --debug --dry-run,这样不会安装应用(chart)到你的kubenetes集群中,只会渲染模板内容到控制台(用于测试)。渲染后的模板如下:

# helm install test mychart/ --debug --dry-run
install.go:173: [debug] Original chart version: ""
install.go:190: [debug] CHART PATH: /root/ums/helm-chart/mychart
MANIFEST:
---
# Source: mychart/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: test-cm
data:
  value1: "Hello Helm"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值