我想像这样调用舵图上的值 我想在 .Values.envType.name 上使用键 .Values.load 的值,
名称将为 .load,因此我们希望以动态方式使用它,这样我们只需更改 .Values.load,它将在其他值上使用它。
我希望我能很好地解释自己:)
编辑:
值文件结构
LOAD: DCS
EnvType:
DCS:
name: DCS
NORMAL:
limitRange:
limits:
memory: 256Mi
cpu: 0.5
HEAVY:
limitRange:
limits:
memory: 256Mi
cpu: 0.5
DEV:
name: DEV
NORMAL:
limitRange:
limits:
memory: 256Mi
cpu: 0.5
HEAVY:
limitRange:
limits:
memory: 256Mi
cpu: 0.5
所以基本上我想使用加载键访问 EnvType 对象内的任何值 所以它可以更有活力。
Helm 不支持二次渲染,但可以使用 yaml 锚点 来实现此功能。
values.yaml
LOAD: &LOAD DCS
EnvType:
DCS:
name: *LOAD
NORMAL:
limitRange:
limits:
memory: 256Mi
cpu: 0.5
HEAVY:
limitRange:
limits:
memory: 256Mi
cpu: 0.5
DEV:
name: *LOAD
NORMAL:
limitRange:
limits:
memory: 256Mi
cpu: 0.5
HEAVY:
limitRange:
limits:
memory: 256Mi
cpu: 0.5
模板/cm.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "test.fullname" . }}
data:
load: {{ $.Values.LOAD }}
enntype: |-
{{- toYaml $.Values.EnvType | nindent 4 }}
cmd
helm install test .
输出
apiVersion: v1
data:
enntype: |-
DCS:
HEAVY:
limitRange:
limits:
cpu: 0.5
memory: 256Mi
NORMAL:
limitRange:
limits:
cpu: 0.5
memory: 256Mi
name: DCS
DEV:
HEAVY:
limitRange:
limits:
cpu: 0.5
memory: 256Mi
NORMAL:
limitRange:
limits:
cpu: 0.5
memory: 256Mi
name: DCS
load: DCS
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/managed-by: Helm
name: test
namespace: default