Перейти до основного вмісту
Версія: 4.3.1

Загальні домовленості

Ця частина Посібника з найкращих практик пояснює загальні домовленості.

Назви чартів​

Назви чартів мають відповідати правилам міток DNS-1123: дозволені лише малі літери, цифри та дефіси; назви мають починатися й закінчуватися малою літерою або цифрою та не можуть перевищувати 63 символи:

Приклади:

drupal
nginx-lego
aws-cluster-autoscaler

До недійсних назв чартів належать:

  • Назви з великими літерами (наприклад, MyChart)
  • Назви з підкресленнями (наприклад, my_chart)
  • Назви з крапками (наприклад, my.chart)
  • Назви, що починаються з дефіса (наприклад, -mychart)
  • Назви, що закінчуються дефісом (наприклад, mychart-)
  • Назви довші за 63 символи

Команда helm lint перевіряє назви чартів за цими правилами.

Номери версій​

По можливості, Helm використовує SemVer 2 для позначення номерів версій. (Зверніть увагу, що теґи Docker-образів не завжди відповідають SemVer і тому вважаються невдалим винятком з правила.)

Коли версії SemVer зберігаються в мітках Kubernetes, ми умовно змінюємо символ + на _, оскільки мітки не допускають використання знака + як значення.

Форматування YAML​

Файли YAML повинні використовувати відступи у два пробіли (і ніколи табуляцією).

Використання слів Helm і Chart​

Існує кілька домовленостей щодо використання слів Helm і helm.

  • Helm відноситься до проєкту в цілому
  • helm відноситься до клієнтської команди
  • Термін chart не потрібно писати з великої літери, оскільки це не власна назва
  • Однак Chart.yaml необхідно писати з великої літери, оскільки назва файлу чутлива до регістру

У разі сумніву використовуйте Helm (з великої літери "H").

Шаблони чартів і простори імен​

Не задавайте властивість namespace у секції metadata шаблонів чарту. Простір імен, у якому слід застосувати відрендерені шаблони, потрібно вказувати під час виклику клієнта Kubernetes за допомогою прапорця, наприклад --namespace. Helm відрендерює шаблони без змін і передає їх клієнту Kubernetes — самому Helm або іншій програмі, як-от kubectl, Flux чи Spinnaker.