Yaqinda bir muammoni hal qilish kerak bo'lib qoldi. Loyiha k8s'ga deploy qilinganda Vault'dan secretsni olib containerni ichiga yaml formatda mount qilish kerak bo'lib qoldi. VSO (Vault Secrets Operator) da secretsni transform qilish imkoni bor lekin to'g'ridan-to'g'ri yaml formatga o'tkazish imkoni yo'q (yoki men topolmadim). Shuning uchun custom template yozishga to'g'ri keldi. Hozircha bu muammoni yechimi bo'lib turibdi.
{{- define "toYaml" }}
{{- $data := index . 0 -}}
{{- $indent := index . 1 -}}
{{- range $key, $value := $data }}
{{- if kindIs "map" $value }}
{{ $key | indent $indent }}:
{{- template "toYaml" (list $value (add $indent 2 | int))}}
{{- else if kindIs "slice" $value }}
{{ $key | indent $indent }}:
{{- range $i, $item := $value }}
{{- if kindIs "map" $item }}
- {{- template "toYaml" (list $item (add $indent 4 | int))}}
`- else `
- {{ $item }}
`- end `
`- end `
`- else `
{{ $key | indent $indent }}: {{ $value }}
`- end `
`- end `
`- end `
{{- template "toYaml" (list .Secrets 0) }}
Happy coding!
{{- define "toYaml" }}
{{- $data := index . 0 -}}
{{- $indent := index . 1 -}}
{{- range $key, $value := $data }}
{{- if kindIs "map" $value }}
{{ $key | indent $indent }}:
{{- template "toYaml" (list $value (add $indent 2 | int))}}
{{- else if kindIs "slice" $value }}
{{ $key | indent $indent }}:
{{- range $i, $item := $value }}
{{- if kindIs "map" $item }}
- {{- template "toYaml" (list $item (add $indent 4 | int))}}
`- else `
- {{ $item }}
`- end `
`- end `
`- else `
{{ $key | indent $indent }}: {{ $value }}
`- end `
`- end `
`- end `
{{- template "toYaml" (list .Secrets 0) }}
Happy coding!