安装舵图和条件时出错

问题描述 投票:0回答:1

我需要使用掌舵图在不同的名称空间上部署三个不同的证书。我会在同一文件中为每个证书创建一个模板,并在每个证书上添加条件,以便仅将我作为参数安装在头盔安装命令中传递的所需证书进行部署,我的secret.yaml看起来像这样:

{{- if eq .Values.val "paris_turf_support" }}
{{- range .Values.namespaces.paris_turf_support }}
{{- $ns := . -}}

apiVersion: v1
kind: Secret
type: kubernetes.io/tls
metadata:
name: "tls-paris-turf.support"
namespace: {{ $ns }}
data:
    tls.crt: {{ $.Files.Get "tls-paris-turf.support.crt" | b64enc }}
    tls.key: {{ $.Files.Get "tls-paris-turf.support.key" | b64enc }}
{{- end }}

{{ else if eq .Values.val "geny_sports" }}
{{- range .Values.namespaces.geny_sports }}
{{- $ns := . -}}

apiVersion: v1
kind: Secret
type: kubernetes.io/tls
metadata:
    name: "tls-geny-sports.com"
    namespace: {{ $ns }}
data:
    tls.crt: {{ $.Files.Get "tls-geny-sports.com.crt" | b64enc }}
    tls.key: {{ $.Files.Get "tls-geny-sports.com.key" | b64enc }}
{{- end }}

{{ else if eq .Values.val "paris_turf_com" }}
{{- range .Values.namespaces.paris_turf_com }}
{{- $ns := . -}}

apiVersion: v1
kind: Secret
type: kubernetes.io/tls
metadata:
    name: "tls-paris-turf.com"
    namespace: {{ $ns }}
data:
    tls.crt: {{ $.Files.Get "tls-paris-turf.com.crt" | b64enc }}
    tls.key: {{ $.Files.Get "tls-paris-turf.com.key" | b64enc }}
{{- end }}
{{- end }}

当我运行此命令以安装头盔图表时:helm install secret-rel ./secret --values=./secret/values/dev.yaml --namespace=secret --set val="paris_turf_com"

我收到此错误:错误:secret / templates / secret.yaml上的YAML解析错误:将YAML转换为JSON时发生错误:yaml:第9行:在此上下文中不允许映射值

需要您的帮助

kubernetes kubernetes-helm
1个回答
0
投票

最终我解决了这个问题,这是我的secret.yaml:

{{- if eq .Values.val "paris_turf_support" }}
{{- range .Values.namespaces.paris_turf_support }}
{{- $ns := . -}}

apiVersion: v1
kind: Secret
type: kubernetes.io/tls
metadata:
  name: tls-paris-turf.support
  namespace: {{ $ns }}
data:
  tls.crt: {{ $.Files.Get "tls-paris-turf.support.crt" | b64enc }}
  tls.key: {{ $.Files.Get "tls-paris-turf.support.key" | b64enc }}
---
{{- end }}
{{ else if eq .Values.val "geny_sports" }}
{{- range .Values.namespaces.geny_sports }}
{{- $ns := . -}}

apiVersion: v1
kind: Secret
type: kubernetes.io/tls
metadata:
  name: tls-geny-sports.com
  namespace: {{ $ns }}
data:
  tls.crt: {{ $.Files.Get "tls-geny-sports.com.crt" | b64enc }}
  tls.key: {{ $.Files.Get "tls-geny-sports.com.key" | b64enc }}
---
{{- end }}
{{ else if eq .Values.val "paris_turf_com" }}
{{- range .Values.namespaces.paris_turf_com }}
{{- $ns := . -}}

apiVersion: v1
kind: Secret
type: kubernetes.io/tls
metadata:
  name: tls-paris-turf.com
  namespace: {{ $ns }}
data:
  tls.crt: {{ $.Files.Get "tls-paris-turf.com.crt" | b64enc }}
  tls.key: {{ $.Files.Get "tls-paris-turf.com.key" | b64enc }}
---
{{- end }}
{{- end }}
© www.soinside.com 2019 - 2024. All rights reserved.