Giriş
templates dizinined "_" underscore karakteri ile başlayan bir dosyaya yazılır. Named template iki şekilde kendi dosyamıza dahil edilebilir
1. template 2. include
Named Templates define satırı ile başlar ve end satırı ile biter
Örnek
Şöyle yaparız
# filename: _helpers.tpl{{/*Common labels*/}}{{- define "webserver.labels" -}}app: nginxgenerator: helm{{- end }}
template kullanımı - Tercih Etmeyin
template içinde
1. scope kullanamayız
2. template'ı pipeline ile kullanamayız
Örnek
Şöyle yaparız
apiVersion: apps/v1 kind: Deployment metadata: name: webserver-deployment labels: {{- template "webserver.labels" }}
include kullanımı - Tercih Edin
Örnek
Elimizde şöyle iki template olsun
{{/* Common labels */}} {{- define "webserver.labels" -}} {{- include "webserver.selectorLabels" . }} app.kubernetes.io/managed-by: {{ .Release.Service }} {{- end }} {{/* Selector labels */}} {{- define "webserver.selectorLabels" -}} app: {{ .Chart.Name }} {{- end }}
Kullanmak için şöyle yaparız
apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Chart.Name }} labels: {{- include "webserver.labels" . | nindent 4 }} spec: replicas: 3 selector: matchLabels: {{- include "webserver.selectorLabels" . | nindent 6 }} template: metadata: labels: {{- include "webserver.selectorLabels" . | nindent 8 }} spec: containers: - name: {{ .Chart.Name }} image: nginx:latest ports: - containerPort: 80
>> helm template ~/webserver --------------------------------------------- # Source: webserver/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: webserver labels: app: webserver app.kubernetes.io/managed-by: Helm spec: replicas: 3 selector: matchLabels: app: webserver template: metadata: labels: app: webserver spec: containers: - name: webserver image: nginx:latest ports: - containerPort: 80
Hiç yorum yok:
Yorum Gönder