helm入门2——模板语法详解案例1

{{- define "gindemo.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}

这段代码是 Helm 模板的一部分,用来定义一个名为 "gindemo.name" 的模板,并通过一系列的函数和逻辑生成一个名称。让我们逐步分解它的功能:

1. {{- define "gindemo.name" -}}

  • define "gindemo.name":这是 Helm 中用来定义模板的语法,gindemo.name 是模板的名称。定义的模板可以在同一 Chart 或其他 Chart 中通过 {{ template "gindemo.name" . }} 调用。
  • {{--}}:这些语法中的连字符 - 用于控制模板中的空白符。它会移除该行的前置或后置空白符,确保生成的 YAML 文件不会有多余的空行或缩进。

2. {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}

这段是模板的核心部分,涉及多个 Helm 内置函数。我们逐个解析:

a. default .Chart.Name .Values.nameOverride
  • defaultdefault 是 Helm 的一个内置函数,用于在某个值为空时提供默认值。它的语法是:default <default_value> <actual_value>
  • .Chart.Name:表示当前 Helm Chart 的名称,来自 Chart.yaml 文件。例如,如果你的 Chart 名称是 gindemo,那么 .Chart.Name 就是 gindemo
  • .Values.nameOverride:这是从 values.yaml 文件中读取的一个值,通常用于让用户手动覆盖 Chart 的名称。如果用户没有在 values.yaml 文件中定义 nameOverride,该值就会为空。

因此,这里的逻辑是:如果 .Values.nameOverride 存在,使用它作为名称;如果不存在,使用 .Chart.Name 作为默认名称。

b. trunc 63
  • trunctrunc 是 Helm 的一个内置函数,用于将字符串截断为指定的最大长度。trunc 63 表示将字符串长度截断为 63 个字符。 这是 Kubernetes 的一个要求:大多数资源的名称长度不得超过 63 个字符(例如,Pod 和 Service 的名称)。
c. trimSuffix "-"
  • trimSuffix "-":这是一个用于去除字符串末尾的特定后缀的函数。在这个例子中,它会移除名称末尾的 -(连字符)。这是为了防止当名称由于截断或其他原因以 - 结尾时,保持名称的整洁和规范性。

3. {{- end }}

  • end 用于结束 define 块,表明模板定义的结束位置。

总结

这段代码的主要目的是定义一个名为 "gindemo.name" 的模板,该模板生成 Helm Chart 的名称,遵循以下规则:

  1. 如果 values.yaml 中定义了 nameOverride,则使用 nameOverride 的值。
  2. 如果 nameOverride 没有定义,使用 Chart 的名称(即 .Chart.Name)。
  3. 生成的名称会被截断为最多 63 个字符,以符合 Kubernetes 的命名限制。
  4. 如果名称以 - 结尾,去掉末尾的 - 以保持名称整洁。

这是 Helm Chart 中一个常见的模式,用于动态生成符合 Kubernetes 规范的资源名称,同时提供了灵活的配置选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值