当前位置: 首页 > 知识库问答 >
问题:

使Helm覆盖手动编辑的环境变量

靳富
2023-03-14

使用Helm模板,我可以指定部署环境变量。

但是,如果环境变量通过Openshift web console手动修改,那么即使模板代码发生了更改,它也会在升级时被Helm忽略。

helm upgrade --install --force --debug app .

模板/Deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
spec:
  template:
    spec:
      containers:
      - name: app
        image: app:latest
        env:
          - name: ENV
            value: {{ Values.env }}

values.yaml

env: dev

我如何使Helm在升级时总是覆盖环境变量?

共有1个答案

徐瀚
2023-03-14

要自定义图表值,可以使用:

  • --要在包含设置的yaml文件中传递的值/-f,
  • --设置以直接提供一个或多个key=val对,
  • --set-string提供key=val,强制将val存储为字符串,
  • --set-file提供key=path以从路径处的文件读取单个大值。

若要编辑或追加现有的自定义值,请添加--reuse-values标志,否则将忽略任何现有的自定义值。

$ export ENV=change
$ helm upgrade --set env=$ENV ./mychart

我再次邀请您从以下文档和文章中了解更多关于helm升级标志的信息。

 类似资料:
  • 我知道这是最基本的问题。在视频教程中,您可以看到一个Java文件中的更改http://www.jhipster.tech/video-tutorial/ 这一变化是“用户只能看到他的项目,除非他是管理员”。这只是一个很小的更改,可以用于模式。 现在,我想扩展模式并执行 a) 仅兼容更改(添加新表和关系) b) 还有一些不兼容的更改(例如,修复表名中的拼写错误) 我的问题是:jHipsetr如何支持

  • 最佳实践最好在values.yaml文件中定义环境变量还是在templates/deployment.yaml放入中定义环境变量? 如果有您使用的示例应用程序,您能提供帮助吗?

  • 我需要我的应用程序应该从环境变量而不是应用程序中选择键的值。yml。 > 如果环境变量中不存在特定属性,则应从应用程序中选取值。yml,否则。

  • 当正在构建映像路径时,这就是我想要构建映像路径的方式,其中有docker注册表地址,我想要从ConfigMap获取它。 有没有关于如何使用头盔来解决这个问题的建议?谢谢

  • 问题内容: 有没有一种方法可以使用另一个属性源(特别是系统环境)覆盖通过Spring Cloud Config Server设置的属性?我知道我可以通过遍历对象的s 来手动执行此操作,但是如果可以将其设置为使源成为最低优先级,那将是理想的选择。 问题答案: FWIW,我通过编写一个自定义事件来实现此目的,该自定义事件在周期的早期触发,但在Config Service 加载后触发。如果有人感兴趣,我

  • 我是helm的新手,我希望能够使用配置映射和共享环境变量将gitlab项目变量写入文件。 我为每个环境(其中