Установить:
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
Плагин 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
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…)
https://github.com/helm/charts/ - Helm Charts
https://levelup.gitconnected.com/helm-dependencies-1907facbe410 - Helm dependencies
https://helm.sh/docs/chart_template_guide/function_list/ - Template Function List