我正在使用 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
更改时调用的钩子,但我真的找不到方法。
尽管更倾向于使用与 shell 无关的方法,但 ZSH 特定选项也是可以接受的。
答案1
将此答案发布为社区维基,以指向问题下的评论并添加其他信息。
请随意扩展。
现在认为这个问题无关紧要。该问题具体涉及以下环境变量:
TILLER_NAMESPACE
HELM_TLS_ENABLE
特别关注tiller
:
配套服务器组件 tiller 运行在 Kubernetes 集群上,监听来自 helm 的命令,并处理集群上软件版本的配置和部署。Helm 打包格式称为 charts。
Helm v2
以前使用的tiller
现在已被弃用.Helm v3
不再使用tiller
。
引用有关支持偏差的官方文档:
后2020 年 11 月 13 日,你会看到这些变化:
- 不再发布 Helm v2(即使是安全补丁)
- Helm v2 文档不再更新,目前仍可用,但可能会停止使用
- 特定于 v2 的现有和新问题/PR 将被关闭将 Helm 版本和图表托管所有权过渡到 CNCF
其他资源:
答案2
检查一下包装器?
它根据上下文导出以下变量
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"