# Helm # Helm Один из самых популярных пакетных менеджеров для Kubernetes. **Управление helm** **Установка helm:** ``` curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null sudo apt-get install apt-transport-https --yes echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list sudo apt-get update sudo apt-get install helm ``` **Репозиторий**
Команда | Доп. пар. | Описание |
helm repo | list | Список репозиториев |
add repo\_name repo\_url | Добавить репозиторий repo\_name с адресом repo\_url ``` helm repo add stable https://kubernetes-charts.storage.googleapis.com/ ``` Часто используют bitnami, но в России он сейчас закрыт. Есть зеркало: ``` helm repo add bitnami https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami ``` | |
update | обновить репозиторий | |
helm search | repo keyword | Поиск чартов по репозиториям ключевого слова keyword |
hub keyword | В официальном репозитории | |
--max-col-width=0 | \+ hub/repo полный вывод текста | |
--output yaml | +hub/repo вывод в yaml | |
--versions | Отсортировать по версиям чарта |
Команда | Доп. пар. | Описание |
helm plugin install url | Установка плагина | |
helm plugin list | Список плагинов | |
helm plugin update pl\_name | Обновление плагина | |
helm plugin unistall pl\_name | Удаление плагина |
Переменная | Описание |
XDG\_CACHE\_HOME | Размещение кешированных данных. По умолчанию ~/.cache/helm |
XDG\_CONFIG\_HOME | Размещение конфигурационного файла По умолчанию ~/.config/helm |
XDG\_DATA\_HOME | Размещение плагинов helm По умолчанию ~/.local/share/helm |
HELM\_DRIVER | Драйвер для хранения данных. Secret - хранение авторизационных данных в файле, может быть configmap и memory |
HELM\_NO\_PLUGINS | Отключить плагины |
KUBECONFIG | Размещение конфигурационного файла kubectl |
Команда | Доп. пар. | Описание |
helm install | name\_chart repo | Установить из репозитория repo чарт name\_chart |
--... | Переменные внутри чарта ``` helm install kubeapps --namespace kubeapps bitnami/kubeapps ``` | |
--debug --dry-run pr\_name path\_to\_ch | протестировать без установки чарта | |
helm inspect values | name\_chart > ... | Сохранение чарта в файл ``` helm inspect values stable/kube-ops-view > kube-ops-view.yaml ``` |
helm lint --strict path-to-chart | Проверить соответствие values схеме | |
helm fetch name\_chart | Скачать чарт в tar | |
--untar | И распаковать ``` helm fetch bitnami/wordpress --untar ``` | |
helm ls | --namespace namespace | список установленных чартов |
helm upgrade | ... | Обновление |
helm rollback ch\_name count | Откатить чарт ch\_name на count назад ``` helm rollback redis 1 --namespace=redis ``` | |
helm uninstall name\_ch | ``` helm uninstall kubeapps --namespace kubeapps ``` |
Директория/файл | Описание | Обяз. |
Chart.yaml | Метаданные чарта | + |
templates/ | Ресурсы кубера в формате yaml helm (yaml с переменными) Но файлы начинающиеся с \_ не обрабатываются, \_\*.tpl обрабатываются как helper файлы. | + если не составной |
templates/NOTES.txt | Инструкции по использованию | - |
values.yaml | Переменные по умолчанию | - |
.helmignore | Файлы исключения при упаковке чарта | - |
charts/ | Зависимости (другие чарты) | -, при отсутствии helm их сгенерирует в соответствии с Chart.yaml |
Chart.lock | Первично примененные зависимости. | -, будет создан автоматически |
crds/ | Зависимости, которые должны быть собраны до основного чарта | - |
README.md | Описание | - |
LICENSE | Лицензия | - |
value.shema,json | Шаблон в json формате | - |
files/ | Дополнительные файлы |
Пространство имен | Описание |
.Release | Переменные, связанные с релизом в устанавливаемой системе. .Release.Name - имя релиза .Release.Namespace - пространство имен релиза .Release.Revision - номер версии |
.Values | Переменные, размещенные в файле values.yaml |
.Chart | Переменные, получаемые из файла Chart.yaml Например, .Chart.Name, .Chart.Version .Chart.AppVersion |
.Files | Работа с файлами в директории из директории files. Если файл не существует - вернется ошибка. .Files.Get - Извлекает содержимое файлов .Files.AsSecrets - Возвращает Base-64 закодированную строку для создания secret .Files.AsConfig - Возвращает данные для использования в виде ConfigMap |
.Subcharts | Пространство имен дочерних чартов. Например .Subchart.MyChart.firstvalue |
Поле | Описание |
apiVersion | Версия. В helm 3 формате используется v2 |
name | Имя чарта. Должно совпадать с именем директории чарта. В именах стоит использовать только -, например first-chart |
version | Версия. Формат X.Y.Z |
Команда | Доп. пар. | Описание |
helm create chart\_name | Создание шаблона чарта | |
helm install proj\_name path | Создание проекта с названием proj\_name используя чарт по пути path | |
-f par\_file | ссылка на другой файл параметров | |
--set foo=bar | Ручная установка параметров | |
helm get manifest proj\_name | Получить манифест проекта proj\_name |
Команда | Доп. пар. | Описание |
helm dependency build | путь до Chart.yaml | Перестроить зависимые чарты, базируясь на файле Chart.lock Если этого файла нет - то же что и update |
helm dependency list | Список зависимостей | |
helm dependency update | Обновление чартов и генерация Chart.lock |
Функция | Описание |
quote | Добавляет кавычки ``` {{ quote .Values.favorite.food }} ``` |
upper | В верхний регистр |
repeat n | Повтор значения n раз ``` {{ .Values.favorite.drink | repeat 5 | quote }} ``` |
default "some\_hy" | Присвоить значение по умолчанию если отсутствует ``` drink: {{ .Values.favorite.drink | default "tea" | quote }} ``` |
eq, ne, lt, gt, and, or | Логические функции |
indent n | Поставить n пробелов перед конструкцией |