Требования к плагинам
В статье описаны требования к 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