kubernetes-helm - Helm If/else 如果存在则有条件值

标签 kubernetes-helm

我有一个包含以下键/值对的值文件:

domains:
  - name: "one.dev.beta.com"
  - name: "two.dev.beta.com"
  - name: "three.dev.beta.com"
  - name: "four.dev.beta.com" 
    wwwRedirect: true

如果 wwwRedirecttrue,我需要一个 helm chart 来对行为进行条件化。我不熟悉在 GO 的 helm chart 中编写条件语句,想验证它是否可行。我想知道在将我的服务也部署到我的集群之前是否有办法测试这种行为:

{{ range .Values.domains }}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: {{ .name }}
  namespace: {{ $.Release.Namespace }}
spec:
  secretName: {{ .name }}
  duration: 2h
  renewBefore: 2h
  subject:
    organizations:
    - dev
  isCA: false
  privateKey:
    algorithm: RSA
    encoding: PKCS1
    size: 2048
  commonName: {{ .name }}
  dnsNames:
  {{ if not .name.wwwRedirect }}
    - "{{ .name }}"
    - "www.{{ .name }}"
  {{ else }}
    - "{{ .name }}"
  {{ end }}    
  issuerRef:
    name: letsencrypt-http01-traefik
    kind: ClusterIssuer
{{ end }}

我要验证的具体部分在这里:

  dnsNames:
  {{ if not .name.wwwRedirect }}
    - "{{ .name }}"
    - "www.{{ .name }}"
  {{ else }}
    - "{{ .name }}"
  {{ end }}    

我在阅读本文时的假设是,如果 .name.wwwRedirect 不正确或不存在,那么它会将带 www 和不带 www 的 dns 名称应用到列表中。如果 name.Redirect 为真,那么它只会将其应用于名称。

最佳答案

helm Debugging Templates

helm template --debug test .

这是让服务器呈现您的模板,然后返回生成的 list 文件的好方法。

关于kubernetes-helm - Helm If/else 如果存在则有条件值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72723457/

相关文章:

azure-devops - 通过 Terraform Helm 提供程序和 Azure DevOps 部署 Helm chart ,同时从 ACR 获取 Helm chart

kubernetes - Helm升级遇到失败似乎是因为configmap限制​​超过

kubernetes - Helm 模板化 nil 指针

kubernetes-helm - 如何在 Helm 安装中通过 `prometheus.io/scrape`参数传递 `--set`值

kubernetes - 如何根据负载自动缩放pod数量?

kubernetes - 为什么当之前的安装失败时 helm Upgrade --install 会失败?

kubernetes-helm - 如何在Prometheus-operator中启用持久性

ssl - 隔离 Azure Kubernetes 服务 (AKS) SSL 错误

docker - 如何在 Helm 图表中配置 docker 入口点

hadoop - 如何通过Helm Chart在Kubernetes中安装Hadoop?