แฉแแแ True Engineering-แจแ แจแแแฅแแแแแ แแ แแชแแกแ แแแแแแขแแแแก แกแแ แแแ แแแแ แแแแแฎแแแแแแแก แฃแฌแงแแแขแ แแแฌแแแแแแกแแแแก แแ แแแแแแ แแแแฃแแแแ แแ แแก แแแแแชแแแแแแ.
แแแกแแฌแงแแกแแกแแแแก, แฉแแแ แจแแแฅแแแแแ แแแแแแ แกแแกแขแแแ แแแแฎแแแ แแแแแกแแแแก แแ แแแแแแแแแกแแ แแแ แฉแแแแก Kubernetes แแแแกแขแแ แจแ. แแฎแแ แฉแแแแ แแแฆแแแ แแแขแแแ แแแแก แแแแแฌแงแแแขแ แแแแแแแแ แแแแฎแแแ แแแแแก แแแแขแคแแ แแแแ, แ แแกแแแแกแแช แฉแแแ แแแแแงแแแแ แกแ แฃแแแ แแแขแแแแขแฃแ แ แฃแฌแงแแแขแ แแแแแแแแแแก แแ แแชแแกแ. แแแแก แฌแงแแแแแแ, แฉแแแ แแแแแฉแฅแแ แแ แแ แ แแแแแ แแ - แชแแแแแแแแแแก แแแฌแแแแแ แแ แแแฃแฅแขแแก แแแ แแแแจแ.
แแ แกแขแแขแแแจแ แแแกแแฃแแ แแแ แฃแฌแงแแแขแ แแแแแแแแแแก (CD) แแ แแชแแกแแก แแ แแแแฎแแแ แแแแแก แแแแขแคแแ แแแแ แแแแแฎแแแแแแแก แแแฌแแแแแแก แงแแแแ แแขแแแแ:
- แ แแแแ แแฌแงแแแ แแก แแ แแชแแกแ?
- แกแแแฅแ แแแแแแชแแ แแแแฎแแแ แแแแแก Git แกแแชแแแแแ,
- แฃแแแแ แแแฌแแแแก แแ แฌแแแ แแแฌแแแแก แจแแแ แแแ,
- แแแแแแแชแแแก แแแขแแแแขแฃแ แ แแแแแแแแแ แกแแขแแกแขแ แแแ แแแแจแ,
- แแแขแแแแขแฃแ แ แแแแแแแแแ แแ แแ.
แฉแแแ แแแแแแแแ แแแ แแแงแแแแแแก แแแขแแแแแก แแแแ.
1. แแแฃแจแแแ CD
แฃแฌแงแแแขแ แแแแแแแแแ แแฌแงแแแ แแแแ, แ แแ แแแแแแแแแ แ แชแแแแก แฉแแแแ Git แกแแชแแแแก แแแแแจแแแแแก แคแแแแแแก.
แฉแแแแ แแแแแแแชแแ แแฃแจแแแแก แแแแ แแกแแ แแแกแแก แแ แฅแแขแแฅแขแฃแ แแแ แแ แแแกแ แงแแแแ แแแแแแแแแขแ แแแแฎแแแ แแ แ แกแแชแแแจแ. แแแแก แฌแงแแแแแแ, แงแแแแ แแแแ แแกแแ แแแกแ แแ แแแแแแ แแ แแแกแขแแแแ แแแฃแแแ, แแแจแแแแช แแ, แแฃ แ แแแแแแแ แแแแแแแ แจแแแชแแแแ.
แฉแแแ แแแแแฌแงแแแ แแฃแจแแแแ แแ แแ แกแแชแแแแแแ แ แแแแแแแแ แแแแแแแก แแแแ:
- แแแแแแแแ แแแแก แกแแแแ แขแแแ - แแแแแแแชแแ แแฅแขแแฃแ แแ แแแแแ แแแแ, แแกแ แ แแ แแฅแแแ แจแแแแซแแแแ แแ แแแ แแฃแแแ แแแฃแจแแแ แงแแแแ แแแแแแ.
- แแ แแแแแ CI/CD แแแแกแแแแแ, แ แแแแแแช แแแ แแแขแแแก แแซแแแแ, แ แแ แแแแแแแชแแ, แ แแแแ แช แแ แแแแแ แกแแกแขแแแ, แแแแแแแก แงแแแแ แขแแกแขแก แแ แแแแฌแแแแแ แแแแฎแแแ แแแแแก แกแแฌแแ แแแ แแแ แแแแก.
- แฉแแแ แแฆแแแแคแฎแแ แแ แแแแแแฃแแแแแก แแแ แกแแแแจแ - แฉแแแ แแ แแแญแแ แแแแ แจแแแแแแฎแแ แแแแ แแกแแ แแแกแแก แแแ แกแแแแแก แ แฃแแ แแ แแฆแแฌแแ แแ แแแกแ แแแแคแแแฃแ แแชแแ แแแแแแฃแแ แแแแ แแกแแ แแแกแแกแแแแก Helm แกแแ แแแขแแแจแ.
2. แแแแฎแแแ แแแแแก แแแแแก Git แกแแชแแแแแ แกแแแฅแ แแแแแแชแแ
แแแแฎแแ แชแแแแแแฃแแ แชแแแแแแแแแ แแแขแแแแขแฃแ แแ แกแแแฅแ แแแแแแแแ แแแแฎแแแ แแแแแก Git แกแแชแแแแแ. แแฅ แแ แแก แแแแแแแชแแแก แแกแแแแแแแก แแแแคแแแฃแ แแชแแ, แ แแแแแแช แแแแฅแแแแแแแ แคแแแแแแแก แแแแแฎแแแแแกแ แแ แแแแ แซแแแแแแแ แแแแแแแแแแก แจแแแแแ. แแ แแแ แแ แแชแแกแ แฌแแ แแแแฅแแแแแ แแแ แแแ แแแแจแ Git แกแแชแแแแแแ.
แฉแแแ แแ แจแแแแแซแแแ แฃแจแฃแแแแ แแแแฎแแแ แแแแแก แกแแชแแแแแ แแฃแจแแแแ, แ แแแแแ แแแญแแ แแแแ แฉแแแแ แกแแแฃแแแ แ แแแ แแแ แแแแแแแแ แแแแกแ แแ แขแแกแขแแ แแแแกแแแแก. แฉแแแ แแแงแแแแแ แฉแแแแก Git แกแแชแแแก แแ แแแแแแแแกแแแแก - แแก แกแแแฅแ แแแแแแแฃแแแ แแแ Git แกแแชแแแแแ. แ แแแแ แช แแ แแแแแแแแแ แ แแแแแแฅแแแงแแแแก แชแแแแแแแแแก แฉแแแแ แกแแชแแแแก แจแแกแแแแแแก แคแแแแแแจแ, GitLab แแแฃแงแแแแแแแแ แฃแแแซแแแแก แแ แชแแแแแแแแแก แแแแฎแแแ แแแแแก.
แแแแก แจแแแแแ แแฅแแแ แฃแแแ แแแแแแแแ แจแแแ แแแ. แแแ แจแแแแแแ แ แแแแแแแแ แแขแแแแกแแแ: แฃแแแแ แแแฌแแแแกแ แแ แฌแแแ แแแฌแแแแก แแฌแงแแแ, แขแแกแขแแ แแแ แแ แฌแแ แแแแแแแแ แแแขแแแ.
3. แแแฅแแแแแก แแ แคแ แแแขแแแแแก แแฌแงแแแ
Backend-แแกแ แแ Frontend-แแก แแแแแ แแ แแก แแ แ แแแ แแแแแฃแ แ แแแแแแแแ, แ แแแแแแแช แจแแกแ แฃแแแแฃแแแ GitLab Runner แกแแกแขแแแแจแ. แแแกแ แแ แแแแแแแฃแ แ แแกแแแแแแแก แแแแคแแแฃแ แแชแแ แแแแแแ แแแแก แแแแแ แกแแชแแแจแ.
GitLab Runner แแฆแแแก แแแแก แกแแญแแ แ แกแแชแแแแแแ, แแฌแงแแแก แแแก Java แแแแแแแชแแแก แแจแแแแแแก แแ แซแแแแแแ แแ แแแแแแแแก Docker-แแก แ แแแกแขแ แจแ. แแฅ แฉแแแ แแแฌแงแแแ แฃแแแแ แแ แคแ แแแขแแแขแก, แแแฆแแแ แแแแแ แแก แกแฃแ แแแแแก, แ แแแแแแกแแช แแแแแแกแแแ แแแแแแขแแก แแฎแแ แแก แแ แกแแแฃแ แกแแชแแแจแ. Docker แกแฃแ แแแแแแก แกแแแแ แแแแแ แฉแแแ แแแงแแแแแ
แฉแแแ แกแแแฅแ แแแแแแชแแแก แแฃแฌแแแ แฉแแแแ แกแฃแ แแแแแแก แแแ แกแแแแก แแแแแจแแแแแก แแแ แกแแแกแแแ, แ แแแแแแช แแแแแฅแแแงแแแแแ Docker-แจแ. แจแแฃแคแแ แฎแแแแแ แแฃแจแแแแแกแแแแก, แฉแแแ แแแแแแฎแแ แชแแแแแ แ แแแแแแแแ แแแ แแฅแขแแ แแแ:
1. แแแแขแแแแแ แแแ แแ แแแแแแแ แกแแขแแกแขแ แแแ แแแแกแ แแ แฌแแ แแแแแแก แแแ แแแแก แจแแ แแก. แฉแแแ แแแแแแแแแ แแแ แแแแขแ แแแแชแแ แแกแ, แ แแ แแ แแกแ แแ แแแแแ แแแแขแแแแแ แก แจแแแซแแ แแแฃแจแแแก แงแแแแ แแแ แแแแขแ แแแ, แแแ แแแแก แชแแแแแแแแแ แแ แกแแ แแแกแแแแแ, แ แแแแ แช แกแแขแแกแขแ แแแ แแแแจแ, แแกแแแ แฌแแ แแแแแแจแ, แฎแแแแฎแแ แแจแแแแแแก แแแ แแจแ.
2. Helm-แแก แแแจแแแแแแ แแแแแแแชแแแก แแแแแฎแแแแแกแแแแก, แฃแแแ แแแฃแแแแแ แแแกแ แแแ แกแแ. แฉแแแ แแแจแแแแแ backend-แก, frontend-แก แแ แแแแฎแแแแ แแแแแแแชแแแก - แแก แแ แแก แกแแแ แแแแกแฎแแแแแแฃแแ แแแแชแแแ, แแแแขแแ แแแแจแแแแแแแแแแ แแแแแแแชแแแก แแ แแ แแ แแแแแ แแแ แกแแแก แแแแแงแแแแแ แงแแแแแแ. แแ แแแแชแแแแกแแแแก แฉแแแ แแแงแแแแแ แแแแแชแแแแแก Git แแกแขแแ แแแแแ, แ แแแแแ แฉแแแแ K8S แแแแกแขแแ แแก แแแแคแแแฃแ แแชแแ แแ แแแแแแแชแแแแ แแแแแ Git แกแแชแแแจแแ.
แฉแแแ แแแฆแแแ แแแแแแแชแแแก แแแ แกแแแก แแ แซแแแแแแก แจแแกแ แฃแแแแแก แจแแแแแแแแแแ
git describe --tags --abbrev=7
.
4. แขแแกแขแแก แแแ แแแแจแ แงแแแแ แชแแแแแแแแก แแแขแแแแขแฃแ แ แแแแแแแแแ (UAT)
แจแแแแแแ แแแแแฏแ แแ build แกแแ แแแขแจแ แแ แแก K8S แแแแกแขแแ แแก แแแขแแแแขแฃแ แแ แแแแแฎแแแแ. แแก แฎแแแแ แแ แแแ แแแแ, แ แแ แแแแแ แแแแแแแชแแ แแจแแแแ แแ แงแแแแ แแ แขแแคแแฅแขแ แแแแแฅแแแงแแแ Docker Registry-แจแ. แแแแก แจแแแแแ แแฌแงแแแ แกแแขแแกแขแ แแแ แแแแก แแแแแฎแแแแ.
แแแแกแขแแ แแก แแแแแฎแแแแ แแแฌแงแแแฃแแแ แแแแแงแแแแแแ
แฉแแแ แแแฌแแแแ K8S แแแแกแขแแ แแก แแแแคแแแฃแ แแชแแแก แแกแแแแแแแกแแแ แแ แแแ. แแแแขแแ, แจแแแแแแ แแแแแฏแ แแ แแก แแแกแ แแแแแฎแแแแ: configMaps, แแแแแแแแแ, แกแแ แแแกแแแ, แกแแแแฃแแแแแแแแ แแ แแแแแกแแแแ แ แกแฎแแ K8S แแแแคแแแฃแ แแชแแ, แ แแแแแแช แฉแแแ แจแแแชแแแแแ.
แจแแแแแ Helm แแฌแแ แแแแแก แแแแแ แแแแแแแชแแแก RollOut แแแแแฎแแแแแก แกแแขแแกแขแ แแแ แแแแจแ. แกแแแแ แแแแแชแฎแแแ แแแแแแแแแแ แฌแแ แแแแแแจแ. แแก แแแแแแแ แแแแกแแแแก, แ แแ แแแแฎแแแ แแแแแแแ แฎแแแแ แจแแแแแฌแแแ แแแแแแก แคแฃแแฅแชแแแแ, แ แแแแแแแช แฉแแแ แกแแขแแกแขแ แแแ แแแแจแ แแแงแแแแแ.
5. แงแแแแ แชแแแแแแแแก แแแขแแแแขแฃแ แ แแแแแแแแแ แแ แแ
แกแแฌแแ แแแ แแแ แแแแจแ แแแแแฎแแแแแก แแแแแกแแงแแแแแแแ, แแฅแแแ แฃแแ แแแแ แฃแแแ แแแแญแแ แแ แแ แ แฆแแแแแก GitLab-แจแ - แแ แแแแขแแแแแ แแแ แแแฃแงแแแแแแแแ แแแแฌแแแแแ แกแแฌแแ แแแ แแแ แแแแก.
แแ แแกแ แแ แแแแแ แแแแแแแชแแแก แจแแฃแซแแแ แแแฃแจแแแก แกแฎแแแแแกแฎแแ แแแ แแแแจแ - แขแแกแขแแ แแแ แแ แฌแแ แแแแแ - แแฆแแแแแแก แแแ แแจแ. แฉแแแ แแแงแแแแแ แแแแแ แแ แขแแคแแฅแขแแแก แแแแแแแชแแแจแ แแ แแคแ แแก แจแแชแแแแก แแแ แแจแ แแ แแแ แแแแขแ แแแก แแแงแแแแแ แแแ แแแแ.
แแแแแแแชแแแก แแแ แแแแขแ แแแแก แแแฅแแแแ แแแ แแแแขแ แแแแชแแ แแแแแแแแแแฃแแแ แแ แแแ แแแแแ, แ แแแแแจแแช แแแแแแแชแแ แจแแกแ แฃแแแแแ. แฉแแแ แแแแแแแขแแแแ แแแ แแแแก แงแแแแ แแแ แแแแขแ แ แแแ แแแแ: แงแแแแแคแแ แ แแแ แแแแขแ แแแแแฃแแแ K8S แแแแคแแแฃแ แแชแแแกแ แแ Helm แแแ แแแแขแ แแแแก แแแจแแแแแแ. แ แแแแกแแช Helm แแงแแแแแก แแกแแแแแแแก แขแแกแขแแก แแแ แแแแจแ, แขแแกแขแแก แแแ แแแแขแ แแแ แแแแแแงแแแแแ แแแกแแ, แฎแแแ แแ แแแฃแฅแขแแก แแแ แแแแขแ แแแ แแแแแแงแแแแแ แฌแแ แแแแแแก แแแ แแแแแ.
แงแแแแแแ แ แแฃแแ แแงแ แงแแแแ แแแแแงแแแแแฃแแ แกแแ แแแกแแกแ แแ แชแแแแแแก แแแ แแแแขแ แแแแชแแ, แ แแแแแแช แแแแแแแแแแฃแแแ แแแ แแแแแ, แแ แแแแ แแแ แแแแ แแแ แแแแก แชแแแแแแแแ แแ แแแ แแแแก แแแ แแแแขแ แแแแก แแฆแฌแแ แ-แแแแคแแแฃแ แแชแแแแแ Helm-แแกแแแแก.
แแแแแแแชแแแก แแแ แแแแขแ แแแ แแงแแแแแก แแแ แแแแก แชแแแแแแแก. แแแแ แแแแจแแแแแแแแแ แแแงแแแแแฃแแแ แแแแขแแแแแ แแแจแ K8S configmap-แแก แแแแแงแแแแแแ, แ แแแแแแช แจแแแแแแแ แแแฃแแแ Go แจแแแแแแแแแก แแแแแงแแแแแแ. แแแแแแแแแ, แแแแแแแก แกแแฎแแแแ แแแ แแแแก แชแแแแแแก แแแงแแแแแ แจแแแซแแแแ แแกแ แแแแแแแแก:
APP_EXTERNAL_DOMAIN: {{ (pluck .Values.global.env .Values.app.properties.app_external_domain | first) }}
.แฆแแ แแแฃแแแแแแ.แแแแแแแฃแ แ. env โ แแก แชแแแแแ แแแแฎแแแก แแแ แแแแก แกแแฎแแแก (prod, stage, UAT).
.Values.app.properties.app_external_domain โ แแ แชแแแแแจแ แแแงแแแแแ แกแแกแฃแ แแแ แแแแแแก .Values.yaml แคแแแแจแ
แแแแแแแชแแแก แแแแแฎแแแแแกแแก Helm แฅแแแแก configmap.yaml แคแแแแก แจแแแแแแแแแแแ แแ แแแกแแแก APP_EXTERNAL_DOMAIN แแแแจแแแแแแแแก แกแแกแฃแ แแแแ แแแแจแแแแแแแแ, แแแแกแแ แแแฎแแแแแ, แแฃ แ แ แแแ แแแแแแ แแฌแงแแแ แแแแแแแชแแแก แแแแแฎแแแแ. แแก แชแแแแแ แฃแแแ แแแงแแแแแฃแแแ แแแแขแแแแแ แจแ. แแแกแแ แฌแแแแแ แจแแกแแซแแแแแแแ แแแแแแแชแแแแแ, แแแแขแแ แแแแแแฃแ แแแแแแแชแแแก แแแ แแแแก แแฅแแแแ แแแแกแฎแแแแแแฃแแ แแแแจแแแแแแแ แแ แชแแแแแแกแแแแก.
แจแแแแ แแแแ แชแแขแ แฎแแแก แฌแแ, K8S แแฎแแ แแแญแแ แ แแแแแฉแแแ Spring Cloud-แจแ, แแแ แจแแ แแก แแฃแจแแแแ configMaps-แแแ:
แกแแแ แแ แฏแแแจแ
แแกแ แ แแ, แฃแฌแงแแแขแ แแแแแแแแแ แแ แแก แแแแคแแแฃแ แแ แแแฃแแ แแ แแฃแจแแแแก. แงแแแแ แแแแแฎแแแแ แฎแแแแ แแ แแ แแแแแแจแแก แแแญแแ แแ. แแ แแแฃแฅแขแแก แแแ แแแแจแ แชแแแแแแแแแแก แแแฌแแแแแ แแแขแแแแขแฃแ แแ. แแ, แ แแช แแแแแแ แแ, แแแแแฎแแแแแแ แแ แแฉแแ แแแก แกแแกแขแแแแก.
แกแแแแแแแแ แแแแแแแ: แแแแแชแแแแ แแแแแก แแแขแแแแขแฃแ แ แแแแ แแชแแ
แฉแแแ แแแคแแฅแ แแ แแแแแชแแแแ แแแแแก แแแแแฎแแแแแแ แแ แแ แชแแแแแแแแแแก แฃแแแ แแแแ แฃแแแแแแ. แงแแแแแแแ แแแแก แจแแแแแ, แแแแแแแชแแแก แแ แ แแแแกแฎแแแแแแฃแแ แแแ แกแแ แแฃแจแแแแก แแ แแแ แแฃแแแ: แซแแแแ แแแจแแแแฃแแแ แแ แแฎแแแ. แซแแแแก แแ แแฎแแแแ แแแจแแ แแแแแแจแแแ, แ แแชแ แแแแ แฌแแฃแแแแแแ, แ แแ แแฎแแแ แแแ แกแแ แแฃแจแแแแก. แแแแแชแแแแ แแแแแก แแแแ แแชแแ แกแแจแฃแแแแแแก แแแแชแแแ แแแฃแจแแแ แแแแแแแชแแแก แแ แแแ แแแ แกแแแกแแแ.
แแแแขแแ, แฉแแแ แแ แจแแแแแซแแแ แฃแแ แแแแ แจแแแชแแแแแ แกแแแขแแก แกแแฎแแแ แแ แกแฎแแ แแแแแชแแแแแ. แแแแ แแ แฉแแแ แจแแแแแซแแแ แจแแแฅแแแแ แแฎแแแ แกแแแขแ, แแแแแแแแแ แแ แแแกแจแ แแแแแชแแแแแ แซแแแแ แกแแแขแแแแ แแ แฉแแแฌแแ แแ แขแ แแแแ แแแ, แ แแแแแแแช แแแแแชแแแแ แแแแแฎแแแแแกแแก แแ แแแ แแฃแแแ แแแแแแแแ แแแแ แแ แแแแแแฎแแแแก แแแก แกแฎแแ แกแแแขแจแ. แแ แแแแแแแชแแแก แแฎแแแ แแแ แกแแแก แฌแแ แแแขแแแแ แแแแแแแแแแก แจแแแแแ, แแแจแแแแแก แจแแแแแแแ แแฎแแ แแแญแแ แแก แแแ แแแแแก แจแแแแแ, แฉแแแ แจแแแซแแแแ แฌแแจแแแแ แซแแแแ แกแแแขแ แแ แขแ แแแแ แ, แ แแแแแแช แแแฎแแ แแ แแกแแญแแ แ.
แแฃ แแแแแแแชแแแก แแฎแแแ แแแ แกแแ แแ แแฃแจแแแแก แกแฌแแ แแ, แจแแแแแซแแแ แแแแฃแแ แฃแแแแ แฌแแแ แแแ แกแแแก, แแแแแชแแแแ แแแแแก แฌแแแ แแแ แกแแแก แฉแแแแแแ. แแแแแแ, แฉแแแแ แชแแแแแแแแแ แกแแจแฃแแแแแแก แแแแชแแแ แแ แแแ แแฃแแแ แแแฃแจแแแ แแแแแแแชแแแก แ แแแแแแแแ แแแ แกแแแกแแแ.
แฉแแแ แแแแแแแแ แแแแแชแแแแ แแแแแก แแแแ แแชแแแก แแแขแแแแขแแแแชแแแก K8S แกแแแฃแจแแแก แแแจแแแแแแ, แแแกแ แแแขแแแ แแ แแแ CD แแ แแชแแกแจแ. แแ แฉแแแ แแฃแชแแแแแแแ แแแแแแแแ แแแ แแ แแแแแชแแแแแแแก Habrรฉ-แแ.
แฌแงแแ แ: www.habr.com