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
    • MetalLB
    • Kong Gateway
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Spinnaker
    • Jenkins
    • Harbor
    • TeamCity
    • Git
      • Bitbucket
  • Coding
    • Terraform
      • GCP – Google Cloud
      • AWS – Amazon Web Service
    • Golang
    • Laravel
    • Python
    • Jquery & JavaScript
    • Selenium
  • Log & Monitor
    • DataDog
    • Prometheus
    • Grafana
    • ELK
      • Kibana
      • Logstash
  • BareMetal
    • NextCloud
  • Toggle search form

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

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

1) equal with string

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/Github] Create a public Helm chart repository with GitHub Pages 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] Learning Helm on Kubernetes in 60 minutes!! Helm Chart
[helm-chart] Using “toYaml” to design helm-chart – Kubernetes Helm Chart
[kubectl/helm] invalid apiVersion “client.authentication.k8s.io/v1alpha1” 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

  • Experiences for IP Addresses Shortage on EKS Clusters March 29, 2023
  • [Talisman] Discover the sensitive information in your code. March 28, 2023
  • [Prometheus/Grafana] Install Prometheus and Grafana on ubuntu. March 27, 2023
  • [Kong Gateway] WebSocket connection failed March 26, 2023
  • [Nextcloud] Can’t download files to have a size bigger than 2Gi on NextCloud – RaspBerry March 24, 2023

Archives

  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • July 2022
  • 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
    • NextCloud
  • CI/CD
    • ArgoCD
    • ArgoWorkflows
    • Git
      • Bitbucket
    • Harbor
    • Jenkins
    • Spinnaker
    • TeamCity
  • Coding
    • Golang
    • Jquery & JavaScript
    • Laravel
    • Python
    • Selenium
    • Terraform
      • AWS – Amazon Web Service
      • GCP – Google Cloud
  • Kubernetes & Container
    • Apache Kafka
      • Kafka
      • Kafka Connect
      • Lenses
    • Docker
    • Helm Chart
    • Isito-EnvoyFilter
    • Kong Gateway
    • Kubernetes
      • Ingress
    • Longhorn – Storage
    • MetalLB
    • Vault
    • VictoriaMetrics
  • Log & Monitor
    • DataDog
    • ELK
      • Kibana
      • Logstash
    • Grafana
    • Prometheus
  • Uncategorized
  • Admin

Copyright © 2023 NimTechnology.