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

Helm,在values.yaml中计算linux env变量

赏开宇
2023-03-14

基本值.yaml

app:
  env:
    PORT: 8080
    ...
    JVM_ARGS: >
      -Dspring.profiles.active=$(SPRING_PROFILE),test
      -Dspring.config.additional-location=/shared
      -javaagent:/app/dd-java-agent.jar

service-x-values.yaml

app:
  env:
    SPRING_PROFILE: my-local-profile

值文件的计算顺序为:

    null
-Dspring.profiles.active=my-local-profile,vault
-Dspring.profiles.active=${SPRING_PROFILE},vault

共有1个答案

吕琪
2023-03-14
  1. 我有点困惑:您指的是一个环境变量(如问题标题中所示)还是一个helm值?
  2. helm不计算值文件中的环境变量$(SPRING_PROFILE)被视为一个文字字符串,它没有被描述。
  3. 实际上Helm并不评估值文件中的任何内容。它们是数据源,而不是模板。占位符(实际上是GO模板)只在模板文件中计算。
  4. 由于第3.点,您不能从另一个helm变量引用另一个helm变量。

如果您真的需要从Linux环境变量获取Spring概要文件,那么您可以通过在调用Helm install等时设置Helm变量来实现(尽管使用--set被认为是一种糟糕的做法):

helm install --set app.env.spring_profile=$SPRING_PROFILE ...

app.env.spring_profile无法在base-values.yaml中计算。您需要将其直接移动到模板文件中,例如:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  ...
  template:
    ...
    spec:
      containers:
        - name: my-app
          ...
          env:
            SPRING_PROFILES_ACTIVE: {{- .Values.app.env.spring_profile }},test

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

  • 我正在为高速公路车队制作一个排名表,我有一个查询,根据车队结果计算所需数据。我正在努力解决的问题是分数差异(得分和对手得分之间的差异)。 所有查询都正常工作,除了 我得到的结果是空的,我猜这很简单,任何帮助都会很好

  • 问题内容: 我有一个HELM值文件,如下所示: 还有一个相应的模板文件,它将获取此值并将其作为环境变量插入到容器中。 但是,当我运行头盔安装时,出现以下错误: 指向该行: 我相信我尝试将json字符串解析为多行环境变量的方式存在问题吗?ENVIRONMENT’dev’变量可以完美工作,而同一个YAML也可以与docker- compose完美工作。 问题答案: spring云数据流的文档中有一个类

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

  • 问题内容: 我有一个学校的作业,任务之一是解释很多小的计算,并解释为什么Java给您输出它给您的输出。 计算之一是: 1 +‘2’+ 3 这对我来说是一个词汇错误,因为老师在我的系统上使用了错误的“撇号”,但是我与其他同学交谈,他们告诉我他们得到了实际的输出,因此我开始阅读并发现了认为它应该表示一个char变量,并且我也了解 了系统的特定类型,所以我更改了符号以使其适用于我的系统,现在我得到了答案

  • 我有一个Vuex实例,其中包含两个变量: 我有我的主Vue实例,其中日期属性是从继承的: 我最初称之为不带任何额外参数,但是一旦和的值更改,我想调用上面的之类的函数。但是,当我更改和的值时,没有任何变化。 可能值得注意的是,当我使用Vue插件在Chrome中进行检查,并单击根组件时,视图中会突然显示更改?很奇怪