Evolution
Тема интерфейса

Требования к плагинам

В статье описаны требования к Helm-чартам для размещения плагинов на Маркетплейсе Cloud.ru.

Плагин принимается в архиве со следующими директориями:

  1. charts — корневой файл с Helm-чартами.

  2. images— файл с образами.

  3. tools — файл с данными для работы Third-Party, например dumps и keygens.

  4. README.md — файл с описанием архива, зависимостей, необходимых ресурсов.

Содержание Helm-чарта

  1. Файл Chart.yaml содержит информацию о зависимостях — dependencies.

  2. Переменные и поля для заполнения:

    • расположены в файле values.yaml;

    • содержат дефолтное значение, чтобы понять работу плагина и протестировать его установку;

    • содержат краткий комментарий с описанием цели применения.

  3. Если используются секреты:

    • Секреты расположены в файле Values.yaml.

    • В секретах указаны дефолтные значения, которые нужны для тестирования установки с использованием компонентов Third-Party «из коробки».

    • Дефолтные значения секретов обозначены в комментариях и в файле README.md.

      При использовании сервиса пользователь самостоятельно переопределяет значения секретов.

    • Способы и инструменты генерации секретов описаны в файле README.md.

    • Если используются сертификаты, плагин позволяет исключать их использование для работы в демонстрационном режиме.

      При использовании сервиса пользователь самостоятельно выпускает и использует сертификаты. Способ выпуска сертификатов должен быть описан в файле README.md.

  4. Если используются компоненты Third-Party, в плагине реализованы методы enable и disable для включения и отключения манифестов сопровождающих сервисов.

    Методы позволяют сделать выбор между демонстрационной установкой и использованием на продуктиве. В дальнейшем такой выбор будет представлен пользователю в интерфейсе при установке плагина.

    Исключение — параллельное использование зависимостей, например плагина Service Mesh. Наличие таких плагинов нужно указать в README.md.

    1. Метод enable:

    • Устанавливает необходимые компоненты Third-Party в виде подов в пространстве имен плагина.

    • Использует дефолтные значения из файла values, включая секреты. Это позволит запускать плагин «из коробки» без дополнительных усилий.

    • Первичная подготовка базы данных и других компонентов происходит автоматически, например с помощью init-контейнера и пр. Ручная подготовка подов исключена.

    1. Метод disable:

    • Не устанавливает компоненты Third-Party.

    • Пользователь самостоятельно подключает необходимые компоненты для работы плагина.

    • Шаги по подготовке Third-Party описаны в README.md.

    • Если для работы с плагином необходимы дампы базы данных, дампы находятся в директории tools.

  5. Если используются Istio и Ingress, в плагине реализованы методы enable и disable для включения и отключения их манифестов.

    1. Метод enable:

    • Устанавливает Istio и Ingress для подключения плагина на продуктиве.

    • Шаги для настройки работы Istio и Ingress описаны в README.md.

    1. Метод disable:

    • Не устанавливает Istio и Ingress. Вариант необходим для демонстрационной установки плагина.

    • Приложение видит свои сервисы и поды через сущность service внутри кластера. Так пользователь сможет открыть URL или API плагина и ознакомиться с его функциональностью.

Содержание README.md

  1. Пререквизиты описывают окружение, необходимое для работы плагина:

    • Обязательные компоненты, например: Postgres, Kafka.

    • Ресурсы: CPU, RAM, HDD, количество рабочих узлов.

    • Зависимости от других плагинов, например: Synapse Service Mash, Ingress.

  2. Особенности плагина и неисправности описаны в разделе «Примечания».

  3. Специфичные термины расшифрованы.

  4. Описаны поля и переменные, которые необходимо заполнить.

  5. В описании перевыпуска секретов указаны:

    • специфические секреты и способы их генераций;

    • процесс перевыпуска сертификатов.

  6. Описан запуск плагина для демонстрации с использованием включенных компонентов Third-Party при помощи Helm.

  7. Описан запуск плагина для подключения на продуктиве с использованием отключенных компонентов Third-Party при помощи Helm.