Как создать свой первый плагин Helm?


Helm

Helm помогает управлять приложениями Kubernetes с помощью диаграмм Helm. Диаграммы Helm помогают определять, устанавливать и обновлять приложения Kubernetes.

Пример:

# add chart repository
helm repo add bitnami https://charts.bitnami.com/bitnami

# update charts
helm repo update

# install mysql using helm chart by bitnami
helm install bitnami/mysql --generate-name
Вход в полноэкранный режим Выход из полноэкранного режима

Плагины Helm

Подключаемые модули Helm позволяют расширить возможности Helm без изменения основной кодовой базы Helm.

Плагины Helm имеют следующие особенности:

  • Их можно добавлять и удалять из установки Helm, не затрагивая основной инструмент Helm.
  • Они могут быть написаны на любом языке программирования.
  • Они интегрируются с Helm и будут отображаться в справке Helm и других местах.

Плагины Helm хранятся в каталоге $HELM_PLUGINS, вы можете изменить его с помощью команды helm env.

Установка плагина helm

Плагин Helm может быть установлен из git-репозитория, tar-релиза или из локальной директории.

helm plugin install <path|url>
Вход в полноэкранный режим Выход из полноэкранного режима

Анатомия плагина Helm

Плагин helm состоит из файла plugin.yaml, который содержит определение плагина и связанные с ним команды.

─ fullenv
   ├── plugin.yaml
   └── run.sh
Войти в полноэкранный режим Выйти из полноэкранного режима

определение плагина

plugin.yaml определяет имя, использование, описание и команду, которая будет выполняться при вызове.

  • Command может указывать на ваш собственный скрипт на любом языке программирования.
  • Переключатель ignoreFlags указывает Helm не передавать флаги плагину.

Таким образом, если плагин вызывается с helm myplugin --foo и ignoreFlags: true, то –foo будет молча отброшен.

plugin.yaml

name: fullenv
usage: "show env vars"
description: "show all env vars"
command: "$HELM_PLUGIN_DIR/run.sh"
ignoreFlags: true
Вход в полноэкранный режим Выйти из полноэкранного режима

run.sh – просто печатает переменные окружения шлема.

#!/bin/sh
echo $HELM_PLUGIN_NAME
echo $HELM_PLUGIN_DIR
echo $HELM_PLUGINS
echo $HELM_REPOSITORY_CONFIG
echo $HELM_REPOSITORY_CACHE
echo $HELM_BIN
Вход в полноэкранный режим Выход из полноэкранного режима

Команды для конкретной платформы

Команды плагина Helm могут быть настроены для платформы и архитектуры os.

name: fullenv
usage: "show env vars"
description: "show all env vars"
command: "$HELM_PLUGIN_DIR/run.sh"
platformCommand:
  - os: linux
    arch: i386
    command: "$HELM_PLUGIN_DIR/run.sh"
  - os: linux
    arch: amd64
    command: "$HELM_PLUGIN_DIR/run.sh"

Войти в полноэкранный режим Выйти из полноэкранного режима

При выборе команды Helm руководствуется следующими правилами.

  • Если присутствует platformCommand, она будет искаться первой.
  • Если и os, и arch соответствуют текущей платформе, поиск будет прекращен и команда будет использована.
  • Если os совпадает и нет более конкретного совпадения arch, будет использована команда.
  • Если не найдено соответствие platformCommand, будет использована команда по умолчанию command.
  • Если в platformCommand не найдено совпадений и отсутствует command, Helm завершит работу с ошибкой.

Установите плагин

Перейдите в каталог плагина, а затем выполните приведенную ниже команду

# install
helm plugin install .

# check if the installation is successful
helm plugin list
Войти в полноэкранный режим Выйти из полноэкранного режима

Протестируйте плагин

helm fullenv
Войдите в полноэкранный режим Выйти из полноэкранного режима

Если вам понравилась эта статья, подпишитесь на рассылку новостей и подпишитесь на меня в twitter, чтобы получать обновления моих будущих статей. ✅

Оцените статью
Procodings.ru
Добавить комментарий