Helm 根据环境获取值
Helm get Values depending on environment
我想 select 不同的资源 limits/requests 取决于环境(作为输入给出)
这是我的图表中的 Values.yaml 文件
resources:
dev:
limits:
cpu: 100m
memory: 100Mi
requests:
cpu: 20m
memory: 10Mi
prod:
limits:
cpu: 1000m
memory: 1000Mi
requests:
cpu: 200m
memory: 100Mi
我使用此命令部署图表:
helm upgrade --install --values=global_values.yaml
和内部 global_values.yaml:
global:
environmentSuffix: prod
我想做的是select根据environmentSuffix
获取正确的资源(开发...生产。总共4个环境)
类似这样的事情(当然是行不通的):
resources:
limits:
cpu: {{ .Values.resources[.Values.global.environmentSuffix].limits.cpu }}
memory: {{ .Values.resources[.Values.global.environmentSuffix].limits.memory}}
requests:
cpu: {{ .Values.resources[.Values.global.environmentSuffix].requests.cpu }}
memory: {{ .Values.resources[.Values.global.environmentSuffix].requests.memory}}
我怎样才能做到这一点?
您可以使用 Go text/template 中的 index
函数将环境资源存储在变量中,然后访问它的值。
{{ $envResources := index .Values.resources .Values.global.environmentSuffix }}
resources:
limits:
cpu: {{ $envResources.limits.cpu }}
我想 select 不同的资源 limits/requests 取决于环境(作为输入给出)
这是我的图表中的 Values.yaml 文件
resources:
dev:
limits:
cpu: 100m
memory: 100Mi
requests:
cpu: 20m
memory: 10Mi
prod:
limits:
cpu: 1000m
memory: 1000Mi
requests:
cpu: 200m
memory: 100Mi
我使用此命令部署图表:
helm upgrade --install --values=global_values.yaml
和内部 global_values.yaml:
global:
environmentSuffix: prod
我想做的是select根据environmentSuffix
获取正确的资源(开发...生产。总共4个环境)
类似这样的事情(当然是行不通的):
resources:
limits:
cpu: {{ .Values.resources[.Values.global.environmentSuffix].limits.cpu }}
memory: {{ .Values.resources[.Values.global.environmentSuffix].limits.memory}}
requests:
cpu: {{ .Values.resources[.Values.global.environmentSuffix].requests.cpu }}
memory: {{ .Values.resources[.Values.global.environmentSuffix].requests.memory}}
我怎样才能做到这一点?
您可以使用 Go text/template 中的 index
函数将环境资源存储在变量中,然后访问它的值。
{{ $envResources := index .Values.resources .Values.global.environmentSuffix }}
resources:
limits:
cpu: {{ $envResources.limits.cpu }}