代码之家  ›  专栏  ›  技术社区  ›  Neekoy

Helm:无法用tls的非表覆盖表

  •  0
  • Neekoy  · 技术社区  · 6 年前

    这很可能很简单,但我现在两个小时都搞不清楚。我有以下领事入口,我想通过父图表参数化:

    spec:
      rules:
      {{- range .Values.uiIngress.hosts }}
        - host: {{ . }}
          http:
            paths:
              - backend:
                  serviceName: {{ $serviceName }}
                  servicePort: {{ $servicePort }}
      {{- end -}}
      {{- if .Values.uiIngress.tls }}
      tls:
    {{ toYaml .Values.uiIngress.tls | indent 4 }}
      {{- end -}}
    {{- end }}
    

    我想参数化 spec.tls 在上面。

    values.yaml 领事档案我们有以下模板:

    uiIngress:
      enabled: false
      annotations: {}
      hosts: []
      tls: {}
    

    最接近参数化的是:

      uiIngress:
        tls:
        - hosts:
          - "some.domain.com"
        secretName: "ssl-default"
    

    当我这样做的时候,我得到了这个错误:

    warning: cannot overwrite table with non table for tls (map[])

    有人能帮忙吗,我试了无数次了。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Rafał Leszko    6 年前

    检查您的 helm 版本。我认为旧版本有一些问题。这个很好:

    $ helm version
    Client: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
    Server: &version.Version{SemVer:"v2.9.1", GitCommit:"20adb27c7c5868466912eebdf6664e7390ebe710", GitTreeState:"clean"}
    

    我完全按照你提到的步骤做了:

    1. 添加领事作为子图表(在 charts/consul )
    2. 在创建的父图表中 values.yaml 使用:

      consul:
        uiIngress:
          tls:
          - hosts:
            - "some.domain.com"
          secretName: "ssl-default"
      
    3. 舵装父图