如何转换复杂对象列表并将其表示在值yaml图表中

时间:2018-10-30 07:24:50

标签: java spring-boot kubernetes kubernetes-helm

我具有以下春季YAML结构:

catalogParamter:
  - name: kota
    street: xxx
  - name: yyy
    street: kkkk

现在我希望这些值来自头盔图表中的YAML值

在春季YAML目录中,参数:$ {CATALOG_PARAMETER} 并在部署yaml和config yaml中定义它

以及来自值YAML的值

如何用值YAML表示catalogParamter。

1 个答案:

答案 0 :(得分:1)

这里有不同的选项。我建议放置application.yaml in a ConfigMap。然后,您可以使用以下方法公开值文件中的属性:

properties:
  catalogParamter:
    - name: kota
      street: xxx
    - name: yyy
      street: kkkk

并使用以下命令填充ConfigMap的数据部分:

data:
  application.yaml: |-
{{ toYaml .Values.properties | indent 4 }}

您可以then mount that ConfigMap进入/config目录,以便Spring Boot应用程序automatically read it

如果改为使用环境变量,则可以使用Spring Boot的relaxed binding将复杂的属性映射到环境变量。在图表中编码该转换可能很棘手,但您的情况似乎是名称-值对,因此我认为可以通过舵的range函数来完成。

另一个不同的模式是公开option to set env vars directly to the user。但是这样做的缺点是,用户必须了解env var格式,而使用宽松的绑定可能不直观。