Знакомство с Helm 3

Знакомство с Helm 3

ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².: 16 мая этого Π³ΠΎΠ΄Π° β€” значимая Π²Π΅Ρ…Π° Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² для Kubernetes β€” Helm. Π’ этот дСнь Π±Ρ‹Π» прСдставлСн ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Π»ΡŒΡ„Π°-Ρ€Π΅Π»ΠΈΠ· Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΉ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° β€” 3.0. Π•Ρ‘ Π²Ρ‹Ρ…ΠΎΠ΄ принСсёт Π² Helm сущСствСнныС ΠΈ Π΄ΠΎΠ»Π³ΠΎΠΆΠ΄Π°Π½Π½Ρ‹Π΅ измСнСния, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π² Kubernetes-сообщСствС Π²ΠΎΠ·Π»Π°Π³Π°ΡŽΡ‚ большиС Π½Π°Π΄Π΅ΠΆΠ΄Ρ‹. К Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ относимся ΠΈ ΠΌΡ‹ сами, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Helm для дСплоя ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: ΠΌΡ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ Π² свой инструмСнт для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ CI/CD werf ΠΈ ΠΎΡ‚ случая ΠΊ случая вносим ΠΏΠΎΡΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²ΠΊΠ»Π°Π΄ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ upstream. Π­Ρ‚ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ 7 Π·Π°ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠ³Π° Helm, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡƒΡ€ΠΎΡ‡Π΅Π½Ρ‹ ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π°Π»ΡŒΡ„Π°-Ρ€Π΅Π»ΠΈΠ·Ρƒ Helm 3 ΠΈ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠ± истории ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ основных Ρ„ΠΈΡ‡Π°Ρ… Helm 3. Π˜Ρ… Π°Π²Ρ‚ΠΎΡ€ β€” Matt Β«bacongobblerΒ» Fisher, сотрудник Microsoft ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠ΅ΠΉΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Helm.

15 октября 2015 Π³ΠΎΠ΄Π° родился ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Ρ‹Π½Π΅ извСстный ΠΊΠ°ΠΊ Helm. ВсСго Ρ‡Π΅Ρ€Π΅Π· Π³ΠΎΠ΄ послС основания сообщСство Helm ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΎΡΡŒ ΠΊ Kubernetes, ΠΏΠΎΠΏΡƒΡ‚Π½ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ работая Π½Π°Π΄ Helm 2. Π’ июнС 2018 Π³ΠΎΠ΄Π° Helm вошСл Π² состав CNCF Π² качСствС Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ (incubating) ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. ΠŸΠ΅Ρ€Π΅Π½Π΅ΡΠ΅ΠΌΡΡ Π² настоящСС β€” ΠΈ Π²ΠΎΡ‚ ΡƒΠΆΠ΅ Π½Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π°Π»ΡŒΡ„Π°-Ρ€Π΅Π»ΠΈΠ· Π½ΠΎΠ²ΠΎΠ³ΠΎ Helm 3 (этот Ρ€Π΅Π»ΠΈΠ· ΡƒΠΆΠ΅ состоялся Π² сСрСдинС мая β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².).

Π’ этой этом ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π΅ я расскаТу ΠΎ Ρ‚ΠΎΠΌ, с Ρ‡Π΅Π³ΠΎ всС Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΎΡΡŒ, ΠΊΠ°ΠΊ ΠΌΡ‹ дошли Π΄ΠΎ Π½Ρ‹Π½Π΅ΡˆΠ½Π΅ΠΉ стадии, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ особСнности, доступныС Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π°Π»ΡŒΡ„Π°-Ρ€Π΅Π»ΠΈΠ·Π΅ Helm 3, ΠΈ объясню, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ дальшС.

ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ содСрТаниС:

  • история создания Helm;
  • Π½Π΅ΠΆΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΡ‰Π°Π½ΠΈΠ΅ с Tiller’ΠΎΠΌ;
  • Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ‡Π°Ρ€Ρ‚ΠΎΠ²;
  • ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅Π»ΠΈΠ·Π°ΠΌΠΈ;
  • измСнСния Π² зависимостях Ρ‡Π°Ρ€Ρ‚ΠΎΠ²;
  • library charts;
  • Ρ‡Ρ‚ΠΎ дальшС?

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ создания Helm

Π ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅

Helm 1 начинался ΠΊΠ°ΠΊ Open Source-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, созданный ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Deis. ΠœΡ‹ Π±Ρ‹Π»ΠΈ нСбольшим стартапом, ΠΏΠΎΠ³Π»ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΌ Microsoft вСсной 2017 Π³ΠΎΠ΄Π°. Π£ нашСго Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Open Source-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚Π°ΠΊΠΆΠ΅ носящСго имя Deis, Π±Ρ‹Π» инструмСнт deisctl, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ использовался (ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ) для установки ΠΈ эксплуатации ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Deis Π² кластСрС Fleet. Π’ Ρ‚ΠΎ врСмя Fleet Π±Ρ‹Π» ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ для оркСстровки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ².

Π’ сСрСдинС 2015-Π³ΠΎ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ курс ΠΈ ΠΏΠ΅Ρ€Π΅Π²Π΅Π»ΠΈ Deis (Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π² Deis Workflow) с Fleet Π½Π° Kubernetes. Одним ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π±Ρ‹Π» ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ инструмСнт установки deisctl. ΠœΡ‹ использовали Π΅Π³ΠΎ для инсталляции ΠΈ управлСния Deis Workflow Π² кластСрС Fleet.

Helm 1 Π±Ρ‹Π» создан ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρƒ ΠΈ подобию извСстных ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Homebrew, apt ΠΈ yum. Π•Π³ΠΎ основной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ являлось ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡, ΠΊΠ°ΠΊ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° ΠΈ инсталляция ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Kubernetes. ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Helm Π±Ρ‹Π» прСдставлСн Π² 2015 Π³ΠΎΠ΄Ρƒ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ KubeCon Π² Π‘Π°Π½-Ѐранциско.

Наша пСрвая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° с Helm сработала, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π΅ обошлось Π±Π΅Π· ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ. Он Π±Ρ€Π°Π» Π½Π°Π±ΠΎΡ€ манифСстов Kubernetes, сдобрСнных Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π² качСствС Π²Π²ΠΎΠ΄Π½Ρ‹Ρ… YAML-Π±Π»ΠΎΠΊΠΎΠ² (front-matter)*, ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π» Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π² Kubernetes.

* ΠŸΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².: Π‘ ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии Helm для описания рСсурсов Kubernetes Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ синтаксис YAML, Π° ΠΏΡ€ΠΈ написании ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈΡΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Jinja ΠΈ Python-скрипты. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎΠ± этом ΠΈ устройствС ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии Helm Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΌΡ‹ писали Π² Π³Π»Π°Π²Π΅ Β«ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ история HelmΒ» этого ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°.

НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π΅ Π² YAML-Ρ„Π°ΠΉΠ»Π΅, Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² манифСст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ:

#helm:generate sed -i -e s|ubuntu-debootstrap|fluffy-bunny| my/pod.yaml

Классно, Ρ‡Ρ‚ΠΎ сСгодня ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ?

По ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ этот Ρ€Π°Π½Π½ΠΈΠΉ Kubernetes-инсталлятор Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π» ТСстко прописанный список манифСст-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ выполнял Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ событий. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠΌ Π±Ρ‹Π»ΠΎ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ тяТСло, Ρ‡Ρ‚ΠΎ R&D-ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Deis Workflow ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ нСсладко, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ пСрСвСсти свой ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π° эту ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ β€” Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, сСмСна ΠΈΠ΄Π΅ΠΈ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ посСяны. Наша пСрвая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° стала ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ для обучСния: ΠΌΡ‹ осознали, Ρ‡Ρ‚ΠΎ ΠΏΠΎ-настоящСму ΡƒΠ²Π»Π΅Ρ‡Π΅Π½Ρ‹ созданиСм ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½Ρ‹Ρ… инструмСнтов, Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΡ… повсСднСвныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ для Π½Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.

ΠžΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° ΠΎΠΏΡ‹Ρ‚ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… ошибок, ΠΌΡ‹ приступили ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Helm 2.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Helm 2

Π’ ΠΊΠΎΠ½Ρ†Π΅ 2015 Π³ΠΎΠ΄Π° с Π½Π°ΠΌΠΈ связалась ΠΊΠΎΠΌΠ°Π½Π΄Π° Google. Они Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ Π½Π°Π΄ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ инструмСнтом для Kubernetes. Deployment Manager для Kubernetes Π±Ρ‹Π» ΠΏΠΎΡ€Ρ‚ΠΎΠΌ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ инструмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ использовался для Google Cloud Platform. «НС Ρ…ΠΎΡ‚ΠΈΠΌ Π»ΠΈ ΠΌΡ‹, β€” спросили ΠΎΠ½ΠΈ, β€” ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ нСсколько Π΄Π½Π΅ΠΉ Π½Π° обсуТдСниС сходств ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ?Β»

Π’ январС 2016 ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Helm’Π° ΠΈ Deployment Manager’Π° Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ»ΠΈΡΡŒ Π² БиэтлС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ идСями. ΠŸΠ΅Ρ€Π΅Π³ΠΎΠ²ΠΎΡ€Ρ‹ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈΡΡŒ Π°ΠΌΠ±ΠΈΡ†ΠΈΠΎΠ·Π½Ρ‹ΠΌ ΠΏΠ»Π°Π½ΠΎΠΌ: ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΎΠ±Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Helm 2. ВмСстС с Deis ΠΈ Google ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠ»ΠΈΡΡŒ ΠΏΠ°Ρ€Π½ΠΈ ΠΈΠ· SkippBox (Π½Ρ‹Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав Bitnami β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².), ΠΈ ΠΌΡ‹ приступили ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ Helm 2.

ΠœΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ простоту использования Helm, Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  • ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Ρ‡Π°Ρ€Ρ‚ΠΎΠ² для кастомизации;
  • внутрикластСрноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ для ΠΊΠΎΠΌΠ°Π½Π΄;
  • пСрвоклассный Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Ρ‡Π°Ρ€Ρ‚ΠΎΠ²;
  • ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ подписи;
  • Ρ‚Π²Π΅Ρ€Π΄ΡƒΡŽ ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ сСмантичСскому Π²Π΅Ρ€ΡΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈ ΡΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΡŽ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΌΠ΅ΠΆΠ΄Ρƒ вСрсиями.

Для достиТСния этих Ρ†Π΅Π»Π΅ΠΉ Π² экосистСму Helm Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт. Π­Ρ‚ΠΎΡ‚ внутрикластСрный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ назывался Tiller ΠΈ занимался инсталляциСй Helm-Ρ‡Π°Ρ€Ρ‚ΠΎΠ² ΠΈ ΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ.

Π‘ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π²Ρ‹Ρ…ΠΎΠ΄Π° Helm 2 Π² 2016-ΠΌ Kubernetes оброс нСсколькими ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΌΠΈ нововвСдСниями. Появилось ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ (RBAC), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа Π½Π° основС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² (ABAC). Π‘Ρ‹Π»ΠΈ прСдставлСны Π½ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ рСсурсов (Deployments Π² Ρ‚ΠΎ врСмя ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ Π² статусС Π±Π΅Ρ‚Π°-вСрсии). Π‘Ρ‹Π»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Ρ‹ Custom Resource Definitions (ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠ½ΠΈ Π½Π°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ Third Party Resources ΠΈΠ»ΠΈ TPRs). А самоС Π³Π»Π°Π²Π½ΠΎΠ΅ β€” появился Π½Π°Π±ΠΎΡ€ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ.

На Ρ„ΠΎΠ½Π΅ всСх этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Helm ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π» ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Π²Π΅Ρ€ΠΎΠΉ ΠΈ ΠΏΡ€Π°Π²Π΄ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Kubernetes. ПослС Ρ‚Ρ€Π΅Ρ… Π»Π΅Ρ‚ ΠΈ мноТСства Π½ΠΎΠ²Ρ‹Ρ… Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ стало ясно, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Π° Π²Π½ΠΎΡΠΈΡ‚ΡŒ сущСствСнныС измСнСния Π² ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Helm ΠΈ дальшС ΠΌΠΎΠ³ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡ‚ΡŒ растущиС потрСбности Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉΡΡ экосистСмы.

НСТноС ΠΏΡ€ΠΎΡ‰Π°Π½ΠΈΠ΅ с Tiller’ΠΎΠΌ

Π’ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Helm 2 ΠΌΡ‹ прСдставили Tiller ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ нашСй ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Deployment Manager’ΠΎΠΌ ΠΎΡ‚ Google. Tiller ΠΈΠ³Ρ€Π°Π» Π²Π°ΠΆΠ½ΡƒΡŽ Ρ€ΠΎΠ»ΡŒ для ΠΊΠΎΠΌΠ°Π½Π΄, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ±Ρ‰Π΅Π³ΠΎ кластСра: ΠΎΠ½ позволял Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ спСциалистам, ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌ инфраструктуру, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ€Π΅Π»ΠΈΠ·ΠΎΠ².

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ доступа Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ (RBAC) Π±Ρ‹Π» ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Kubernetes 1.6, Ρ€Π°Π±ΠΎΡ‚Π° с Tiller’ΠΎΠΌ Π² production ΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡŒ слоТнСС. Из-Π·Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ³ΠΎ числа Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ бСзопасности наша позиция состояла Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎ позволяло Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ экспСримСнты с Helm ΠΈ Kubernetes Π±Π΅Π· нСобходимости сначала ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ Π² настройки бСзопасности. К соТалСнию, эта Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ конфигурация ΠΌΠΎΠ³Π»Π° Π½Π°Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ слишком ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΠΌΡƒ Π½Π΅ Π±Ρ‹Π»ΠΈ Π½ΡƒΠΆΠ½Ρ‹. DevOps- ΠΈ SRE-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ эксплуатационныС шаги, устанавливая Tiller Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ (multi-tenant) кластСр.

Π£Π·Π½Π°Π², ΠΊΠ°ΠΊ прСдставитСли сообщСства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Helm Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ситуациях, ΠΌΡ‹ поняли, Ρ‡Ρ‚ΠΎ систСмС управлСния Ρ€Π΅Π»ΠΈΠ·Π°ΠΌΠΈ Tiller’Π° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° внутрикластСрный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ состояния ΠΈΠ»ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ…Π°Π±Π° с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ Ρ€Π΅Π»ΠΈΠ·Π΅. ВмСсто этого ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ просто ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΡ‚ API-сСрвСра Kubernetes, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°Ρ€Ρ‚ Π½Π° сторонС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ запись ΠΎΠ± установкС Π² Kubernetes.

ΠžΡΠ½ΠΎΠ²Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Tiller’Π° ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΈ Π±Π΅Π· Tiller’Π°, поэтому ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π½Π°ΡˆΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Helm 3 стал ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ°Π· ΠΎΡ‚ Tiller’Π°.

Π‘ ΡƒΡ…ΠΎΠ΄ΠΎΠΌ Tiller’Π° модСль бСзопасности Helm Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΠ»Π°ΡΡŒ. Helm 3 Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС соврСмСнныС способы бСзопасности, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Ρ‹Π½Π΅ΡˆΠ½Π΅Π³ΠΎ Kubernetes. Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Helm ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»Π° kubeconfig. Администраторы кластСра ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с любой ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. Π Π΅Π»ΠΈΠ·Ρ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ кластСра, ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Helm сохраняСтся.

Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ‡Π°Ρ€Ρ‚ΠΎΠ²

На высоком ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Ρ‡Π°Ρ€Ρ‚ΠΎΠ² β€” это мСсто, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°Ρ€Ρ‚Ρ‹. ΠšΠ»ΠΈΠ΅Π½Ρ‚ Helm ΠΏΠ°ΠΊΡƒΠ΅Ρ‚ ΠΈ отправляСт Ρ‡Π°Ρ€Ρ‚Ρ‹ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ. ΠŸΡ€ΠΎΡ‰Π΅ говоря, Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Ρ‡Π°Ρ€Ρ‚ΠΎΠ² β€” это ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ HTTP-сСрвСр с Ρ„Π°ΠΉΠ»ΠΎΠΌ index.yaml ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Ρ‡Π°Ρ€Ρ‚Π°ΠΌΠΈ.

Π₯отя Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСимущСства Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ API рСпозитория Ρ‡Π°Ρ€Ρ‚ΠΎΠ² ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ основным трСбованиям ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ, Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΈ нСсколько нСдостатков:

  • Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Ρ‡Π°Ρ€Ρ‚ΠΎΠ² ΠΏΠ»ΠΎΡ…ΠΎ совмСстимы с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ бСзопасности, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π² production-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ. НаличиС стандартного API для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ½ΠΎ Π² production-сцСнариях.
  • Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Helm’а для отслСТивания происхоТдСния Ρ‡Π°Ρ€Ρ‚Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для подписи, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ цСлостности ΠΈ происхоТдСния Ρ‡Π°Ρ€Ρ‚Π°, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ процСсса ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Chart’а.
  • Π’ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сцСнариях ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‡Π°Ρ€Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π² Π΄Π²Π° Ρ€Π°Π·Π° увСличивая объСм пространства, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для хранСния ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΡƒΠΌΠ½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ спСцификации.
  • ИспользованиС Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ индСкс-Ρ„Π°ΠΉΠ»Π° для поиска, хранСния ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ получСния Ρ‡Π°Ρ€Ρ‚ΠΎΠ² услоТнило Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ бСзопасных ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Docker Distribution (Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ Docker Registry v2) являСтся ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΎΠΌ Docker Registry ΠΈ фактичСски выступаСт Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструмСнтов для ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ, ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ, хранСния ΠΈ поставки ΠΎΠ±Ρ€Π°Π·ΠΎΠ² Docker. МногиС ΠΊΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ сСрвисы ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ Π½Π° основС Distribution. Благодаря Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΌΡƒ вниманию ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Distribution Π²Ρ‹ΠΈΠ³Ρ€Π°Π» ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½ΠΈΡ… ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ, Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ Π² области бСзопасности ΠΈ тСстирования Π² Β«Π±ΠΎΠ΅Π²Ρ‹Ρ…Β» условиях, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ²ΡˆΠΈΡ… Π΅Π³ΠΎ Π² ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· самых ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… нСвоспСтых Π³Π΅Ρ€ΠΎΠ΅Π² ΠΌΠΈΡ€Π° Open Source.

Но Π·Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Distribution Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ для распространСния любой Ρ„ΠΎΡ€ΠΌΡ‹ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²?

Благодаря усилиям Open Container Initiative (ΠΈΠ»ΠΈ OCI), Helm-Ρ‡Π°Ρ€Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π½Π° любом экзСмплярС Distribution. Пока этот процСсс носит ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€. Π Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π»ΠΎΠ³ΠΈΠ½ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠ³ΠΎ Helm 3, Π΅Ρ‰Π΅ Π½Π΅ ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½Π°, Π½ΠΎ ΠΌΡ‹ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π΄Ρ‹ возмоТности ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° открытиях, сдСланных ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ OCI ΠΈ Distribution Π·Π° эти Π³ΠΎΠ΄Ρ‹. А благодаря ΠΈΡ… наставничСству ΠΈ руководству ΠΌΡ‹ ΡƒΠ·Π½Π°Ρ‘ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ эксплуатация высокодоступного сСрвиса Π² большом ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅.

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдстоящих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² рСпозиториях Helm-Ρ‡Π°Ρ€Ρ‚ΠΎΠ² доступно ΠΏΠΎ ссылкС.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π΅Π»ΠΈΠ·Π°ΠΌΠΈ

Π’ Helm 3 состояниС прилоТСния отслСТиваСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ кластСра ΠΏΠ°Ρ€ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²:

  • release object β€” прСдставляСт экзСмпляр прилоТСния;
  • release version secret β€” прСдставляСт ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ состояниС прилоТСния Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅Π»ΠΈΠ· Π½ΠΎΠ²ΠΎΠΉ вСрсии).

Π’Ρ‹Π·ΠΎΠ² helm install создаСт release object ΠΈ release version secret. Π’Ρ‹Π·ΠΎΠ² helm upgrade Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наличия release object (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ) ΠΈ создаСт Π½ΠΎΠ²Ρ‹ΠΉ release version secret, содСрТащий Π½ΠΎΠ²Ρ‹Π΅ значСния ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΉ манифСст.

Release object содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π΅Π»ΠΈΠ·Π΅, Π³Π΄Π΅ Ρ€Π΅Π»ΠΈΠ· β€” конкрСтная инсталляция ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Ρ‡Π°Ρ€Ρ‚Π° ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ описываСт ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ уровня ΠΎ Ρ€Π΅Π»ΠΈΠ·Π΅. Release object сохраняСтся Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ всСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° прилоТСния ΠΈ выступаСт Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ всСх release version secret’ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСпосрСдствСнно ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Helm-Ρ‡Π°Ρ€Ρ‚ΠΎΠΌ.

Release version secret связываСт Ρ€Π΅Π»ΠΈΠ· с сСриСй Ρ€Π΅Π²ΠΈΠ·ΠΈΠΉ (инсталляция, обновлСния, ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅).

Π’ Helm 2 Ρ€Π΅Π²ΠΈΠ·ΠΈΠΈ Π±Ρ‹Π»ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π’Ρ‹Π·ΠΎΠ² helm install создавал v1, ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ (upgrade) β€” v2, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Release ΠΈ release version secret Π±Ρ‹Π»ΠΈ свСрнуты Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, извСстный ΠΊΠ°ΠΊ revision. Revision’Ρ‹ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡΡŒ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ пространствС ΠΈΠΌΠ΅Π½, Ρ‡Ρ‚ΠΎ ΠΈ Tiller, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· Π±Ρ‹Π» Β«Π³Π»ΠΎΠ±Π°Π»Π΅Π½Β» Π² ΠΏΠ»Π°Π½Π΅ пространства ΠΈΠΌΠ΅Π½; Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр ΠΈΠΌΠ΅Π½ΠΈ.

Π’ Helm 3 ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· связан с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ нСсколькими release version secret’Π°ΠΌΠΈ. Release object всСгда описываСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π΅Π»ΠΈΠ·, Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚Ρ‹ΠΉ Π² Kubernetes. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ release version secret описываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Π²Π΅Ρ€ΡΠΈΡŽ этого Ρ€Π΅Π»ΠΈΠ·Π°. ОбновлСниС (upgrade), Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, создаст Π½ΠΎΠ²Ρ‹ΠΉ release version secret ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ release object, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π» Π½Π° эту Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ. Π’ случаС ΠΎΡ‚ΠΊΠ°Ρ‚Π° (rollback) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ release version secret’Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Ρ€Π΅Π»ΠΈΠ· ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ.

ПослС ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΡ‚ Tiller’Π° Helm 3 Ρ…Ρ€Π°Π½ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ€Π΅Π»ΠΈΠ·Π΅ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ с Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ пространствС ΠΈΠΌΠ΅Π½. ПодобноС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ позволяСт ΠΈΠ½ΡΡ‚Π°Π»Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°Ρ€Ρ‚ с Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ€Π΅Π»ΠΈΠ·Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ пространство ΠΈΠΌΠ΅Π½, ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ обновлСниями/ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°ΠΌΠΈ кластСра Π² etcd. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ WordPress Π² пространство ΠΈΠΌΠ΅Π½ Β«fooΒ», Π° Π·Π°Ρ‚Π΅ΠΌ Π² пространство ΠΈΠΌΠ΅Π½ Β«barΒ», ΠΈ ΠΎΠ±Π° Ρ€Π΅Π»ΠΈΠ·Π° ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Β«wordpressΒ».

ИзмСнСния Π² зависимостях Ρ‡Π°Ρ€Ρ‚ΠΎΠ²

Π§Π°Ρ€Ρ‚Ρ‹, ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ helm package) для использования с Helm 2, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ½ΡΡ‚Π°Π»Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Helm 3, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‡Π°Ρ€Ρ‚ΠΎΠ² Π±Ρ‹Π» ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСсмотрСн, поэтому Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ внСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ‡Π°Ρ€Ρ‚ΠΎΠ² с Helm 3. Π’ частности, измСнилась систСма управлСния зависимостями Ρ‡Π°Ρ€Ρ‚ΠΎΠ².

БистСма управлСния зависимостями Ρ‡Π°Ρ€Ρ‚Π° ΠΏΠ΅Ρ€Π΅ΡˆΠ»Π° с requirements.yaml ΠΈ requirements.lock Π½Π° Chart.yaml ΠΈ Chart.lock. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‡Π°Ρ€Ρ‚Ρ‹, использовавшиС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ helm dependency, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ настройки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Helm 3.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π”ΠΎΠ±Π°Π²ΠΈΠΌ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊ Ρ‡Π°Ρ€Ρ‚Ρƒ Π² Helm 2 ΠΈ посмотрим, Ρ‡Ρ‚ΠΎ измСнится ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΊ Helm 3.

Π’ Helm 2 requirements.yaml выглядСл ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

dependencies:
- name: mariadb
  version: 5.x.x
  repository: https://kubernetes-charts.storage.googleapis.com/
  condition: mariadb.enabled
  tags:
    - database

Π’ Helm 3 Ρ‚Π° ΠΆΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½Π° Π² вашСм Chart.yaml:

dependencies:
- name: mariadb
  version: 5.x.x
  repository: https://kubernetes-charts.storage.googleapis.com/
  condition: mariadb.enabled
  tags:
    - database

Π§Π°Ρ€Ρ‚Ρ‹ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ charts/, поэтому субчарты (subcharts), Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ charts/, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ Library Charts

Helm 3 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ класс Ρ‡Π°Ρ€Ρ‚ΠΎΠ², ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΠΉ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‡Π°Ρ€Ρ‚ΠΎΠ²-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (library chart). Π­Ρ‚ΠΎΡ‚ Ρ‡Π°Ρ€Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Ρ‡Π°Ρ€Ρ‚Π°ΠΌΠΈ, Π½ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ создаСт Π½ΠΈΠΊΠ°ΠΊΠΈΡ… Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ² Ρ€Π΅Π»ΠΈΠ·Π°. Π¨Π°Π±Π»ΠΎΠ½Ρ‹ library chart’ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±ΡŠΡΠ²Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнты define. Иной ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ попросту игнорируСтся. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ‡Π°Ρ€Ρ‚Π°Ρ…, Ρ‚Π΅ΠΌ самым ΠΈΠ·Π±Π΅ΠΆΠ°Π² дублирования ΠΈ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡΡΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° DRY.

Library charts ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ dependencies Π² Ρ„Π°ΠΉΠ»Π΅ Chart.yaml. Установка ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠΈ Π½Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‡Π°Ρ€Ρ‚ΠΎΠ².

dependencies:
  - name: mylib
    version: 1.x.x
    repository: quay.io

ΠœΡ‹ с ΠΏΡ€Π΅Π΄Π²ΠΊΡƒΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΆΠ΄Π΅ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² использования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ этот ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Ρ‡Π°Ρ€Ρ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ благодаря library charts.

Π§Ρ‚ΠΎ дальшС?

Helm 3.0.0-alpha.1 β€” основа, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ, ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Helm. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я описал Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ интСрСсныС возмоТности Helm 3. МногиС ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠΊΠ° находятся Π½Π° Ρ€Π°Π½Π½ΠΈΡ… стадиях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ это Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ; ΡΡƒΡ‚ΡŒ Π°Π»ΡŒΡ„Π°-Ρ€Π΅Π»ΠΈΠ·Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ идСю, ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΎΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ наши прСдполоТСния.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Π»ΡŒΡ„Π°-вСрсия Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π° (Π½Π°ΠΏΠΎΠΌΠ½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ это ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ β€” ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².), ΠΌΡ‹ Π½Π°Ρ‡Π½Π΅ΠΌ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠ°Ρ‚Ρ‡ΠΈ для Helm 3 ΠΎΡ‚ сообщСства. НСобходимо ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности, Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ смогут Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя Π²ΠΎΠ²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π² процСсс, открывая Ρ‚ΠΈΠΊΠ΅Ρ‚Ρ‹ ΠΈ внося исправлСния.

Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ я постарался ΠΎΡΠ²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появятся Π² Helm 3, ΠΎΠ΄Π½Π°ΠΊΠΎ этот список Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС нСльзя Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΈΡΡ‡Π΅Ρ€ΠΏΡ‹Π²Π°ΡŽΡ‰ΠΈΠΌ. ΠŸΠΎΠ»Π½ΠΎΠΌΠ°ΡΡˆΡ‚Π°Π±Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½ для Helm 3 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Ρ‚Π°ΠΊΠΈΠ΅ нововвСдСния, ΠΊΠ°ΠΊ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Π΅ стратСгии обновлСния, Π±ΠΎΠ»Π΅Π΅ глубокая интСграция с рССстрами OCI ΠΈ использованиС JSON-схСм для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ‡Π°Ρ€Ρ‚ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Π΅ Π΅Π΅ части, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡΡ‚Π°Π²Π°Π»ΠΈΡΡŒ Π±Π΅Π· внимания послСдниС Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π°.

Если чувствуСтС, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ упустили, Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π΄Ρ‹ ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ ваши мысли!

ΠŸΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ Π² Π½Π°ΡˆΠΈΡ… Slack-ΠΊΠ°Π½Π°Π»Π°Ρ…:

  • #helm-users для вопросов ΠΈ простого общСния с сообщСством;
  • #helm-dev для обсуТдСния pull requests, ΠΊΠΎΠ΄Π° ΠΈ Π±Π°Π³ΠΎΠ².

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ Π² Π½Π°ΡˆΠΈΡ… Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Public Developer Calls ΠΏΠΎ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Π³Π°ΠΌ Π² 19:30 MSK. ВстрСчи посвящСны ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ сообщСство, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Π΅ΠΌΠ°ΠΌ обсуТдСния Π½Π° нСдСлю. Π›ΡŽΠ±ΠΎΠΉ ΠΆΠ΅Π»Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΈ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ участиС Π²ΠΎ встрСчС. Бсылка доступна Π² Slack-ΠΊΠ°Π½Π°Π»Π΅ #helm-dev.

P.S. ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°

Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π² нашСм Π±Π»ΠΎΠ³Π΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com