根据 kubectl 上下文切换 helm 配置

根据 kubectl 上下文切换 helm 配置

我正在使用 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。

--Digitalocean.com:社区:教程:Kubernetes 包管理器 Helm 简介

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"

相关内容