掌舵人根据环境获得价值

时间:2020-08-04 15:58:22

标签: kubernetes openshift kubernetes-helm

我想根据环境(作为输入给出)选择不同的资源限制/请求

这是我图表中的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

我要做的是基于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}}

我该如何实现?

1 个答案:

答案 0 :(得分:1)

您可以使用Go text/template中的index函数将环境资源存储在变量中,然后访问其值。

{{ $envResources := index .Values.resources .Values.global.environmentSuffix }}
      resources:
        limits:
          cpu: {{ $envResources.limits.cpu }}