- āĻāύā§āϝ āĻŽā§āĻĄāĻŧāĻžāύ⧠, āϝāĻž āĻāĻĒāύāĻžāĻā§ āĻāĻ āĻāĻžāϝāĻŧāĻāĻžāϝāĻŧ āĻ āύā§āĻāĻā§āϞāĻŋ āĻšā§āϞā§āĻŽ āϰāĻŋāϞāĻŋāĻ āĻŦāϰā§āĻŖāύāĻž āĻāϰāϤā§, āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻāύā§āϝ āϤāĻžāĻĻā§āϰ āĻāĻžāϰā§āĻā§āϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻžāĻāĻ āĻāϰāϤ⧠āĻāĻŦāĻ āϤāĻžāĻĻā§āϰ āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻā§āϰāĻŽ āϏā§āĻ āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤
āĻāĻĒāύāĻŋ āύāĻŋāĻā§āĻ āĻšā§āϞāĻŽāĻĢāĻžāĻāϞ āĻāĻŦāĻ āĻāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰā§āύ и .
āĻāĻŽāϰāĻž āĻšā§āϞāĻŽāĻĢāĻžāĻāϞ⧠āϰāĻŋāϞāĻŋāĻāĻā§āϞāĻŋ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻžāϰ āĻ -āϏā§āĻĒāώā§āĻ āĻāĻĒāĻžāϝāĻŧāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻĒāϰāĻŋāĻāĻŋāϤ āĻšāĻŦ
āϧāϰāĻž āϝāĻžāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāĻā§ āĻšā§āϞāĻŽ āĻāĻžāϰā§āĻā§āϰ āĻāĻāĻāĻŋ āĻĒā§āϝāĻžāĻ āϰāϝāĻŧā§āĻā§ (āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻĒā§āϏā§āĻāĻā§āϰā§āϏ āĻāĻŦāĻ āĻāĻŋāĻā§ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻŦāϞāĻž āϝāĻžāĻ) āĻāĻŦāĻ āĻŦā§āĻļ āĻāϝāĻŧā§āĻāĻāĻŋ āĻĒāϰāĻŋāĻŦā§āĻļ (āĻŦā§āĻļ āĻāϝāĻŧā§āĻāĻāĻŋ āĻā§āĻŦāĻžāϰāύā§āĻ āĻā§āϞāĻžāϏā§āĻāĻžāϰ, āĻŦā§āĻļ āĻāϝāĻŧā§āĻāĻāĻŋ āύāĻžāĻŽāϏā§āĻĨāĻžāύ āĻŦāĻž āĻāĻāϝāĻŧā§āϰ āĻŽāϧā§āϝ⧠āĻŦā§āĻļ āĻāϝāĻŧā§āĻāĻāĻŋ)āĨ¤ āĻāĻŽāϰāĻž āĻšā§āϞāĻŽāĻĢāĻžāĻāϞāĻāĻŋ āĻā§āϰāĻšāĻŖ āĻāϰāĻŋ, āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āĻĒāĻĄāĻŧāĻŋ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻĒāϰāĻŋāĻŦā§āĻļ āĻāĻŦāĻ āĻĒā§āϰāĻāĻžāĻļāĻā§āϞāĻŋ āĻŦāϰā§āĻŖāύāĻž āĻāϰāϤ⧠āĻļā§āϰ⧠āĻāϰāĻŋ:
.
âââ envs
â âââ devel
â â âââ values
â â âââ backend.yaml
â â âââ postgres.yaml
â âââ production
â âââ values
â âââ backend.yaml
â âââ postgres.yaml
âââ helmfile.yamlhelmfile.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āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒāϰāĻŋāĻŦā§āĻļā§ āĻšā§āϞāĻŽ āĻāĻžāϰā§āĻā§āϰ āĻŦāĻŋāĻāĻŋāύā§āύ āϏāĻāϏā§āĻāϰāĻŖ
āĻāĻŽāĻžāĻĻā§āϰ āϝāĻĻāĻŋ āĻŦā§āϝāĻžāĻāĻāύā§āĻĄā§āϰ āĻŦāĻŋāĻāĻŋāύā§āύ āϏāĻāϏā§āĻāϰāĻŖ āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒāϰāĻŋāĻŦā§āĻļā§ āϰā§āϞ āĻāĻāĻ āĻāϰāϤ⧠āĻšāϝāĻŧ? āϰāĻŋāϞāĻŋāĻ āϏāĻāϏā§āĻāϰāĻŖ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻžāĻāĻ āĻāĻŋāĻāĻžāĻŦā§? āĻĒāϰāĻŋāĻŦā§āĻļāĻāϤ āĻŽāĻžāύ āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻĒāĻžāĻāϝāĻŧāĻž āϝāĻžāϝāĻŧ {{ .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 āĻĒā§āϏā§āĻāĻā§āϰā§āϏ āϰā§āϞ āĻāĻāĻ āĻāϰā§āύ, āĻāĻžāϰāĻŖ āĻāĻŽāϰāĻž āĻāĻžāύāĻŋ āϝ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻĄāĻžāĻāĻžāĻŦā§āϏāĻāĻŋāĻā§ k8s āĻ āĻĒā§āĻļ āĻāϰāĻžāϰ āĻĻāϰāĻāĻžāϰ āύā§āĻ āĻāĻŦāĻ āĻŦāĻŋāĻā§āϰāϝāĻŧā§āϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻāĻŋ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āĻĒā§āĻĨāĻ āĻĒā§āϏā§āĻāĻā§āϰā§āϏ āĻā§āϞāĻžāϏā§āĻāĻžāϰ āϰāϝāĻŧā§āĻā§? āĻāĻ āϏāĻŽāϏā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύā§āϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āϞā§āĻŦā§āϞ āĻāĻā§
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.yamlreleases/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 āĻŦāĻŋāĻāĻžāĻāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻāĻŦāĻļā§āϝāĻ ---, āϝāĻžāϤ⧠āĻāĻĒāύāĻŋ āĻĒāϰāĻŋāĻŦā§āĻļ āĻĨā§āĻā§ āĻŽāĻžāύ āϏāĻš āϰāĻŋāϞāĻŋāĻ (āĻāĻŦāĻ āĻ
āύā§āϝāĻžāύā§āϝ āĻ
āĻāĻļ, āϝā§āĻŽāύ āĻšā§āϞāĻŽāĻĄāĻŋāĻĢāϞā§āĻ) āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ
āĻāĻ āĻā§āώā§āϤā§āϰā§, āĻĒā§āϏā§āĻāĻā§āϰā§āϏ āϰāĻŋāϞāĻŋāĻ āĻāĻŽāύāĻāĻŋ āĻāϤā§āĻĒāĻžāĻĻāύā§āϰ āĻŦāĻŋāĻŦāϰāĻŖā§ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰāĻž āĻšāĻŦā§ āύāĻžāĨ¤ āĻā§āĻŦ āĻāϰāĻžāĻŽā§!
āϰāĻŋāϞāĻŋāĻā§āϰ āĻāύā§āϝ āĻāĻāĻžāϰāϰāĻŋāĻĄā§āĻŦāϞ āĻā§āϞā§āĻŦāĻžāϞ āĻŽāĻžāύ
āĻ
āĻŦāĻļā§āϝāĻ, āĻāĻāĻŋ āĻĻā§āϰā§āĻĻāĻžāύā§āϤ āϝ⧠āĻāĻĒāύāĻŋ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻāύā§āϝ āĻšā§āϞāĻŽ āĻāĻžāϰā§āĻā§āϰ āĻāύā§āϝ āĻŽāĻžāύ āϏā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϤāĻŦā§ āĻā§ āĻšāĻŦā§ āϝāĻĻāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻŦā§āĻļ āĻāϝāĻŧā§āĻāĻāĻŋ āĻĒāϰāĻŋāĻŦā§āĻļ āĻŦāϰā§āĻŖāĻŋāϤ āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻŽāϰāĻž āĻāĻžāĻ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āϏāĻŦāĻžāϰ āĻāύā§āϝ āĻāĻāĻ āϏā§āĻ āĻāϰāϤ⧠affinity, āĻāĻŋāύā§āϤ⧠āĻāĻŽāϰāĻž āĻāĻžāϰā§āĻā§ āĻĄāĻŋāĻĢāϞā§āĻāϰā§āĻĒā§ āĻāĻāĻŋ āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāϤ⧠āĻāĻžāĻ āύāĻž, āϝāĻž āĻļāĻžāϞāĻāĻŽā§ āϏāĻāϰāĻā§āώāĻŖ āĻāϰāĻž āĻšāϝāĻŧāĨ¤
āĻāĻ āĻā§āώā§āϤā§āϰā§, āĻĒā§āϰāϤāĻŋāĻāĻŋ āϰāĻŋāϞāĻŋāĻā§āϰ āĻāύā§āϝ āĻāĻŽāϰāĻž āĻŽāĻžāύ āϏāĻš 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.yamlreleases/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.yamlenvs/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"āĻĒāϰāĻŋāĻŦā§āĻļ āϏā§āϤāϰ⧠āϏāĻŽāϏā§āϤ āϰāĻŋāϞāĻŋāĻā§āϰ āĻšā§āϞāĻŽ āĻāĻžāϰā§āĻā§āϰ āĻāύā§āϝ āĻŦāĻŋāĻļā§āĻŦāĻŦā§āϝāĻžāĻĒā§ āĻŽāĻžāύāĻā§āϞāĻŋ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāĻž
āϧāϰāĻž āϝāĻžāĻ āĻāĻŽāϰāĻž āĻŦā§āĻļ āĻāϝāĻŧā§āĻāĻāĻŋ āϰāĻŋāϞāĻŋāĻā§ āĻāĻāĻžāϧāĻŋāĻ āĻĒā§āϰāĻŦā§āĻļ āϤā§āϰāĻŋ āĻāϰāĻŋ - āĻāĻŽāϰāĻž āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻžāϰā§āĻā§āϰ āĻāύā§āϝ āĻŽā§āϝāĻžāύā§āϝāĻŧāĻžāϞāĻŋ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ hosts:, āĻāĻŋāύā§āϤ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻā§āώā§āϤā§āϰ⧠āĻĄā§āĻŽā§āύ āĻāĻāĻ, āϤāĻžāĻšāϞ⧠āĻā§āύ āĻāĻāĻŋāĻā§ āĻāĻŋāĻā§ āĻā§āϞā§āĻŦāĻžāϞ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ⧠āϰāĻžāĻāĻž āĻšāĻŦā§ āύāĻž āĻāĻŦāĻ āĻā§āĻŦāϞāĻŽāĻžāϤā§āϰ āĻāĻžāϰā§āĻā§ āĻāϰ āĻŽāĻžāύ āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻŦā§āύ āύāĻž? āĻāĻāĻŋ āĻāϰāĻžāϰ āĻāύā§āϝ, āĻŽāĻžāύ āϏāĻš āϝ⧠āĻĢāĻžāĻāϞāĻā§āϞāĻŋāĻā§ āĻāĻŽāϰāĻž āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻžāĻāĻ āĻāϰāϤ⧠āĻāĻžāĻ āϤāĻžāĻĻā§āϰ āĻāĻā§āϏāĻā§āύāĻļāύ āĻĨāĻžāĻāϤ⧠āĻšāĻŦā§ .gotmpl, āϝāĻžāϤ⧠āĻšā§āϞāĻŽāĻĢāĻžāĻāϞ āĻāĻžāύ⧠āϝ⧠āĻāĻāĻŋ āĻā§āĻŽāĻĒā§āϞā§āĻ āĻāĻā§āĻāĻŋāύā§āϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻžāϞāĻžāύ⧠āĻĻāϰāĻāĻžāϰāĨ¤
.
âââ 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.yamlhelmfile.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 }}āύā§āĻ
āϏā§āĻĒāώā§āĻāϤāĻ, āĻĒā§āϏā§āĻāĻā§āϰā§āϏ āĻāĻžāϰā§āĻā§ āĻĒā§āϰāĻŦā§āĻļ āĻāϰāĻž āĻ āϤā§āϝāύā§āϤ āϏāύā§āĻĻā§āĻšāĻāύāĻ āĻāĻŋāĻā§, āϤāĻžāĻ āĻāĻ āύāĻŋāĻŦāύā§āϧāĻāĻŋ āĻā§āĻŦāϞāĻŽāĻžāϤā§āϰ āĻāĻāĻāĻŋ āĻļā§āύā§āϝāϏā§āĻĨāĻžāύ⧠āĻāĻāĻāĻŋ āĻā§āϞāĻžāĻāĻžāϰ āĻāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏāĻžāĻŦā§ āĻĻā§āĻāϝāĻŧāĻž āĻšāϝāĻŧā§āĻā§ āĻāĻŦāĻ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻĒā§āϰāĻŦā§āĻļ āĻŦāϰā§āĻŖāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āύāĻŋāĻŦāύā§āϧ⧠āĻāĻŋāĻā§ āύāϤā§āύ āĻĒā§āϰāĻāĻžāĻļā§āϰ āĻĒā§āϰāĻŦāϰā§āϤāύ āύāĻž āĻāϰāĻžāϰ āĻāύā§āϝāĨ¤
āĻĒāϰāĻŋāĻŦā§āĻļā§āϰ āĻŽā§āϞā§āϝāĻŦā§āϧ āĻĨā§āĻā§ āĻā§āĻĒāύā§āϝāĻŧāϤāĻž āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰāĻž
āĻāĻĒāϰā§āϰ āĻāĻĻāĻžāĻšāϰāĻŖā§āϰ āϏāĻžāĻĨā§ āϏāĻžāĻĻā§āĻļā§āϝ āĻĻā§āĻŦāĻžāϰāĻž, āĻāĻĒāύāĻŋ āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āĻāϰāĻžāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĒā§āϰāϤāĻŋāϏā§āĻĨāĻžāĻĒāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻ āϰā§āĻĨ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϰāĻŋāϞāĻŋāĻā§āϰ āĻāύā§āϝ āĻāĻŽāĻžāĻĻā§āϰ āύāĻŋāĻāϏā§āĻŦ āĻā§āĻĒāύā§āϝāĻŧ āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āĻĒāϰāĻŋāĻŦāϰā§āϤā§, āϝā§āĻāĻžāύ⧠āĻāĻŽāϰāĻž āĻāĻžāϰā§āĻā§āϰ āĻāύā§āϝ āĻāύāĻā§āϰāĻŋāĻĒā§āĻ āĻāϰāĻž āĻŽāĻžāύāĻā§āϞāĻŋ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋ, āĻāĻŽāϰāĻž āĻā§āĻŦāϞāĻŽāĻžāϤā§āϰ āϰāĻŋāϞāĻŋāĻā§ default.yaml.gotmpl-āĻ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻĨā§āĻā§ āύā§āĻāϝāĻŧāĻž āĻŽāĻžāύāĻā§āϞāĻŋāĻā§ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤ āĻĒāϰāĻŋāĻŦā§āĻļ āϏā§āϤāϰāĨ¤ āĻāĻŦāĻ āϝ⧠āĻŽāĻžāύāĻā§āϞāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻžāϰāĻ āĻāĻžāĻ āĻĨā§āĻā§ āϞā§āĻāĻžāύā§āϰ āĻĻāϰāĻāĻžāϰ āύā§āĻ āϤāĻž āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻĒāϰāĻŋāĻŦā§āĻļā§ āĻĒā§āϰāĻāĻžāĻļā§āϰ āĻŽāĻžāύāĻā§āϞāĻŋāϤ⧠āϏāĻšāĻā§āĻ āĻĒā§āύāϰāĻžāϝāĻŧ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
.
âââ 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.yamlhelmfile.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.domainenvs/production/values/backend.yaml
elasticsearch:
host: elastic-0.production.domaināύā§āĻ
āĻāĻĒāĻžāϝāĻŧ āĻĻā§āĻŦāĻžāϰāĻž, getOrNil - āĻšā§āϞāĻŽāĻĢāĻžāĻāϞ⧠āĻā§ āĻā§āĻŽāĻĒā§āϞā§āĻāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āώ āĻĢāĻžāĻāĻļāύ, āϝāĻž, āĻāĻŽāύāĻāĻŋ āϝāĻĻāĻŋ .Values.secrets āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĨāĻžāĻāĻŦā§ āύāĻž, āĻāĻāĻāĻŋ āϤā§āϰā§āĻāĻŋ āύāĻŋāĻā§āώā§āĻĒ āĻāϰāĻŦā§ āύāĻž, āϤāĻŦā§ āĻĢāĻžāĻāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻĢāϞāĻžāĻĢāϞā§āϰ āĻ
āύā§āĻŽāϤāĻŋ āĻĻā§āĻŦā§ default āĻŦāĻŋāĻāϞā§āĻĒ āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύ
āĻāĻĒāϏāĻāĻšāĻžāϰ
āĻŦāϰā§āĻŖāĻŋāϤ āĻāĻŋāύāĻŋāϏāĻā§āϞāĻŋ āĻŦā§āĻļ āϏā§āϏā§āĻĒāώā§āĻ āĻŦāϞ⧠āĻŽāύ⧠āĻšāĻā§āĻā§, āĻāĻŋāύā§āϤ⧠āĻšā§āϞāĻŽāĻĢāĻžāĻāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻŦā§āĻļ āĻāϝāĻŧā§āĻāĻāĻŋ āĻĒāϰāĻŋāĻŦā§āĻļā§ āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āϏā§āĻŦāĻŋāϧāĻžāĻāύāĻ āĻŦāϰā§āĻŖāύāĻžāϰ āϤāĻĨā§āϝ āĻā§āĻŦāĻ āĻŦāĻŋāϰāϞ, āĻāĻŦāĻ āĻāĻŽāĻŋ IaC (āĻāύāĻĢā§āϰāĻžāϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ-āĻ-āĻā§āĻĄ) āĻĒāĻāύā§āĻĻ āĻāϰāĻŋ āĻāĻŦāĻ āϏā§āĻĨāĻžāĻĒāύāĻžāϰ āĻ āĻŦāϏā§āĻĨāĻžāϰ āĻāĻāĻāĻŋ āϏā§āĻĒāώā§āĻ āĻŦāĻŋāĻŦāϰāĻŖ āĻĒā§āϤ⧠āĻāĻžāĻāĨ¤
āĻāĻĒāϏāĻāĻšāĻžāϰā§, āĻāĻŽāĻŋ āϝā§āĻ āĻāϰāϤ⧠āĻāĻžāĻ āϝ⧠āĻĄāĻŋāĻĢāϞā§āĻ āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻā§āϰ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāĻā§āϞāĻŋ, āĻā§āϰā§, āĻāĻāĻāĻŋ āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āϰāĻžāύāĻžāϰā§āϰ OS-āĻāϰ āĻāύāĻāĻžāϝāĻŧāϰāύāĻŽā§āύā§āĻ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞā§āϰ āϏāĻžāĻĨā§ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻžāĻāĻ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠āϝā§āĻāĻžāύ āĻĨā§āĻā§ āϏā§āĻĨāĻžāĻĒāύāĻž āĻāĻžāϞ⧠āĻāϰāĻž āĻšāĻŦā§, āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻāϤāĻŋāĻļā§āϞ āĻĒāϰāĻŋāĻŦā§āĻļ āĻĒā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
helmfile.yaml
environments:
default:
values:
- global:
clusterDomain: {{ env "CLUSTER_DOMAIN" | default "cluster.local" }}
ingressDomain: {{ env "INGRESS_DOMAIN" }}āĻāϤā§āϏ: www.habr.com
