Kubernetes 如何在头盔中使用if/else循环

Kubernetes 如何在头盔中使用if/else循环,kubernetes,kubernetes-helm,Kubernetes,Kubernetes Helm,我正在尝试在头盔图表中使用if/else if/else循环。基本上,我想根据if/else条件在configfile中添加ENV configs。逻辑如下: apiVersion: v1 kind: ConfigMap metadata: name: {{ .Values.applicationName }}-configmap labels: projectName: {{ .Values.applicationName }} environment: {{ .Val

我正在尝试在头盔图表中使用
if/else if/else
循环。基本上,我想根据if/else条件在configfile中添加ENV configs。逻辑如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Values.applicationName }}-configmap
  labels:
    projectName: {{ .Values.applicationName }}
    environment: {{ .Values.environment }}
    type: configmap
data:
{{- if eq .Values.environment "production" }}
{{ .Files.Get "config-prod.yaml" | nindent 2}}
{{- else if eq .Values.environment "development" }}
{{ .Files.Get "config-dev.yaml" | nindent 2}}
{{- else }}
{{ .Files.Get "config-stage.yaml" | nindent 2}}
{{- end }}

但我没有得到预期的产出,面临一些问题。有人能帮我解决这个问题吗

Edit1:我已根据建议添加了修改后的configmap.yaml,helm install/template命令在demo2/templates/configmap.yaml:将yaml转换为JSON时出错:yaml:第14行:未找到预期键错误


此外,我的config prod和config stage正在呈现(根据条件,如果我给出
environment:production
则会添加config-prod.yaml,如果我给出
environment:stage/null
则会添加config-stage.yaml。

您的问题将受益于更多细节

请考虑以下问题:

  • 你是怎么做到的?你到底运行了什么命令
  • 你怎么会“没有得到想要的输出”?你得到了什么输出
还请包括:

  • values.yaml中的相关条目
  • config-dev.yaml
    config stage.yaml
    文件
您是否运行生成Helm将应用于集群的模板?这将是诊断问题的一个好方法

我不知道你是不是吃了太多的空格


你应该选择左,即
{-..}
而不是左+右
{{-..}

你的问题将受益于更多的细节

请考虑以下问题:

  • 你是怎么做到的?你到底运行了什么命令
  • 你怎么会“没有得到想要的输出”?你得到了什么输出
还请包括:

  • values.yaml中的相关条目
  • config-dev.yaml
    config stage.yaml
    文件
您是否运行生成Helm将应用于集群的模板?这将是诊断问题的一个好方法

我不知道你是不是吃了太多的空格


你应该只吃左,也就是说,
{-..}
而不是左+右
{-..}

对不起,伙计们,这是我的错误,我的dev-config.yaml有env,它被定义为key=value,而不是key:value。

对不起,伙计们,这是我的错误,我的dev-config.yaml有env,它被定义为key=value,而不是key:value