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, чтобы получать обновления моих будущих статей. ✅