Переключить конфигурацию helm на основе контекста kubectl
Я использую Helm для управления приложениями, запущенными в моем кластере Kubernetes. Я управляю несколькими кластерами для разных сред. kubectl
поддерживает это из коробки, например:
kubectl config set-context staging
kubectl config set-context production
Каждому кластеру принадлежит определенная конфигурация Helm.
2 переменные среды:
TILLER_NAMESPACE
HELM_TLS_ENABLE
И в случае HELM_TLS_ENABLE
верно, также сертификат PEM и ключ.
В настоящее время, когда я переключаю контекст, мне нужно вручную изменить переменные, связанные с Helm. Есть ли способ автоматизировать это? Я предположил, может быть, крючок, который называется, когда kubectl
контекст изменился, но я не мог найти способ.
Специфичный для ZSH вариант также приемлем, хотя предпочтительным является агностический метод для оболочки.
2 ответа
Опубликовать этот ответ в вики-сообществе, чтобы указать на комментарии, сделанные под вопросом, и добавить дополнительную информацию.
Не стесняйтесь расширяться.
Сейчас этот вопрос следует считать неактуальным. Вопрос касался следующих переменных среды:
-
TILLER_NAMESPACE
-
HELM_TLS_ENABLE
Особое внимание уделено:
Сопутствующий серверный компонент,tiller, который работает в вашем кластере Kubernetes, прослушивает команды от helm и управляет настройкой и развертыванием выпусков программного обеспечения в кластере. Формат упаковки Helm, называемый диаграммами.
Helm v2
который использовался, теперь устарел .Helm v3
не используетtiller
больше.
Ссылаясь на официальную документацию по перекосу поддержки:
После 13 ноября 2020 г. вы увидите следующие изменения:
- Больше никаких выпусков Helm v2 (даже исправлений безопасности)
- Никаких дальнейших обновлений документации Helm v2, которая останется доступной в настоящее время, но может быть прекращена.
- Существующие и новые проблемы/запросы, относящиеся к версии 2, будут закрыты. Передача выпуска Helm и права владения хостингом диаграмм в CNCF.
Дополнительные ресурсы:
Проверить эту обертку?
Экспортирует следующие переменные в зависимости от контекста
HELM_TLS_CA_CERT="${HELM_HOME}/tls/${K8S_CONTEXT}/ca.pem"
HELM_TLS_CERT="${HELM_HOME}/tls/${K8S_CONTEXT}/cert.pem"
HELM_TLS_KEY="${HELM_HOME}/tls/${K8S_CONTEXT}/key.pem"
HELM_TLS_ENABLE="true"