Перейти до основного вмісту
Версія: 3.22.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 тощо).