feat: configurable common path prefix for values files (#408)

Removes duplicated declaration path for cleaner helmfile, for example, this configuration.

```
- chart: projectABC
  name: {{ .Environment.Name }}-projectABC
  namespace: abc
  version: {{ .Environment.Values.projectABC.chart.version }}
  valuesPathPrefix: ../values/{{ .Environment.Name }}/
  values:
  - common.yaml
  - project-abc.yaml
  - platform.yaml
  - ...
  secrets:
  - secrets.yaml
```
This commit is contained in:
Hung Tran Duc 2018-12-13 16:07:50 +07:00 committed by KUOKA Yusuke
parent 4b22d4fc78
commit 39bc28c23f
1 changed files with 5 additions and 2 deletions

View File

@ -109,6 +109,8 @@ type ReleaseSpec struct {
// The 'env' section is not really necessary any longer, as 'set' would now provide the same functionality
EnvValues []SetValue `yaml:"env"`
ValuesPathPrefix string `yaml:"valuesPathPrefix"`
// generatedValues are values that need cleaned up on exit
generatedValues []string
}
@ -1091,7 +1093,8 @@ func (state *HelmState) namespaceAndValuesFlags(helm helmexec.Interface, release
for _, value := range release.Values {
switch typedValue := value.(type) {
case string:
path := state.normalizePath(typedValue)
path := state.normalizePath(release.ValuesPathPrefix + typedValue)
if _, err := os.Stat(path); os.IsNotExist(err) {
return nil, err
}
@ -1129,7 +1132,7 @@ func (state *HelmState) namespaceAndValuesFlags(helm helmexec.Interface, release
}
}
for _, value := range release.Secrets {
path := state.normalizePath(value)
path := state.normalizePath(release.ValuesPathPrefix + value)
if _, err := os.Stat(path); os.IsNotExist(err) {
return nil, err
}