В статье описаны требования к Helm-чартам для размещения плагинов на Маркетплейсе Cloud.ru.
Плагин принимается в архиве со следующими директориями:
charts — корневой файл с Helm-чартами.
images— файл с образами.
tools — файл с данными для работы Third-Party, например dumps и keygens.
README.md — файл с описанием архива, зависимостей, необходимых ресурсов.
Содержание Helm-чарта
Файл Chart.yaml содержит информацию о зависимостях — dependencies.
Переменные и поля для заполнения:
расположены в файле values.yaml;
содержат дефолтное значение, чтобы понять работу плагина и протестировать его установку;
содержат краткий комментарий с описанием цели применения.
Если используются секреты:
Секреты расположены в файле Values.yaml.
В секретах указаны дефолтные значения, которые нужны для тестирования установки с использованием компонентов Third-Party «из коробки».
Дефолтные значения секретов обозначены в комментариях и в файле README.md.
При использовании сервиса пользователь самостоятельно переопределяет значения секретов.
Способы и инструменты генерации секретов описаны в файле README.md.
Если используются сертификаты, плагин позволяет исключать их использование для работы в демонстрационном режиме.
При использовании сервиса пользователь самостоятельно выпускает и использует сертификаты. Способ выпуска сертификатов должен быть описан в файле README.md.
Если используются компоненты Third-Party, в плагине реализованы методы enable и disable для включения и отключения манифестов сопровождающих сервисов.
Методы позволяют сделать выбор между демонстрационной установкой и использованием на продуктиве. В дальнейшем такой выбор будет представлен пользователю в интерфейсе при установке плагина.
Исключение — параллельное использование зависимостей, например плагина Service Mesh. Наличие таких плагинов нужно указать в README.md.
Метод enable:
Устанавливает необходимые компоненты Third-Party в виде подов в пространстве имен плагина.
Использует дефолтные значения из файла values, включая секреты. Это позволит запускать плагин «из коробки» без дополнительных усилий.
Первичная подготовка базы данных и других компонентов происходит автоматически, например с помощью init-контейнера и пр. Ручная подготовка подов исключена.
Метод disable:
Не устанавливает компоненты Third-Party.
Пользователь самостоятельно подключает необходимые компоненты для работы плагина.
Шаги по подготовке Third-Party описаны в README.md.
Если для работы с плагином необходимы дампы базы данных, дампы находятся в директории tools.
Если используются Istio и Ingress, в плагине реализованы методы enable и disable для включения и отключения их манифестов.
Метод enable:
Устанавливает Istio и Ingress для подключения плагина на продуктиве.
Шаги для настройки работы Istio и Ingress описаны в README.md.
Метод disable:
Не устанавливает Istio и Ingress. Вариант необходим для демонстрационной установки плагина.
Приложение видит свои сервисы и поды через сущность service внутри кластера. Так пользователь сможет открыть URL или API плагина и ознакомиться с его функциональностью.
Содержание README.md
Пререквизиты описывают окружение, необходимое для работы плагина:
Обязательные компоненты, например: Postgres, Kafka.
Ресурсы: CPU, RAM, HDD, количество рабочих узлов.
Зависимости от других плагинов, например: Synapse Service Mash, Ingress.
Особенности плагина и неисправности описаны в разделе «Примечания».
Специфичные термины расшифрованы.
Описаны поля и переменные, которые необходимо заполнить.
В описании перевыпуска секретов указаны:
специфические секреты и способы их генераций;
процесс перевыпуска сертификатов.
Описан запуск плагина для демонстрации с использованием включенных компонентов Third-Party при помощи Helm.
Описан запуск плагина для подключения на продуктиве с использованием отключенных компонентов Third-Party при помощи Helm.
- Содержание Helm-чарта
- Содержание README.md