🦔
Helmチャートの.Files.Globを使ってファイル追加を動的に反映させる方法
.Files.Glob
As your chart grows, you may find you have a greater need to organize your files more, and so we provide a Files.Glob(pattern string) method to assist in extracting certain files with all the flexibility of glob patterns.
特定パターンのファイルを読み取って自動的に拡張する。という趣旨。
以下の場合、filesディレクトリにどんどん.yamlを追加していけば、configmap側も自動的に読み込んで拡張してくれるというもの。
ディレクトリ構造
.
├── Chart.yaml
├── charts
├── files
│ ├── test1.yaml
│ ├── test2.yaml
│ └── test3.yaml
├── templates
│ └── configmap.yaml
└── values.yaml
files/test1.yaml
name: aaa
files/test2.yaml
name: bbb
files/test3.yaml
name: ccc
template/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: test-config
data:
{{- $currentScope := . -}}
{{- range $path, $_ := .Files.Glob "files/**.yaml" }}
{{ (base $path) }}: |-
{{ tpl ($currentScope.Files.Get $path) $currentScope | indent 4 }}
{{- end }}
helm templateコマンド実行
---
# Source: charts/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: test-config
data:
test1.yaml: |-
name: aaa
test2.yaml: |-
name: bbb
test3.yaml: |-
name: ccc
参考
Discussion