Инструменты пользователя

Инструменты сайта


how-to:helm

helm

Установить:

curl -fsSL -o /tmp/get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
bash /tmp/get_helm.sh

https://helm.sh/docs/intro/install/

Показать версию helm:

helm version --template="{{ .Version }}"

Добавить репозиторий:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts

Работа через прокси (пример для bitnami, добавить и обновить репозиторий):

HTTPS_PROXY=http://proxy.domain.com:3128 helm repo add bitnami https://charts.bitnami.com/bitnami
HTTPS_PROXY=http://proxy.domain.com:3128 helm repo update bitnami

Найти charts и показать списоком все доступные версии (пример stable/rabbitmq):

helm search repo -l rabbitmq

Скачать и распаковать chart определённой версии:

helm pull ${REPO_NAME}/${PATH_TO_CHART} --untar --version ${CHART_VERSION}

Показать values установленного helm чарта:

helm get values <helm-name>

Показать все helm со всеми статусами:

helm list -a -n <namespace>

Показать историю ревизий:

helm history <helm-name>

Откатить «завсший» helm:

helm rollback <helm-name> <revision> -n <name-space>

Экспорт

Экспорт helm chart в yaml (в один файл или в директорию):

helm template -n dev fdbd-dev ./fdbd --values ./fdbd/values.dev.yaml > template.yaml
helm template -n dev fdbd-dev ./fdbd --values ./fdbd/values.dev.yaml --output-dir ./manifests

Применить экспортированное:

kubectl apply -n dev --recursive --filename ./manifests/fdbd

Синтаксис

Подавление пробелов

Подавление пробелов

{{- ... }} - подавление пробелов слева
{{ ... -}} - подавление пробелов справа
{{- ... -}} - подавление пробелов с обеих сторон


Тест

Тест манифеста:

helm template . -f values.yaml

Тест с .Capabilities.APIVersions.Has:

helm template . -f values.yaml --api-versions monitoring.coreos.com/v1

Тест чарта:

helm lint

Plugins

mapkubeapis

Плагин Helm версии 3, который обновляет метаданные Helm релиза, содержащие устаревшие или удаленные API-интерфейсы Kubernetes, на новый экземпляр с поддерживаемыми API-интерфейсами Kubernetes или полностью удаляет ссылки на ресурсы, использующие API-интерфейсы, которые были удалены и не имеют преемника.

helm plugin install https://github.com/helm/helm-mapkubeapis
helm mapkubeapis <helm-name> --dry-run
helm del <helm-name> --dry-run

https://github.com/helm/helm/issues/11513

Проблемы

Error: UPGRADE FAILED: «<RELEASE-NAME>» has no deployed releases

Решение:

kubectl patch secret <RELEASE-SECRET> --type=merge -p '{"metadata":{"labels":{"status":"deployed"}}}' -n <NAMESPACE>

Error: failed to delete release: <RELEASE-NAME>

helm в статусе uninstalling

Решение:

kubectl delete secret sh.helm.release.v1.<RELEASE-SECRET>.<VERSION>

и удалить остальные ресурсы (deployments,secrets…)

Ссылки

Создание

how-to/helm.txt · Последнее изменение: lioncub