Skip to content

NimTechnology

Trình bày các công nghệ CLOUD một cách dễ hiểu.

  • Kubernetes & Container
    • Docker
    • Kubernetes
      • Ingress
    • Helm Chart
    • Isito-EnvoyFilter
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Vault
    • Longhorn – Storage
    • VictoriaMetrics
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Spinnaker
    • Jenkins
  • Coding
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
    • Golang
    • Laravel
    • Jquery & JavaScript
    • Git
    • Selenium
  • Log & Monitor
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
  • Toggle search form

[Helm chart] how do you use “if else” in helm-chart

Posted on March 9, 2022March 10, 2022 By nim No Comments on [Helm chart] how do you use “if else” in helm-chart

Khi bạn muốn if else so sanh bằng

{{- if eq .Values.pluton.enabled "xxx"}}
{{- else if eq .Values.environment "prod-vdc" }}
{{- else }}
{{- end }}

Còn so sánh true false:

{{- if .Values.pluton.enabled }}
{{- end }}

Kiếm tra có tồn tại key đó ko?

It is quite impressive how hard it is to check a map key in Go templates to do some simple if conditions in your Helm charts or other Kubernetes templates.

At least for Helm, there is a nice solution. For this, you have to know that Helm uses the Sprig template library which has support for dict types. And the dict type provides a hasKey method:

{{- if hasKey .Values.mymap "mykey" }}
    # do something conditional here...
{{- end }}

https://stackoverflow.com/questions/59795596/helm-optional-nested-variables

Most charts will default the parent object to a empty map in values.yaml so it always exists.

foo: {}

Then {{ if .Values.foo.bar }} works.

If that’s not possible, test both keys:

{{ if .Values.foo }}
{{ if .Values.foo.bar }}
{{ .Values.foo.bar }}
{{ end }}
{{ end }}

Using the and function doesn’t work in this case due to and evaluating all parameters, even if the first is falsey.

There is also the hasKey function included from sprig if you ever need to check the existence of a falsey or empty value:

{{ if hasKey .Values.foo "bar" }}
Helm Chart

Post navigation

Previous Post: [Golang] Dig deeply for repository implement in Golang
Next Post: [web] 1 vài web vui vọc vạch.

More Related Articles

[Helm-k8s] Researching to write a unit test for your helm chart – Kubernetes Helm Chart
[helm-chart] Using “toYaml” to design helm-chart – Kubernetes Helm Chart
[Helm-chart] Declare “template” in helm-chart – Kubernetes Helm Chart
[Kustomize] How to combine Kustomize and Helm-chart! Helm Chart
[Helm Chart] Tìm hiểu fullnameOverride và .fullname trong helm chart. Helm Chart
[Helm chart] Discorverting “with” in helm chart – Kubernetes Helm Chart

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Tham Gia Group DevOps nhé!
Để Nim có nhiều động lực ra nhiều bài viết.
Để nhận được những thông báo mới nhất.

Recent Posts

  • Protected: My Assignment  June 24, 2022
  • [Spinnaker] Spinnaker writes too many logs – Reduce spinnaker log level June 22, 2022
  • [Jenkins] Jobs will be created automatically by Jenkins Job Builder June 20, 2022
  • [Postgresql] Install postgresql client and trying a few command postgresql. June 20, 2022
  • [Mount/Nextcloud] How do you mount a hard disk that was used windows into Linux. June 19, 2022

Archives

  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021

Categories

  • BareMetal
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Jenkins
    • Spinnaker
  • Coding
    • Git
    • Golang
    • Jquery & JavaScript
    • Laravel
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kubernetes
      • Ingress
    • Longhorn – Storage
    • Vault
    • VictoriaMetrics
  • Log & Monitor
    • ELK
      • Kibana
      • Logstash
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2022 NimTechnology.