0

嗨,我们在 values.yaml 中有 listenerProcessor 数组,如下所示

listenerProcessor:
- name: "nbi-sbi"
  port: 99
  allowedPath:
  - "/sbi/test"
  - "/sbi/test123"

为此,我们需要合并我们预定义的一组 listenerProcessor 数组,该数组未通过 values.yaml 公开,如下所示

listenerProcessor:
- name: nbinorc
  port: 9910
  allowedPath: 
  - /nbi/norc/tmf641/v4/orders/
  - /nbi/norc/tmf645/v4/serviceQualification
- name: nbiuiv
  port: 9920
  allowedPath: 
  - /nbi/uiv/tmf640/v4/services/

所以要将这两个合并为单个属性并对其进行迭代,在 _helper.tpl 中定义了一个变量

{{- define "nifi.listener-processor.spec" -}}
listenerProcessor:
- name: nbinorc
  port: 9910
  allowedPath: 
  - /nbi/norc/tmf641/v4/orders/
  - /nbi/norc/tmf645/v4/serviceQualification
- name: nbiuiv
  port: 9920
  allowedPath: 
  - /nbi/uiv/tmf640/v4/services/
{{ toYaml .Values.listenerProcessor.ports }}
{{- end -}}

现在我需要在 NOTES.txt 中的.name.port上对其进行迭代,但它给出了错误“<.name>: can't evaluate field name in type interface {}”。在 NOTES.txt 我有这个

{{- $listenerProcessor := (include "nifi.listener-processor.spec" . ) }}
{{- range $index, $element :=  fromYaml $listenerProcessor }}
  {{ .name }}
  {{ .port }}
{{- end }}

当我只打印$element & $index这些值时,它显示在输出下方

NOTES:
$NIFI_CONF_DIRECTORY_PATH/extensions directory"
  
 [map[allowedPath:[/nbi/norc/tmf641/v4/orders/ /nbi/norc/tmf645/v4/serviceQualification] name:nbinorc port:9910] map[allowedPath:[/nbi/uiv/tmf640/v4/services/] name:nbiuiv port:9920] map[allowedPath:[/sbi/test /sbi/test123] name:nbi-sbi port:99]]

监听处理器

4

1 回答 1

0

知道了 使用下面的代码,我们需要有另一个变量,而不是将它传递给范围

{{- $listenerProcessor :=  (include "nifi.listener-processor.spec" . ) }}
{{- $test := fromYaml $listenerProcessor }}
{{- range $index, $element := $test.listenerProcessor }}
  {{ .name }} {{ .port }} {{ .allowedPath }}
{{- end }}
于 2021-11-09T17:03:29.240 回答