当您不知道名称时,检查 values.yaml 属性 中是否有任何条目?
Check if a values.yaml property has any entries in it when you don't know the names?
我有一个舵图模板,如下所示:
volumes:
- name: secrets
projected:
sources:
{{- range $secretKey := .Values.secrets }}
- secret:
name: {{ $secretKey | kebabcase }}-secret
{{- end }}
这非常有效,除非 .Values.secrets
中没有任何条目。然后它给出了这个错误:
error validating data: ValidationError(Deployment.spec.template.spec.volumes[0].projected): missing required field "sources" in io.k8s.api.core.v1.ProjectedVolumeSource
基本上是在抱怨sources
没有任何值。
但是我找不到一种方法来检查是否只在 .Values.secrets 有条目时执行此部分。我的 values.yaml 文件是自动填充的,有时没有任何机密值。
但是因为是自动填充的,不知道里面的值的名字。因此,我不能只对其中一个条目进行测试(就像大多数示例一样)。
如何检查 .Values.secrets 是否有任何值?
上面只需要加条件判断,没有值时不生成对象
根据helm document,当对象为空时,if
语句判断为return false
.
A pipeline is evaluated as false if the value is:
- a boolean false
- a numeric zero
- an empty string
- a nil (empty or null)
- an empty collection (map, slice, tuple, dict, array)
volumes:
{{- if .Values.secrets }}
- name: secrets
projected:
sources:
{{- range $secretKey := .Values.secrets }}
- secret:
name: {{ $secretKey | kebabcase }}-secret
{{- end }}
{{- end }}
案例 1:
values.yaml
secrets:
输出:
volumes:
案例 2:
values.yaml
secrets:
- "aaa"
- "bbb"
输出:
volumes:
- name: secrets
projected:
sources:
- secret:
name: aaa-secret
- secret:
name: bbb-secret
我有一个舵图模板,如下所示:
volumes:
- name: secrets
projected:
sources:
{{- range $secretKey := .Values.secrets }}
- secret:
name: {{ $secretKey | kebabcase }}-secret
{{- end }}
这非常有效,除非 .Values.secrets
中没有任何条目。然后它给出了这个错误:
error validating data: ValidationError(Deployment.spec.template.spec.volumes[0].projected): missing required field "sources" in io.k8s.api.core.v1.ProjectedVolumeSource
基本上是在抱怨sources
没有任何值。
但是我找不到一种方法来检查是否只在 .Values.secrets 有条目时执行此部分。我的 values.yaml 文件是自动填充的,有时没有任何机密值。
但是因为是自动填充的,不知道里面的值的名字。因此,我不能只对其中一个条目进行测试(就像大多数示例一样)。
如何检查 .Values.secrets 是否有任何值?
上面只需要加条件判断,没有值时不生成对象
根据helm document,当对象为空时,if
语句判断为return false
.
A pipeline is evaluated as false if the value is:
- a boolean false
- a numeric zero
- an empty string
- a nil (empty or null)
- an empty collection (map, slice, tuple, dict, array)
volumes:
{{- if .Values.secrets }}
- name: secrets
projected:
sources:
{{- range $secretKey := .Values.secrets }}
- secret:
name: {{ $secretKey | kebabcase }}-secret
{{- end }}
{{- end }}
案例 1:
values.yaml
secrets:
输出:
volumes:
案例 2:
values.yaml
secrets:
- "aaa"
- "bbb"
输出:
volumes:
- name: secrets
projected:
sources:
- secret:
name: aaa-secret
- secret:
name: bbb-secret