iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0

昨天講到了 values.yaml_helpers.tpl 是定義變數的地方,那麼什麼地方會使用到這些變數呢?看起來就剩下定義 K8S 資源的那些 YAML 檔了。沒錯,之前我們定義的所有變數,全部都是用在這些 YAML 中。

那麼我們應該如何在這些 YAML 中帶入昨天定義的這些變數呢?我們先上個簡單的範例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "mychart.fullname" . }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      {{- include "mychart.selectorLabels" . | nindent 6 }}
  templates:
    metadata:
      labels:
        {{- include "mychart.selectorLabels" . | nindent 8 }}
    spec:
      containers:
        - name: {{ .Chart.Name }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
          ports:
            - name: http
              containerPort: {{ .Values.service.port }}
              protocol: TCP

以上就是一個簡單的 Helm 中 templates 資料夾內的 K8S YAML 範例。

簡單來說,YAML 中要使用變數的位置就使用 {{}} (雙大括號) 括起來,括號中就可以填入變數, Helm 會自動替換掉這些位置,要引入變數前要先確定變數是定義在哪個位置,在 Chart.yamlvalues.yaml 這兩個位置定義的變數,就分別透過 .Chart.Values 引入,後接變數名稱即可。若在 _helpers.tpl 裡面的變數,則是透過 include 的方式,在接變數名稱。

透過這樣的方式,我們就可以將相同名稱的東西使用變數放在同一位置,在分別引入即可,再也不怕漏改某個地方了。

今天就介紹到這邊,明天我們接著介紹。


上一篇
Day 17 Helm values.yaml && _helpers.tpl
下一篇
Day 19 Helm install
系列文
你累了嗎,今天來點克勞內提夫!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言