Pendahuluan
Diagram helm adalah cara yang nyaman dan efisien untuk mengumpulkan sumber daya Kubernetes dan membangun kluster aplikasi. Mereka juga dapat menggunakan variabel lingkungan pada mesin lokal untuk menentukan nilai yang akan digunakan penerapan Kubernetes Anda.
Tutorial ini akan membahas berbagai cara Anda dapat menyertakan variabel lingkungan dalam penerapan Kubernetes Anda.
 
 Prasyarat
- Akses ke terminal/baris perintah
- Minikube diinstal dan dikonfigurasi (lihat panduan kami tentang Cara Menginstal Minikube di Ubuntu dan Cara Menginstal Minikube di CentOS)
- Helm dipasang dan dikonfigurasi
Cara Menggunakan Variabel Lingkungan dengan Helm
Ada dua metode menggunakan variabel lingkungan dengan diagram Helm:
- Menggunakan objek rahasia di Kubernetes untuk memasang variabel lingkungan dalam penerapan.
- Menulis pembantu khusus di bagan Helm.
 Untuk tutorial ini, kami menggunakan USERNAME  dan PASSWORD  variabel lingkungan.
Memasang Variabel Lingkungan di Deployment Kubernetes
 1. Tambahkan baris berikut ke values.yaml  file di bagan Helm Anda:
username: root
password: password 
 
 2. Buat file baru bernama secret.yaml  dan tambahkan ke template  map. Tambahkan konten berikut ke file:
apiVersion: v1
kind: Secret
metadata:
  name: {{ .Release.Name }}-auth
data:
  password: {{ .Values.password | b64enc }}
  username: {{ .Values.username | b64enc }} 
 
 3. Edit env  bagian penerapan Kubernetes Anda untuk menyertakan variabel baru yang ditentukan dalam secret.yaml  berkas:
...
      containers:
        - name: {{ .Chart.Name }}
          securityContext:
            {{- toYaml .Values.securityContext | nindent 12 }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          env:          
            - name: "USERNAME"
              valueFrom:
                secretKeyRef:
                  key:  username
                  name: {{ .Release.Name }}-auth
            - name: "PASSWORD"
              valueFrom:
                secretKeyRef:
                  key:  password
                  name: {{ .Release.Name }}-auth
... 
 
 4. Atur variabel lingkungan ke nilai yang Anda inginkan. Misalnya, setel USERNAME  variabel ke hello_user  :
export USERNAME=hello_user
 5. Terapkan variabel ke bagan Helm dengan menggabungkannya dengan helm install  perintah:
helm install --set username=$USERNAME [chart name] [chart path]Dimana:
- [chart name]adalah nama bagan Helm yang Anda gunakan.
- [chart path]adalah jalur ke bagan Helm yang Anda gunakan.
Jika Anda ingin menguji setelan baru sebelum menerapkannya, gunakan dry run modus:
helm install --dry-run --set username=$USERNAME --debug [chart name] [chart path] 
 Menambahkan Pembantu Khusus di Helm
 1. Gunakan env  bagian values.yaml  file untuk mendefinisikan variabel sensitif dan tidak sensitif. Gunakan normal  dan secret  kategori untuk membuat daftar variabel yang sesuai:
secret:
  name: app-env-var-secret
env:
  normal:
    variable1: value1
    variable2: value2
    variable3: value3
  secret:
    variable4: value4
    variable5: value5
    variable6: value6
 Dengan menggunakan metode ini, kami kemudian menambahkan USERNAME  dan PASSWORD  variabel ke secret  kategori:
…
  secret:
    USERNAME: [username]
    PASSWORD: [password]Dimana:
- [username]adalah nilai yang ingin Anda tetapkan untuk USERNAME variabel.
- [password]adalah nilai yang ingin Anda tetapkan untuk PASSWORD variabel.
 
 
 2. Tambahkan jalur ke values.yaml  file ke bagian bawah .gitignore . Anda  berkas:
charts/values.yaml
 3. Buat file bernama secrets.yaml  di templates  folder dan tambahkan konten berikut:
apiVersion: v1
kind: Secret
metadata:
  name: {{ .Values.secret.name }}
type: Opaque
data:
  {{- range $key, $val := .Values.env.secret }}
  {{ $key }}: {{ $val | b64enc }}
  {{- end}} 
 
 4. Temukan helpers.tpl  file di templates  map. Tambahkan yang berikut ini ke bagian bawah file untuk menulis fungsi pembantu baru:
{{- define "helpers.list-env-variables"}}
{{- range $key, $val := .Values.env.secret }}
- name: {{ $key }}
  valueFrom:
    secretKeyRef:
      name: app-env-secret
      key: {{ $key }}
{{- end}}
{{- end }} 
 
 5. Panggil helper yang Anda buat dengan menambahkan yang berikut ke pod.yaml . Anda  berkas:
…
spec:
  containers:
  - name: mycontainer
    image: redis
    env:
    {{- include "helpers.list-env-variables" . | indent 6 }}
  restartPolicy: Never