Перейти к основному содержимому
Версия: 3.19.0

Зависимости

Эта часть руководства по лучшим практикам посвящена зависимостям (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

Это позволяет пользователю включать или отключать данную функциональность с помощью одного тега.