第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Helm 模板中解壓 Go 映射值

在 Helm 模板中解壓 Go 映射值

Go
繁花不似錦 2023-08-07 11:21:49
我似乎無法找到一個簡單有效的解決方案來解決我想象的 Go 模板/Helm 中經(jīng)常出現(xiàn)的問題。基本上,給定一個像這樣的values.yaml:ingress:  hosts:  - host: busy-a.local    paths:    - backend:        serviceName:busy-a        servicePort: 80      path: /busy/[A-Z0-9]{1}和 templates/ingress.yaml 像這樣:apiVersion: extensions/v1beta1kind: Ingressmetadata:  name: {{.Values.project}}-ingress  annotations:    nginx.ingress.kubernetes.io/use-regex: "true"spec:  rules:  {{- range .Values.ingress.hosts }}    - host: {{ .host | quote }}      http:        paths:        {{- range .paths }}          - path: {{ .path }}            backend:              serviceName: {{ .backend.serviceName }} # this works              servicePort: {{ .backend.servicePort }} # but can we shorthand backend?        {{- end }}  {{- end }}backend但是,在 中“解壓”地圖不是更容易.paths range嗎backend: {{.backend}}?然而,它似乎并不是那樣工作的。...    paths:      - path: /busy/[A-Z0-9]{3}        backend: map[serviceName:busy-a servicePort:80]在 Go 模板或 Sprig 擴(kuò)展中解壓或分配整個對象的首選方法是什么?
查看完整描述

1 回答

?
小怪獸愛吃肉

TA貢獻(xiàn)1852條經(jīng)驗 獲得超1個贊

Helm 有幾個幾乎沒有記錄的功能,其中之一是toYaml.?它接受任意對象并以 YAML 格式寫出,不縮進(jìn)。

toYaml在您的情況下,您可以通過組合和來實現(xiàn)您想要的目標(biāo)indent

spec:

? ...

? ? ? ? ? ? backend:

{{ .backend | trim | indent 14 }}

{{/* above line intentionally at left margin */}}

由于toYaml可以很好地處理嵌套對象,因此考慮到您的輸入和輸出,我可能會將其應(yīng)用到更高的位置:


spec:

? rules:

? {{- range .Values.ingress.hosts }}

? ? - host: {{ .host | quote }}

? ? ? http:

? ? ? ? paths: {{- .paths | toYaml | trim | nindent 10 }}

? {{- end }}

toYaml總是會發(fā)出一個尾隨的換行符,所以我傾向于將trim其關(guān)閉,這樣我就可以更好地控制它。在最后一個示例中,我使用nindent插入前導(dǎo)換行符來使模板更加緊湊。


查看完整回答
反對 回復(fù) 2023-08-07
  • 1 回答
  • 0 關(guān)注
  • 164 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號