Merge pull request #7 from natevecc/update-env-var-errors

Fixed env vars error handling
This commit is contained in:
rob boll 2017-05-23 10:42:26 -04:00 committed by GitHub
commit 2abc93cc62
1 changed files with 16 additions and 8 deletions

View File

@ -86,18 +86,19 @@ func (state *HelmState) SyncCharts(helm helmexec.Interface, additonalValues []st
for _, chart := range state.Charts { for _, chart := range state.Charts {
wg.Add(1) wg.Add(1)
go func(wg *sync.WaitGroup, chart ChartSpec) { go func(wg *sync.WaitGroup, chart ChartSpec) {
flags, err := flagsForChart(&chart) flags, flagsErr := flagsForChart(&chart)
if flagsErr != nil {
errs = append(errs, flagsErr)
}
for _, value := range additonalValues { for _, value := range additonalValues {
wd, err := os.Getwd() wd, wdErr := os.Getwd()
if err != nil { if wdErr != nil {
errs = append(errs, err) errs = append(errs, wdErr)
} }
valfile := filepath.Join(wd, value) valfile := filepath.Join(wd, value)
flags = append(flags, "--values", valfile) flags = append(flags, "--values", valfile)
} }
if err != nil { if len(errs) == 0 {
errs = append(errs, err)
} else {
if err := helm.SyncChart(chart.Name, chart.Chart, flags...); err != nil { if err := helm.SyncChart(chart.Name, chart.Chart, flags...); err != nil {
errs = append(errs, err) errs = append(errs, err)
} }
@ -164,14 +165,21 @@ func flagsForChart(chart *ChartSpec) ([]string, error) {
} }
if len(chart.EnvValues) > 0 { if len(chart.EnvValues) > 0 {
val := []string{} val := []string{}
envValErrs := []string{}
for _, set := range chart.EnvValues { for _, set := range chart.EnvValues {
value, isSet := os.LookupEnv(set.Value) value, isSet := os.LookupEnv(set.Value)
if isSet { if isSet {
val = append(val, fmt.Sprintf("%s=%s", set.Name, value)) val = append(val, fmt.Sprintf("%s=%s", set.Name, value))
} else { } else {
return nil, errors.New(fmt.Sprintf("Could not find environment var: %s. Please make sure it is set and try again.", set.Name)) errMsg := fmt.Sprintf("\t%s", set.Value)
envValErrs = append(envValErrs, errMsg)
} }
} }
if len(envValErrs) != 0 {
joinedEnvVals := strings.Join(envValErrs, "\n")
errMsg := fmt.Sprintf("Environment Variables not found. Please make sure they are set and try again:\n%s", joinedEnvVals)
return nil, errors.New(errMsg)
}
flags = append(flags, "--set", strings.Join(val, ",")) flags = append(flags, "--set", strings.Join(val, ","))
} }
return flags, nil return flags, nil