Kubernetes 具有构建时环境变量的舵值

Kubernetes 具有构建时环境变量的舵值,kubernetes,kubernetes-helm,kubernetes-deployment,Kubernetes,Kubernetes Helm,Kubernetes Deployment,我有一个舵图,在部署中,我想为我的吊舱提供一些环境变量。在我的CI/CD设置的构建期间,我将这些值设置为env vars,现在我将它们按如下方式传递: helm upgrade CHART_NAME helm --install --set-string webserver.env.DATABASE_URL=$DATABASE_URL 我有超过20个环境变量,我可以在values.yml中访问它们吗 webserver: env: DATABASE_URL=${DATABASE_U

我有一个舵图,在部署中,我想为我的吊舱提供一些环境变量。在我的CI/CD设置的构建期间,我将这些值设置为env vars,现在我将它们按如下方式传递:

helm upgrade CHART_NAME helm --install --set-string webserver.env.DATABASE_URL=$DATABASE_URL
我有超过20个环境变量,我可以在values.yml中访问它们吗

webserver:
  env:
    DATABASE_URL=${DATABASE_URL}

遗憾的是,这个方法不起作用。

更好的方法是创建values-override.yaml文件,并将需要从Jenkins设置的所有值存储在values-override文件中。
使用
sed
命令将value-override.yaml更新为jenkins env变量。使用Helm upgrade命令中的override values.yaml。

Helm不会解析
文件中的占位符(环境变量),但您可以在将文件传递给
Helm upgrade
命令之前,在CI/CD脚本中自己进行解析:

环境yaml值:

webserver:
环境:
DATABASE_URL=${DATABASE_URL}
CI/CD脚本:

eval“echo\”$(cat values env.yaml)\“”>>values-ci.yaml
头盔升级图表\u NAME helm--install--values-ci.yaml