ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому
ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€

πŸ’‘ Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Helm: Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ

πŸ’‘ Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Helm: Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Helm для управлСния прилоТСниями Π² Kubernetes, ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ряду ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… Ρ‡Π°Ρ€Ρ‚ΠΎΠ². πŸ“¦ 1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Ρ‡Π°Ρ€Ρ‚Π° Π‘ΠΎΠ±Π»ΡŽΠ΄Π°ΠΉΡ‚Π΅ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ структуру Ρ‡Π°Ρ€Ρ‚Π° Helm: mychart/ charts/ templates/ values.yaml Chart.yaml README.md Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ добавлСния нСстандартных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ. Π­Ρ‚ΠΎ сдСлаСт Ρ‡Π°Ρ€Ρ‚Ρ‹ пСрСносимыми ΠΈ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌΠΈ. 🧩 2. РаздСляйтС ΠΎΠ±Ρ‰ΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ _helpers.tpl для опрСдСлСния ΠΎΠ±Ρ‰ΠΈΡ… шаблонов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ, ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ ΠΈΠΌΠ΅Π½Π° рСсурсов. Π­Ρ‚ΠΎ сниТаСт Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ сопровоТдСниС: {{/* ГСнСрация ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ */}} {{- define "mychart.fullname" -}} {{- printf "%s-%s" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-" -}} {{- end -}} βš™οΈ 3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² values.yaml Π”Π΅Π»Π°ΠΉΡ‚Π΅ Ρ‡Π°Ρ€Ρ‚Ρ‹ Π³ΠΈΠ±ΠΊΠΈΠΌΠΈ, пСрСдавая ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· values.yaml. Никогда Π½Π΅ Ρ…Π°Ρ€Π΄ΠΊΠΎΠ΄ΡŒΡ‚Π΅ значСния Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ…. πŸ§ͺ 4. Валидация values.yaml ДобавляйтС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ required: {{ required "Variable mychart.image.repository is required" .Values.image.repository }} πŸ” 5. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ if/else Ρ€Π°Π·ΡƒΠΌΠ½ΠΎ Π‘Ρ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ. РаздСляйтС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π½Π° нСсколько Ρ„Π°ΠΉΠ»ΠΎΠ², Ссли ΠΎΠ½ΠΈ становятся слишком слоТными. πŸ—ƒοΈ 6. НС добавляйтС Ρ‡Π°Ρ€Ρ‚ Π² шаблон Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ВмСсто Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ зависимостСй Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ charts/, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΈΡ… Π² Chart.yaml ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ helm dependency update. πŸ›‘ 7. НС Ρ…Π°Ρ€Π΄ΠΊΠΎΠ΄ΡŒΡ‚Π΅ вСрсии ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠŸΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· values.yaml. Π­Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ CI/CD: image: repository: nginx tag: "1.21.1" πŸ”’ 8. Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ НС Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ ΠΈ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Π² values.yaml. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сСкрСты Kubernetes ΠΈΠ»ΠΈ инструмСнты Ρ‚ΠΈΠΏΠ° Sealed Secrets ΠΈΠ»ΠΈ External Secrets. πŸ” 9. Helm hooks Helm прСдоставляСт Ρ…ΡƒΠΊΠΈ для выполнСния Π·Π°Π΄Π°Ρ‡ Π΄ΠΎ/послС установки. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ Π‘Π”. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: annotations: "helm.sh/hook": pre-install 🧹 10. Чистка старых Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ helm uninstall ΠΈ рСгулярно провСряйтС статус Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ helm list. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈΠΌΡ‘Π½ ΠΈ мусора. πŸ§ͺ 11. ВСстированиС Ρ‡Π°Ρ€Ρ‚Π° ДобавляйтС unit-тСсты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ helm unittest ΠΈ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ синтаксиса: helm lint . πŸ”„ 12. Автоматизация Ρ‡Π΅Ρ€Π΅Π· CI/CD Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ Helm Π² ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ‹ CI/CD для установки ΠΈ обновлСния Ρ‡Π°Ρ€Ρ‚ΠΎΠ² β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ GitLab CI, GitHub Actions, ArgoCD ΠΈΠ»ΠΈ Flux. ΠŸΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ΡΡŒ этих Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ β€” ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с Helm станСт Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΠΉ, устойчивой ΠΈ Π±ΠΎΠ»Π΅Π΅ прСдсказуСмой. Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ инфраструктуры ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅. Подпишись πŸ‘‰ @i_DevOps

813 просмотров

Канал Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠœΠ°ΠΊΡΠΈΠΌΠ΅Ρ‚Π΅Ρ€Π°

3Β 017 подписчиков Β· IT ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Ρ‹Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠ°Π½Π°Π»Π°

Π•Ρ‰Ρ‘ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅ Β«IT ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΒ»

Π§ΠΈΡ‚Π°Ρ‚ΡŒ дальшС

Π”Π²Π° Ρ€Π°Π·Π° Π² нСдСлю свСТиС посты этого ΠΊΠ°Π½Π°Π»Π° β€” Π½Π° ΠΏΠΎΡ‡Ρ‚Ρƒ ΠΈ Π² Π»ΠΈΡ‡Π½ΡƒΡŽ Π»Π΅Π½Ρ‚Ρƒ. Π‘Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ поиска ΠΊΠ°Π½Π°Π»Π° Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.