Зависимости
Эта часть руководства по лучшим практикам посвящена зависимостям (dependencies), объявленным в файле Chart.yaml.
Версии
По возможности используйте диапазоны версий вместо фиксации на конкретной версии. Рекомендуемый подход — использовать соответствие на уровне патч-версии:
version: ~1.2.3
Это выражение соответствует версии 1.2.3 и всем патчам этого релиза. Другими словами, ~1.2.3 эквивалентно >= 1.2.3, < 1.3.0.
Полное описание синтаксиса версий см. в документации semver.
Предварительные версии (prerelease)
Указанные выше ограничения версий не применяются к предварительным версиям. Например, version: ~1.2.3 будет соответствовать version: ~1.2.4, но не version: ~1.2.3-1. Следующий синтаксис позволяет сопоставлять как патч-версии, так и предварительные версии:
version: ~1.2.3-0
URL репозиториев
По возможности используйте URL с https://, затем — с http://.
Если репозиторий добавлен в индексный файл репозиториев, имя репозитория можно использовать как псевдоним URL. Используйте alias: или @ перед именем репозитория.
URL-адреса файлов (file://...) рассматриваются как «особый случай» для чартов, которые собираются в рамках фиксированного конвейера развёртывания.
При использовании плагинов-загрузчиков схема URL будет специфичной для плагина. Обратите внимание: пользователю чарта потребуется установленный плагин, поддерживающий данную схему, для обновления или сборки зависимости.
Helm не может выполнять операции управления зависимостями, если поле repository оставлено пустым. В этом случае Helm предполагает, что зависимость находится в подкаталоге папки charts с именем, совпадающим со значением свойства name зависимости.
Условия и теги
Условия (conditions) или теги (tags) следует добавлять к любым зависимостям, которые являются опциональными. Обратите внимание, что по умолчанию condition имеет значение true.
Предпочтительная форма условия:
condition: somechart.enabled
Где somechart — это имя чарта-зависимости.
Когда несколько подчартов (зависимостей) вместе предоставляют опциональную или взаимозаменяемую функциональность, эти чарты должны использовать одинаковые теги.
Например, если nginx и memcached вместе обеспечивают оптимизацию производительности основного приложения в чарте и должны присутствовать одновременно при включении этой функции, то оба должны иметь следующий раздел тегов:
tags:
- webaccelerator
Это позволяет пользователю включать или отключать данную функциональность с помощью одного тега.