Три статуса в каталоге приложений
Проверено, кандидат, отключено. Третий статус — самый полезный: он говорит, чего нельзя поставить этой сборкой, и почему.
В каталоге приложений у каждой позиции есть один из трёх статусов, и это не украшение списка.
Проверено — ставится без дополнительных флагов. Прошло сертификацию, версия чарта закреплена, архив вложен в сборку.
Кандидат — описание импортировано, приложение ещё не сертифицировано. Установка требует явного флага, разрешающего непроверенное. То есть поставить можно, но не случайно.
Отключено — этой сборкой поставить нельзя. Как правило, потому что версия чарта не закреплена или архив чарта не вложен.
Почему третий статус важнее первых двух
Список из «проверено» и «кандидат» — это список того, что мы умеем. Список «отключено» — это список того, чего мы не умеем, и он полезнее.
Инженер, который выбирает платформу, планирует не по успехам, а по границам. Приложение, которого нет в каталоге вообще, — неизвестность: может, забыли, может, не поддерживается. Приложение со статусом «отключено» — определённость с указанной причиной.
Строгое правило про вложенный чарт
Приложение не устанавливается, если в каталоге нет вложенного архива чарта. Без исключений.
Это защищает от скрытой зависимости во время установки. Чарт, который тянется из внешнего репозитория в момент развёртывания, означает, что установка зависит от доступности чужого сервера и от того, что содержимое по тому же адресу не изменилось.
Оба предположения нарушаются. Внешний репозиторий уезжает, тег переписывается, чарт получает новую зависимость. Обнаруживается это при следующей установке — обычно когда надо быстро.
Вложенный архив делает установку воспроизводимой: тот же бинарник даёт то же приложение через год.
Что лежит в бинарнике
Индекс приложений со статусами и метаданными об аутентификации, публикации и зависимостях. Исходные описания приложений. Извлечённые значения Helm. И сами архивы чартов для тех приложений, которые можно ставить без внешнего репозитория.
То есть каталог — не ссылка на каталог, а каталог. Это увеличивает размер файла и делает установку не зависящей от сети до третьих лиц.
Как это выглядит в работе
Список доступного смотрится одной командой. Пробный прогон установки — флагом, который ничего не меняет. Установка — командой с именем приложения и указанием папки проекта.
Флаг для непроверенного приходится набирать руками. Это трение намеренное: разница между «поставил из каталога» и «поставил кандидата» должна оставаться видимой в истории команд и в обсуждении.
Что означает «сертифицировано»
Что приложение поставили, оно поднялось, к нему получилось обратиться, и его конфигурация в каталоге соответствует тому, что реально нужно для работы.
Это скучная проверка, и она не гарантирует, что приложение подойдёт вашей задаче. Она гарантирует другое: если оно не поднялось, дело не в каталоге.