helmfile/pkg
Nils 753de35ee0
Add readDir as a templating function (#1934)
Adds a new templating function called `readDir`. With `readDir` users can read the contents of a specified directory and get a list of all contained files. This is useful when reading a bunch of files from a directory. The following example shows a snippet of a values file for configuring a Logstash deployment. Using only `readFile`, a user must specify each file by hand and adjust this list as the number of files to be read grows.
```yaml
logstash:
  configs:
    logstash.yml: |
      {{- tpl (readFile "config/logstash.yml.gotmpl") . | nindent 6 }}
    jvm.options: |
      {{- readFile "config/jvm.options" | nindent 6 }}
    pipelines.yml: |
      {{- readFile "config/pipelines.yml" | nindent 6 }}
  pipelines:
    beats-log4j.conf: |
      {{- readFile "config/pipelines/beats-log4j.conf" | nindent 6 }}
    nginx-access.conf: |
      {{- readFile "config/pipelines/nginx-access.conf" | nindent 6 }}
    nginx-error.conf: |
      {{- readFile "config/pipelines/nginx-error.conf" | nindent 6 }}
    syslog-logs.conf: |
      {{- readFile "config/pipelines/syslog-logs.conf" | nindent 6 }}
    tcp-logs.conf: |
      {{- readFile "config/pipelines/tcp-logs.conf" | nindent 6 }}
    udp-debug.conf: |
      {{- readFile "config/pipelines/udp-debug.conf" | nindent 6 }}
    udp-logs.conf: |
      {{- readFile "config/pipelines/udp-logs.conf" | nindent 6 }}
  certificates:
    ca.crt: |
      {{- readFile "config/certificates/ca.crt" | nindent 6 }}
    logstash.crt: |
      {{- readFile "config/certificates/logstash.crt" | nindent 6 }}
    logstash.key: |
      {{- readFile "config/certificates/logstash.key" | nindent 6 }}
```
With `readDir` the above snippet can be rewritten as follows:
```yaml
logstash:
  configs:
  {{- range readDir "config" }}
    {{ base . }}: |
      {{- if hasSuffix "gotmpl" . }}
          {{- tpl (readFile .) $ | nindent 6 }}
      {{- else }}
          {{- readFile . | nindent 6 }}
      {{- end }}
  {{- end }}
  pipelines:
  {{- range readDir "config/pipelines" }}
    {{ base . }}: |
      {{- readFile . | nindent 6 }}
  {{- end }}
  certificates:
  {{- range readDir "config/certificates" }}
    {{ base . }}: |
      {{- readFile . | nindent 6 }}
  {{- end }}
```
2022-01-10 17:22:24 +09:00
..
app feat: Option to pass kubeVersion to helm template (#2002) 2022-01-07 09:05:03 +09:00
argparser Bump sprig to v3.1.0 and mergo 3.11 (#1456) 2020-09-04 09:58:54 +09:00
environment Fix: populate .Values regardless of prestate success (#1202) 2020-04-17 09:18:01 +09:00
event Fix some hook log not honoring log level (#1769) 2021-04-10 16:50:42 +09:00
exectest Add support for --insecure-skip-tls-verify flag on helm repo add command (#1990) 2021-12-21 09:18:57 +09:00
helmexec Add support for --insecure-skip-tls-verify flag on helm repo add command (#1990) 2021-12-21 09:18:57 +09:00
maputil Add indexed key support to --state-values-set (#1042) 2019-12-17 07:31:42 +09:00
plugins feat(template): added secret template function (#1221) 2020-04-25 21:10:02 +09:00
remote Fix error on concurrent go-getter on same URL (#1669) 2021-02-05 09:02:21 +09:00
state Set postsync and cleanup error (#2009) 2022-01-10 17:11:13 +09:00
testhelper Fix filepath handling on Windows (#1754) 2021-05-02 09:22:25 +09:00
tmpl Add readDir as a templating function (#1934) 2022-01-10 17:22:24 +09:00