10 Kasım 2022 Perşembe

Helm - Modifying Scope Using “with”

Örnek - Modifying scope using “with”
Söz dizimi şöyle
{{ with PIPELINE }}
  
  {{- toYaml . | nindent 2 }}
{{ end }}
values.yaml şöyle olsun
configMap:
  data:
    env: test
    platfrom:
     - java
     - python
     - golang
Şöyle yaparız
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data: 
  env: {{ .Values.configMap.data.env }}
  {{- with .Values.configMap.data.platfrom }} 
  platfrom: {{- toYaml . | nindent 2 | upper  }} 
  {{- end }}
Çıktısı şöyle
>> helm template ~/webserver
---
# Source: webserver/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: release-name-configmap
data: 
  env: test 
  platfrom:
  - JAVA
  - PYTHON
  - GOLANG
Örnek
values.yaml şöyle olsun
configMap:
  data:
    env: test
    platfrom:
     - java
     - python
     - golang
    conf:
      os: linux
      database: mongo
Şöyle yaparız
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data: 
  env: {{ .Values.configMap.data.env }}
  {{- with .Values.configMap.data.platfrom }} 
  platfrom: {{- toYaml . | nindent 2 | upper  }} 
  {{- end }}
  {{- with .Values.configMap.data.conf }}
  operating-system: {{ .os }}
  database-name: {{ .database }}
  {{- end }} 
Çıktısı şöyle
>> helm template ~/webserver
# Source: webserver/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: release-name-configmap
data: 
  env: test 
  platfrom:
  - JAVA
  - PYTHON
  - GOLANG
  operating-system: linux
  database-name: mongo
Örnek - Root Scope
Açıklaması şöyle
As we discussed earlier, within a with block .referred to a particular object. But there may be cases where we might have a requirement to access root objects or other objects, which are not a part of the current scope.
Şu kod hata verir
{{- with .Values.configMap.data.conf }}
  operating-system: {{ .os }}
  database-name: {{ .database }}
  k8s-namespace: {{ .Release.Namespace }}
{{- end }}

Error: template: webserver/templates/configmap.yaml:14:28: 
executing "webserver/templates/configmap.yaml" at 
<.Release.Namespace>: nil pointer evaluating interface {}.Namespace
Root scope olduğunu belirtmek için $ karakteri kullanılır. Şöyle yaparız
{{- with .Values.configMap.data.conf }}
  operating-system: {{ .os }}
  database-name: {{ .database }}
  k8s-namespace: {{ $.Release.Namespace }}
{{- end }}


Hiç yorum yok:

Yorum Gönder

Cluster Propotional Autoscaler - ReplicaSet Ekler/Siler

Giriş Açıklaması şöyle CPA aims to horizontally scale the number of Pod replicas based on the cluster’s scale. A common example is DNS ser...