Minor tweaks for `helmfile write-values` (#1533)
See 1 and 3 in https://github.com/roboll/helmfile/issues/1460#issuecomment-691863465
This commit is contained in:
parent
d9286ed8f6
commit
c170b5a621
|
|
@ -1449,8 +1449,6 @@ func (a *App) writeValues(r *Run, c WriteValuesConfigProvider) (bool, []error) {
|
||||||
st := r.state
|
st := r.state
|
||||||
helm := r.helm
|
helm := r.helm
|
||||||
|
|
||||||
allReleases := st.GetReleasesWithOverrides()
|
|
||||||
|
|
||||||
toRender, err := a.getSelectedReleases(r)
|
toRender, err := a.getSelectedReleases(r)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, []error{err}
|
return false, []error{err}
|
||||||
|
|
@ -1474,32 +1472,25 @@ func (a *App) writeValues(r *Run, c WriteValuesConfigProvider) (bool, []error) {
|
||||||
|
|
||||||
var errs []error
|
var errs []error
|
||||||
|
|
||||||
// Traverse DAG of all the releases so that we don't suffer from false-positive missing dependencies
|
// Note: We don't calculate the DAG of releases here unlike other helmfile operations,
|
||||||
st.Releases = allReleases
|
// because there's no need to do so for just writing values.
|
||||||
|
// See the first bullet in https://github.com/roboll/helmfile/issues/1460#issuecomment-691863465
|
||||||
if len(releasesToWrite) > 0 {
|
if len(releasesToWrite) > 0 {
|
||||||
_, writeErrs := withDAG(st, helm, a.Logger, false, a.Wrap(func(subst *state.HelmState, helm helmexec.Interface) []error {
|
var rs []state.ReleaseSpec
|
||||||
var rs []state.ReleaseSpec
|
|
||||||
|
|
||||||
for _, r := range subst.Releases {
|
for _, r := range releasesToWrite {
|
||||||
if r2, ok := releasesToWrite[state.ReleaseToID(&r)]; ok {
|
rs = append(rs, r)
|
||||||
rs = append(rs, r2)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
subst.Releases = rs
|
|
||||||
|
|
||||||
opts := &state.WriteValuesOpts{
|
|
||||||
Set: c.Set(),
|
|
||||||
OutputFileTemplate: c.OutputFileTemplate(),
|
|
||||||
}
|
|
||||||
return subst.WriteReleasesValues(helm, c.Values(), opts)
|
|
||||||
}))
|
|
||||||
|
|
||||||
if writeErrs != nil && len(writeErrs) > 0 {
|
|
||||||
errs = append(errs, writeErrs...)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
st.Releases = rs
|
||||||
|
|
||||||
|
opts := &state.WriteValuesOpts{
|
||||||
|
Set: c.Set(),
|
||||||
|
OutputFileTemplate: c.OutputFileTemplate(),
|
||||||
|
}
|
||||||
|
errs = st.WriteReleasesValues(helm, c.Values(), opts)
|
||||||
}
|
}
|
||||||
|
|
||||||
return true, errs
|
return true, errs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2651,7 +2651,7 @@ func (st *HelmState) GenerateOutputFilePath(release *ReleaseSpec, outputFileTemp
|
||||||
sb.WriteString(release.Name)
|
sb.WriteString(release.Name)
|
||||||
|
|
||||||
if outputFileTemplate == "" {
|
if outputFileTemplate == "" {
|
||||||
outputFileTemplate = filepath.Join("{{ .State.BaseName }}-{{ .State.AbsPathSHA1 }}", "{{ .Release.Name}}.yaml")
|
outputFileTemplate = filepath.Join("{{ .State.BaseName }}-{{ .State.AbsPathSHA1 }}", "{{ .Release.Name }}.yaml")
|
||||||
}
|
}
|
||||||
|
|
||||||
t, err := template.New("output-file").Parse(outputFileTemplate)
|
t, err := template.New("output-file").Parse(outputFileTemplate)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue