Add envvar interpolation for names and namespaces

This commit is contained in:
Daniel 2018-04-05 19:05:37 +02:00
parent 283848c594
commit 191d9ef1a2
1 changed files with 16 additions and 3 deletions

View File

@ -165,6 +165,11 @@ func (state *HelmState) SyncReleases(helm helmexec.Interface, additionalValues [
for w := 1; w <= workerLimit; w++ { for w := 1; w <= workerLimit; w++ {
go func() { go func() {
for release := range jobQueue { for release := range jobQueue {
nameRendered, err := renderTemplateString(release.Name)
if err != nil {
errQueue <- err
doneQueue <- true
}
state.applyDefaultsTo(release) state.applyDefaultsTo(release)
flags, flagsErr := flagsForRelease(helm, state.BaseChartPath, release) flags, flagsErr := flagsForRelease(helm, state.BaseChartPath, release)
if flagsErr != nil { if flagsErr != nil {
@ -194,7 +199,7 @@ func (state *HelmState) SyncReleases(helm helmexec.Interface, additionalValues [
} }
chart := normalizeChart(state.BaseChartPath, release.Chart) chart := normalizeChart(state.BaseChartPath, release.Chart)
if err := helm.SyncRelease(release.Name, chart, flags...); err != nil { if err := helm.SyncRelease(nameRendered, chart, flags...); err != nil {
errQueue <- err errQueue <- err
} }
doneQueue <- true doneQueue <- true
@ -231,6 +236,10 @@ func (state *HelmState) DiffReleases(helm helmexec.Interface, additionalValues [
for i := 0; i < len(state.Releases); i++ { for i := 0; i < len(state.Releases); i++ {
release := &state.Releases[i] release := &state.Releases[i]
renderedName, err := renderTemplateString(release.Name)
if err != nil {
errs = append(errs, err)
}
wg.Add(1) wg.Add(1)
go func(wg *sync.WaitGroup, release *ReleaseSpec) { go func(wg *sync.WaitGroup, release *ReleaseSpec) {
// Plugin command doesn't support explicit namespace // Plugin command doesn't support explicit namespace
@ -252,7 +261,7 @@ func (state *HelmState) DiffReleases(helm helmexec.Interface, additionalValues [
flags = append(flags, "--values", valfile) flags = append(flags, "--values", valfile)
} }
if len(errs) == 0 { if len(errs) == 0 {
if err := helm.DiffRelease(release.Name, normalizeChart(state.BaseChartPath, release.Chart), flags...); err != nil { if err := helm.DiffRelease(renderedName, normalizeChart(state.BaseChartPath, release.Chart), flags...); err != nil {
errs = append(errs, err) errs = append(errs, err)
} }
} }
@ -386,7 +395,11 @@ func flagsForRelease(helm helmexec.Interface, basePath string, release *ReleaseS
flags = append(flags, "--verify") flags = append(flags, "--verify")
} }
if release.Namespace != "" { if release.Namespace != "" {
flags = append(flags, "--namespace", release.Namespace) namespaceRendered, err := renderTemplateString(release.Namespace)
if err != nil {
return nil, err
}
flags = append(flags, "--namespace", namespaceRendered)
} }
for _, value := range release.Values { for _, value := range release.Values {
valfile := filepath.Join(basePath, value) valfile := filepath.Join(basePath, value)