在舵图模板中引用当前kube上下文

时间:2019-05-23 14:12:21

标签: kubernetes kubernetes-helm

这里有点掌舵新手,简而言之,我想在掌舵图表模板中引用当前的Kubernetes上下文。这可能吗?示例:

如果升级通过以下方式运行:

/var/jenkins_home/helm291 upgrade -i --kube-context Dev

并且模板包含一个deploy.yaml,其内容如下:

...
spec:
  containers:
    - name: {{ .Chart.Name }}
      image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
      env:
      {{- if contains "Dev" .Release.Kube_Context}}

我是否缺少一些可以检查Kube上下文的变量(也称为替换Release.Kube_Context)?我是否以错误的方式(指定环境配置)进行处理?

2 个答案:

答案 0 :(得分:2)

您可以导出所需的上下文值,然后执行helm,以便将它们用作环境变量。

例如,如果您需要令牌访问权限:

export TOKEN=$(kubectl config view -o jsonpath='{.users[?(@.name == "dev-user")].user.auth-provider.config.id-token}'); /var/jenkins_home/helm291 upgrade -i --kube-context Dev

答案 1 :(得分:2)

无法做到这一点,并且在模板中这样做也是一种不好的做法。模板应该是通用的-您可以在values.yaml文件中修改特定于环境的内容。如果从Jenkins运行它,则可以改用--kube-context标志