我的 values 文件中定义了一些接口,这些接口应当被转发给一个服务
values.yaml:
path:
如何实现最终渲染出这样的效果:
router-swap:
rule: "PathPrefix(/aa)||PathPrefix(/bb)||PathPrefix(/cc)"
service: swap-service
middlewares:
我已经看到了 join 但是我不知道如何使 list 中的每个元素增加 PathPrefix router-swap: rule: {{ join "||" .Values.path }} service: swap-service middlewares:
|      1ql562482472 OP 如果是 java list.stream().map(it->"PathPrefix(it)").collect(Collectors.join("||"))就能得到效果  但是 go 语言我找了半天好像没有相应的函数 | 
|  |      2awm47      2022-08-19 15:38:00 +08:00  1 在 Go 模板里比较麻烦一点,我想到两个方式实现你可以参考下: ```plain // templates/_helpers.tpl {{- define "rules.join" -}} {{- $rules := list "" -}} {{- range . -}} {{- $rules = append $rules (printf "PathPrefix(%q)" .) -}} {{- end -}} {{- join "||" (compact $rules) -}} {{- end -}} ``` ```plain // templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: {{ include "joinexample.fullname" . }} annotations: oneline: '{{- range (initial .Values.paths) -}} {{- printf "PathPrefix(%q)||" . -}} {{- end -}} {{- printf "PathPrefix(%q)" (last .Values.paths) -}}' byblock: {{ include "rules.join" .Values.paths }} ``` | 
|      3ql562482472 OP @jaynos Thanks ! 我认为第一种更干净一点,我采用第一种了 |