当前位置: 首页 > 面试题库 >

如何在Yaml文件(Helm)中使用json变量

沃皓轩
2023-03-14
问题内容

我有一个HELM值文件,如下所示:

service:
  environment: dev
  spring_application_json: >-
    {
      "spring" : {
        "boot" : {
          "admin" : {
            "client" : {
              "enabled" : "false",
              "url" : "http://website1",
              "instance" : {
                "service-base-url" : "http://website2",
                "management-base-url" : "http://website3"
              }
            }
          }
        }
      }
    }

还有一个相应的模板文件,它将获取此值并将其作为环境变量插入到容器中。

spec:
  replicas: {{ .Values.replicaCount }}
  template:
    spec:
      imagePullSecrets:
        - name: {{ .Values.image.pullSecret }}
      containers:
        - name: {{ .Chart.Name }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          env:
            - name: ENVIRONMENT
              value: "{{ .Values.service.environment }}"
            - name: SPRING_APPLICATION_JSON
              value: "{{ .Values.service.spring_application_json }}"

但是,当我运行头盔安装时,出现以下错误:

Error: YAML parse error on deployment.yaml: error converting YAML to JSON: yaml: line 40: did not find expected key

指向该行:

value: "{{ .Values.service.spring_application_json }}"

我相信我尝试将json字符串解析为多行环境变量的方式存在问题吗?ENVIRONMENT’dev’变量可以完美工作,而同一个YAML也可以与docker-
compose完美工作。


问题答案:

spring云数据流的文档中有一个类似于此示例的示例,但是其文档中的格式已将引号转义。

通过将values文件条目更改为以下内容,我能够重新创建错误并克服错误:

service:
  spring_application_json:
    {
      "spring" : {
        "boot" : {
          "admin" : {
            "client" : {
              "enabled" : "false",
              "url" : "http://website1",
              "instance" : {
                "service-base-url" : "http://website2",
                "management-base-url" : "http://website3"
              }
            }
          }
        }
      }
    }

并将部署条目添加到:

    - name: SPRING_APPLICATION_JSON
      value: {{ .Values.service.spring_application_json | toJson | quote }}

请注意,此部分周围没有引号,因为无论如何都会处理该引号。



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

  • 问题内容: 首先,我是Javascript领域的新手。我有一个JSON文件,例如: 我一直在做很多关于如何将此文件重新带回脚本中的研究,只是找到了将字符串编码为JSON文件的方法。基本上,我想通过javascript读取此文件,例如…(我知道这不是您编码的方式) 有人可以给我明确的指示,说明如何执行此操作。记住,我是一个新手,需要具体说明,因为我不符合javascript行话。 问题答案: 首先,

  • 考虑以下代码: 我唯一发现的是: dump(Object data)方法接受Java对象并生成YAML文档 和 是只有我一个人,还是文档感觉非常神秘和指定?其中一半是关于我甚至从未听说过的特殊应用。我只看着它就觉得自己很傻,这让我有点生气。 不管怎样;如果你能给我任何帮助,我将不胜感激。

  • 问题内容: 如何在Python中解析YAML文件? 问题答案: 不依赖标头的最简单,最纯净的方法是(文档),可以通过以下方式安装: 就是这样。一个普通的函数也存在,但是除非你明确需要提供的任意对象序列化/反序列化,以避免引入执行任意代码的可能性,否则通常应首选该函数。

  • 当我用它以以下错误停止: 我不是舒尔,但似乎。env文件不支持变量的使用。

  • 问题内容: 我有json文件,并且在此文件中是一些json编码的数据。 我想在文件中获取此数据并在JavaScript中处理该数据。但是不知道如何在.html文件中连接connect.json文件? 请告诉我。这是我的 json 文件: 考虑到我正在从服务器获取json文件,如何在html中使用该文件,以便可以在html页面的表中显示数据。我正在使用JavaScript解析json文件。我是这个领