小编Jim*_*ith的帖子

使用 toYaml 进行掌舵模板

我有 values.yml 文件,其中包含具有此格式和默认值的端口列表:

Ports:
  - number: 443
    protocol: http
Run Code Online (Sandbox Code Playgroud)

输出用作输入的端口列表的脚本为我提供了以下格式:

port_list=$(./get_ports.sh)

输出:

- 80
- 8080
Run Code Online (Sandbox Code Playgroud)

我希望生成的渲染模板是

Ports:
  - number: 80
  - number: 8080
Run Code Online (Sandbox Code Playgroud)

我将如何做到这一点?我在我的模板文件中尝试了以下内容:

{{- with .Values.Ports }}
Ports:
  {{- toYaml . | nindent 8 }}
{{- end }}
Run Code Online (Sandbox Code Playgroud)

使用 helm 模板和设置values.Ports=$port_list,它最终给了我一个管道和一个额外的破折号,如下所示,我不知道它们来自哪里,我如何根据输入完成我想要的格式?

Ports:
|-
  - number: 80
  - number: 8080
Run Code Online (Sandbox Code Playgroud)

作为奖励,当未指定协议时,我还希望在我的端口列表中有一个默认协议。

Ports:
  - number: 80
    protocol: http
  - number: 8080
    protocol: http
Run Code Online (Sandbox Code Playgroud)

有没有一种干净的方法可以通过模板来做到这一点?

yaml kubernetes kubernetes-helm

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

kubernetes ×1

kubernetes-helm ×1

yaml ×1