เบเปเบฒเบเบชเบฒเบกเบฒเบเบญเปเบฒเบเบเปเบฝเบงเบเบฑเบ Helmfile เบเบปเบงเบเบญเบเบกเบฑเบเปเบญเบเปเบฅเบฐเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเปเบเบญเบเบกเบฑเบเบขเบนเปเปเบ
เบเบงเบเปเบฎเบปเบฒเบเบฐเบฎเบนเปเบเบฑเบเบงเบดเบเบตเบเบตเปเบเปเปเบเบฑเบเปเบเบเปเบเบทเปเบญเบญเบฐเบเบดเบเบฒเบเบเบฒเบเบเปเบญเบเปเบ helmfile
เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบธเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบ helm (เบเบปเบงเบขเปเบฒเบ, เปเบซเปเปเบงเบปเปเบฒเบงเปเบฒ postgres เปเบฅเบฐเบเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบ backend) เปเบฅเบฐเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเปเบฒเบเบงเบเบซเบเบถเปเบ (เบซเบผเบฒเบ kubernetes clusters, เบซเบผเบฒเบ namespaces, เบซเบผเบทเบซเบผเบฒเบเบเบญเบเบเบฑเบเบชเบญเบ). เบเบงเบเปเบฎเบปเบฒเปเบญเบปเบฒ helmfile, เบญเปเบฒเบเปเบญเบเบฐเบชเบฒเบ เปเบฅเบฐเปเบฅเบตเปเบกเบญเบฐเบเบดเบเบฒเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก เปเบฅเบฐเบเบฒเบเบเปเบญเบเบเบปเบงเบเบญเบเบเบงเบเปเบฎเบปเบฒ:
.
โโโ envs
โ โโโ devel
โ โ โโโ values
โ โ โโโ backend.yaml
โ โ โโโ postgres.yaml
โ โโโ production
โ โโโ values
โ โโโ backend.yaml
โ โโโ postgres.yaml
โโโ helmfile.yaml
helmfile.yaml
environments:
devel:
production:
releases:
- name: postgres
labels:
app: postgres
wait: true
chart: stable/postgresql
version: 8.4.0
values:
- envs/{{ .Environment.Name }}/values/postgres.yaml
- name: backend
labels:
app: backend
wait: true
chart: private-helm-repo/backend
version: 1.0.5
needs:
- postgres
values:
- envs/{{ .Environment.Name }}/values/backend.yaml
เบเบงเบเปเบฎเบปเบฒเบเบปเบเบฅเบปเบเบเปเบงเบ 2 เบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก: เบเบฒเบ, เบเบฒเบโเบเบฐโเบฅเบดเบ โ เปเบเปโเบฅเบฐโเบเบปเบโเบกเบตโเบเบธเบโเบเปเบฒโเบเบญเบโเบเบปเบโเปเบญเบโเบชเปเบฒโเบฅเบฑเบโเบเบฒโเบเบฐโเบฅเบฒเบโเบเบฒเบโเบเปเบญเบโเบซเบกเบงเบโ. เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเปเปเบซเปเปเบเบปเบฒเปเบเบปเปเบฒเปเบเบฑเปเบเบเบตเป:
helmfile -n <namespace> -e <env> apply
เบฎเบธเปเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเบเบญเบเบเบฒเบเบฐเบฅเบฒเบเบซเบกเบงเบเบเบฑเบเบเบฐเบเบปเบเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ
เบเบฐเปเบเบฑเบเปเบเบงเปเบเบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเปเบเบตเบเบเบปเบง backend เบฎเบธเปเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบชเบนเปเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ? เบงเบดโเบเบตโเบเบฒเบโเบเบฑเปเบโเบเปเบฒโเบชเบฐโเบเบฑเบโเบเปเบญเบโ? เบเบธเบเบเปเบฒเบชเบดเปเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบกเบตเบขเบนเปเปเบเบเบเปเบฒเบ {{ .Values }}
helmfile.yaml
environments:
devel:
+ values:
+ - charts:
+ versions:
+ backend: 1.1.0
production:
+ values:
+ - charts:
+ versions:
+ backend: 1.0.5
...
- name: backend
labels:
app: backend
wait: true
chart: private-helm-repo/backend
- version: 1.0.5
+ version: {{ .Values.charts.versions.backend }}
...
เบเบธเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ
เบเบตเบซเบผเบฒเบ, เปเบเปเบเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบญเบเบเบฒเบ production
roll out postgres, เปเบเบฒเบฐเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบฎเบนเปเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบนเปเบเบฒเบเบเปเปเบกเบนเบเปเบเบปเปเบฒเปเบเปเบ k8s เปเบฅเบฐเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฒเบเบเบงเบเปเบฎเบปเบฒเบกเบตเบเบธเปเบก postgres เปเบเบเบเปเบฒเบเบซเบฒเบเบเบตเปเบเบฐเปเบชเบตเบเบเป? เปเบเบทเปเบญเปเบเปเปเบเบเบฑเบเบซเบฒเบเบตเป, เบเบงเบเปเบฎเบปเบฒเบกเบตเบเปเบฒเบเบเบทเป
helmfile -n <namespace> -e devel apply
helmfile -n <namespace> -e production -l app=backend apply
เบเบตเปเปเบกเปเบเบเบตเบซเบผเบฒเบ, เปเบเปเบชเปเบงเบเบเบปเบงเบเปเบญเบเบกเบฑเบเบญเบฐเบเบดเบเบฒเบเบงเปเบฒเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบเบเบตเปเบเบฐเปเบเปเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเบเปเปเปเบเปเบเบฒเบเปเบเปเบเบฝเบเบเบฒเบเปเบเบตเบเบเบปเบง, เปเบเปเปเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบญเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบญเบ. เบเบฐเปเบฎเบฑเบเปเบเบงเปเบ? เบเปเบฒเบโเบชเบฒโเบกเบฒเบโเบงเบฒเบโเบเปเบฒโเบญเบฐโเบเบดโเบเบฒเบโเบเบฒเบโเบเปเบญเบโเปเบโเปเบเบโเปเบเบตโเปเบเบโเบเปเบฒเบโเบซเบฒเบโ, เบชเปเบฒเบโเบเบฑเบโเบเบตโเบฅเบฒเบโเบเบฒเบโเบเบญเบโเบเบฒเบโเบเปเบญเบโเบเบตเปโเบเปเบฒโเปเบเบฑเบโเปเบโเบเบฒเบโเบญเบฐโเบเบดโเบเบฒเบโเบชเบฐโเบเบฒเบโเปเบงเบโเบฅเปเบญเบกโเปเบฅเบฐ "เปเบญเบปเบฒโ" เบเบฝเบโเปเบเปโเบเบฒเบโเบเปเบญเบโเบเบตเปโเบเปเบฒโเปเบเบฑเบโ, เบเปเปโเบชเบปเบโเบเบฑเบโเบชเปเบงเบโเบเบตเปโเปเบซเบผเบทเบญโ.
.
โโโ envs
โ โโโ devel
โ โ โโโ values
โ โ โโโ backend.yaml
โ โ โโโ postgres.yaml
โ โโโ production
โ โโโ values
โ โโโ backend.yaml
โ โโโ postgres.yaml
+ โโโ releases
+ โ โโโ backend.yaml
+ โ โโโ postgres.yaml
โโโ helmfile.yaml
helmfile.yaml
environments:
devel:
values:
- charts:
versions:
backend: 1.1.0
- apps:
- postgres
- backend
production:
values:
- charts:
versions:
backend: 1.0.5
- apps:
- backend
- releases:
- - name: postgres
- labels:
- app: postgres
- wait: true
- chart: stable/postgresql
- version: 8.4.0
- values:
- - envs/{{ .Environment.Name }}/values/postgres.yaml
- - name: backend
- labels:
- app: backend
- wait: true
- chart: private-helm-repo/backend
- version: {{ .Values.charts.versions.backend }}
- needs:
- - postgres
- values:
- - envs/{{ .Environment.Name }}/values/backend.yaml
+ ---
+ bases:
+ {{- range .Values.apps }}
+ - releases/{{ . }}.yaml
+ {{- end }}
releases/postgres.yaml
releases:
- name: postgres
labels:
app: postgres
wait: true
chart: stable/postgresql
version: 8.4.0
values:
- envs/{{ .Environment.Name }}/values/postgres.yaml
releases/backend.yaml
releases:
- name: backend
labels:
app: backend
wait: true
chart: private-helm-repo/backend
version: {{ .Values.charts.versions.backend }}
needs:
- postgres
values:
- envs/{{ .Environment.Name }}/values/backend.yaml
เบเบฑเบเบเบถเบ
เบเบฒเบ เบเบณ เปเบเป bases:
เบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเบปเบงเปเบเบ yaml ---
, เบเบฑเปเบโเบเบฑเปเบโเบเปเบฒเบโเบชเบฒโเบกเบฒเบโเปเบฎเบฑเบโเปเบซเป template เบเปเบญเบ (เปเบฅเบฐโเบเบฒเบโเบชเปเบงเบโเบญเบทเปเบเปโ, เปเบเบฑเปเบโ: helmDefaultsโ) เบเบตเปโเบกเบตโเบเบธเบโเบเปเบฒโเบเบฒเบโเบชเบฐโเบเบฒเบโเปเบงเบโเบฅเปเบญเบก
เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเบฒเบเบเปเบญเบ postgres เบเบฐเบเปเปเบเบทเบเบฅเบงเบกเปเบเบปเปเบฒเปเบเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบฅเบดเบ. เบชเบฐเบเบงเบเบชเบฐเบเบฒเบเบซเบผเบฒเบ!
Overridable เบกเบนเบเบเปเบฒเบเบปเปเบงเปเบฅเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบญเบ
เปเบเปเบเบญเบ, เบกเบฑเบเปเบเบฑเบเบเบฒเบเบเบตเบเบตเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเปเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฐเบฅเบฒเบเบซเบกเบงเบเบเบฑเบเบเบฐเบเบปเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก, เปเบเปเบเบฐเปเบเบฑเบเปเบเบงเปเบเบเปเบฒเบเบงเบเปเบฎเบปเบฒเบกเบตเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเปเบฒเบเบงเบเบซเบเบถเปเบเบเบตเปเบญเบฐเบเบดเบเบฒเบ, เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ, เบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบ, เบเปเบฒเบเบปเบเบเบฝเบงเบเบฑเบเบชเปเบฒเบฅเบฑเบเบเบธเบเบเบปเบ. affinity
, เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเปเบเปเบญเบเบเบฒเบเบเปเบฒเบเบปเบเบกเบฑเบเปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบเปเบเบเบฒเบเบฐเบฅเบฒเบเบเปเบงเบเบเบปเบเปเบญเบ, เปเบเบดเปเบเบเบทเบเปเบเบฑเบเปเบงเปเปเบ turnips.
เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเปโ, เบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบเปเบญเบโเปเบเปโเบฅเบฐโเบเบปเบโเบเบงเบโเปเบฎเบปเบฒโเบชเบฒโเบกเบฒเบโเบเปเบฒโเบเบปเบ 2 เปเบเบฅโเปโเบเบตเปโเบกเบตโเบเปเบฒโ: เบเบฑเปเบโเบเปเบฒโเบญเบดเบโเบเบตเปโเบกเบตโเบเปเบฒโเปเบฅเบตเปเบกโเบเบปเปเบโ, เปเบเบดเปเบโเบเบฐโเบเปเบฒโเบเบปเบโเบเปเบฒโเบเบญเบโเบเบฒโเบเบฐโเบฅเบฒเบโเบเบปเบงโเบกเบฑเบโเปเบญเบโ, เปเบฅเบฐโเบเบฑเปเบโเบเบตโเบชเบญเบโเบเบตเปโเบกเบตโเบเปเบฒโเบชเปเบฒโเบฅเบฑเบโเบชเบฐโเบเบฒเบโเปเบงเบโเบฅเปเบญเบกโ, เบเบถเปเบโเปเบโเบเบฑเปเบโเบเบฐโเบฅเบปเบโเบฅเปเบฒเบโ. เบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ.
.
โโโ envs
+ โ โโโ default
+ โ โ โโโ values
+ โ โ โโโ backend.yaml
+ โ โ โโโ postgres.yaml
โ โโโ devel
โ โ โโโ values
โ โ โโโ backend.yaml
โ โ โโโ postgres.yaml
โ โโโ production
โ โโโ values
โ โโโ backend.yaml
โ โโโ postgres.yaml
โโโ releases
โ โโโ backend.yaml
โ โโโ postgres.yaml
โโโ helmfile.yaml
releases/backend.yaml
releases:
- name: backend
labels:
app: backend
wait: true
chart: private-helm-repo/backend
version: {{ .Values.charts.versions.backend }}
needs:
- postgres
values:
+ - envs/default/values/backend.yaml
- envs/{{ .Environment.Name }}/values/backend.yaml
envs/default/values/backend.yaml
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- backend
topologyKey: "kubernetes.io/hostname"
เบเบฒเบเบเปเบฒเบเบปเบเบกเบนเบเบเปเบฒเบเบปเปเบงเปเบฅเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฐเบฅเบฒเบ helm เบเบญเบเบเบฒเบเบเปเบญเบเบเบฑเบเบซเบกเบปเบเปเบเบฅเบฐเบเบฑเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบก
เบชเบปเบกเบกเบธเบเบงเปเบฒเบเบงเบเปเบฎเบปเบฒเบชเปเบฒเบ ingress เบซเบผเบฒเบเปเบเบฑเปเบเปเบเบซเบผเบฒเบเบฅเบธเปเบ - เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเปเบงเบเบเบปเบเปเบญเบเบชเปเบฒเบฅเบฑเบเปเบเปเบฅเบฐเบเบฒเบเบฐเบฅเบฒเบ hosts:
, เปเบเปเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเปเบกเบเปเบกเปเบเบเบทเบเบฑเบ, เบเบฑเปเบเบเบฑเปเบเปเบเบฑเบเบซเบเบฑเบเบเบถเปเบเบเปเปเปเบญเบปเบฒเบกเบฑเบเบขเบนเปเปเบเบเบฒเบเบเบปเบงเปเบเบเบปเปเบงเปเบฅเบเปเบฅเบฐเบเบฝเบเปเบเปเบเบปเบเปเบเบเบกเบนเบเบเปเบฒเบเบญเบเบกเบฑเบเปเบเบปเปเบฒเปเบเบเบฒเบเบฐเบฅเบฒเบ? เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เปเบเบฅเปเปเบซเบผเบปเปเบฒเบเบฑเปเบเบเบตเปเบกเบตเบเปเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ parameterize เบเบฐเบเปเบญเบเบกเบตเบเบฒเบเบเบฐเบซเบเบฒเบ .gotmpl
, เบเบฑเปเบเบเบฑเปเบ helmfile เบฎเบนเปเบงเปเบฒเบกเบฑเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบเปเบเบทเปเบญเบเบเบฑเบเปเบกเปเปเบเบ.
.
โโโ envs
โ โโโ default
โ โ โโโ values
- โ โ โโโ backend.yaml
- โ โ โโโ postgres.yaml
+ โ โ โโโ backend.yaml.gotmpl
+ โ โ โโโ postgres.yaml.gotmpl
โ โโโ devel
โ โ โโโ values
โ โ โโโ backend.yaml
โ โ โโโ postgres.yaml
โ โโโ production
โ โโโ values
โ โโโ backend.yaml
โ โโโ postgres.yaml
โโโ releases
โ โโโ backend.yaml
โ โโโ postgres.yaml
โโโ helmfile.yaml
helmfile.yaml
environments:
devel:
values:
- charts:
versions:
backend: 1.1.0
- apps:
- postgres
- backend
+ - global:
+ ingressDomain: k8s.devel.domain
production:
values:
- charts:
versions:
backend: 1.0.5
- apps:
- backend
+ - global:
+ ingressDomain: production.domain
---
bases:
{{- range .Values.apps }}
- releases/{{ . }}.yaml
{{- end }}
envs/default/values/backend.yaml.gotmpl
ingress:
enabled: true
paths:
- /api
hosts:
- {{ .Values.global.ingressDomain }}
envs/default/values/postgres.yaml.gotmpl
ingress:
enabled: true
paths:
- /
hosts:
- postgres.{{ .Values.global.ingressDomain }}
เบเบฑเบเบเบถเบ
เปเบเปเบเบญเบ, ingress เปเบเบเบฒเบเบฐเบฅเบฒเบ postgres เปเบกเปเบเบเบฒเบเบชเบดเปเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบซเบเปเบฒเบชเบปเบเปเบชเบเบตเปเบชเบธเบ, เบเบฑเปเบเบเบฑเปเบเบเบปเบเบเบงเบฒเบกเบเบตเปเปเบกเปเบเปเบซเปเบเบฝเบเปเบเปเปเบเบฑเบเบเบปเบงเบขเปเบฒเบ spherical เปเบเบชเบนเบเบเบฒเบเบฒเบเปเบฅเบฐเปเบเบทเปเบญเบเปเปเปเบซเปเปเบเบฐเบเปเบฒเบเบฒเบเบเปเบญเบเปเบซเบกเปเปเบเบเบปเบเบเบงเบฒเบกเบเบฝเบเปเบเปเบชเปเบฒเบฅเบฑเบ sake เบเบญเบเบเบฒเบเบญเบฐเบเบดเบเบฒเบ ingress.
เบเบฒเบเบเบปเบเปเบเบเบเบงเบฒเบกเบฅเบฑเบเบเบฒเบเบเบธเบเบเปเบฒเบชเบดเปเบเปเบงเบเบฅเปเบญเบก
เปเบเบเบเบฒเบเบเบฝเบเบเบฝเบเบเบฑเบเบเบปเบงเบขเปเบฒเบเบเปเบฒเบเปเบเบดเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเบเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเปเบเบเปเบเป
.
โโโ envs
โ โโโ default
โ โ โโโ values
โ โ โโโ backend.yaml
โ โ โโโ postgres.yaml
โ โโโ devel
โ โ โโโ values
โ โ โ โโโ backend.yaml
โ โ โ โโโ postgres.yaml
+ โ โ โโโ secrets.yaml
โ โโโ production
โ โโโ values
โ โ โโโ backend.yaml
โ โ โโโ postgres.yaml
+ โ โโโ secrets.yaml
โโโ releases
โ โโโ backend.yaml
โ โโโ postgres.yaml
โโโ helmfile.yaml
helmfile.yaml
environments:
devel:
values:
- charts:
versions:
backend: 1.1.0
- apps:
- postgres
- backend
- global:
ingressDomain: k8s.devel.domain
+ secrets:
+ - envs/devel/secrets.yaml
production:
values:
- charts:
versions:
backend: 1.0.5
- apps:
- backend
- global:
ingressDomain: production.domain
+ secrets:
+ - envs/production/secrets.yaml
---
bases:
{{- range .Values.apps }}
- releases/{{ . }}.yaml
{{- end }}
envs/devel/secrets.yaml
secrets:
elastic:
password: ENC[AES256_GCM,data:hjCB,iv:Z1P6/6xBJgJoKLJ0UUVfqZ80o4L84jvZfM+uH9gBelc=,tag:dGqQlCZnLdRAGoJSj63rBQ==,type:int]
...
envs/production/secrets.yaml
secrets:
elastic:
password: ENC[AES256_GCM,data:ZB/VpTFk8f0=,iv:EA//oT1Cb5wNFigTDOz3nA80qD9UwTjK5cpUwLnEXjs=,tag:hMdIUaqLRA8zuFBd82bz6A==,type:str]
...
envs/default/values/backend.yaml.gotmpl
elasticsearch:
host: elasticsearch
port: 9200
password: {{ .Values | getOrNil "secrets.elastic.password" | default "password" }}
envs/devel/values/backend.yaml
elasticsearch:
host: elastic-0.devel.domain
envs/production/values/backend.yaml
elasticsearch:
host: elastic-0.production.domain
เบเบฑเบเบเบถเบ
เปเบเบเบงเบดเบเบตเบเบฒเบเบเบฒเบ, getOrNil
- เบซเบเปเบฒเบเบตเปเบเบดเปเบชเบเบชเปเบฒเบฅเบฑเบ go templates เปเบ helmfile, เปเบเบดเปเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒ .Values.secrets
เบเบฐเบเปเปเบขเบนเป, เบเบฐเบเปเปเบเบดเปเบกเบเบงเบฒเบกเบเบดเบเบเบฒเบ, เปเบเปเบเบฐเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเบปเบเปเบเปเบฎเบฑเบเปเบเบเปเบเปเบเบฑเบเบเบฑเบ default
เปเบเบเบเปเบฒเปเบฅเบตเปเบกเบเบปเปเบ
เบชเบฐเบซเบฅเบธเบ
เบชเบดเปเบเบเบตเปเปเบเปเบญเบฐเบเบดเบเบฒเบเปเบเบดเปเบเบเบทเบงเปเบฒเบเบฐเปเบเปเบ, เปเบเปเบเปเปเบกเบนเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเบญเบฐเบเบดเบเบฒเบเบเบตเปเบชเบฐเบเบงเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเปเปเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบซเบผเบฒเบเปเบขเปเบฒเบเปเบเบเปเบเป helmfile เปเบกเปเบเบเบฒเบเปเบเบเบซเบผเบฒเบ, เปเบฅเบฐเบเปเบญเบเบฎเบฑเบ IaC (Infrastructure-as-Code) เปเบฅเบฐเบเปเบญเบเบเบฒเบเปเบซเปเบเปเบฒเบญเบฐเบเบดเบเบฒเบเบเบตเปเบเบฑเบเปเบเบเบเปเบฝเบงเบเบฑเบเบชเบฐเบเบฒเบเบฐเบเบญเบเบเบฒเบเบเปเบฒเปเบเป.
เบชเบฐเบซเบฅเบธเบเบฅเบงเบกเปเบฅเปเบง, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบขเบฒเบเบเบฐเปเบเบตเปเบกเบงเปเบฒเบเบปเบงเปเบเบชเปเบฒเบฅเบฑเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบฅเบตเปเบกเบเบปเปเบเบชเบฒเบกเบฒเบ, เปเบเบเบฒเบเบเบฑเบเบเบฑเบ, เบเบปเบงเบเปเบฒเบเบปเบเบเบฒเบเบเบฑเบเบเบปเบงเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบญเบ OS เบเบญเบ runner เบเบตเปเปเบเปเบเบญเบเบเบฒเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฐเบเบทเบเปเบเบตเบเบเบปเบง, เปเบฅเบฐเบเบฑเปเบเบเบฑเปเบเบเบถเปเบเปเบเปเบฎเบฑเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบเบเปเบเบทเปเบญเบเปเบซเบง.
helmfile.yaml
environments:
default:
values:
- global:
clusterDomain: {{ env "CLUSTER_DOMAIN" | default "cluster.local" }}
ingressDomain: {{ env "INGRESS_DOMAIN" }}
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com