github.com/helmwave/helmwave@v0.36.4-0.20240509190856-b35563eba4c6/pkg/plan/build_values.go (about) 1 package plan 2 3 import ( 4 "context" 5 6 "github.com/helmwave/helmwave/pkg/helper" 7 "github.com/helmwave/helmwave/pkg/parallel" 8 "github.com/helmwave/helmwave/pkg/release" 9 log "github.com/sirupsen/logrus" 10 ) 11 12 func (p *Plan) buildValues(ctx context.Context) error { 13 if err := p.ValidateValuesBuild(); err != nil { 14 return err 15 } 16 17 wg := parallel.NewWaitGroup() 18 wg.Add(len(p.body.Releases)) 19 20 for _, rel := range p.body.Releases { 21 go func() { 22 defer wg.Done() 23 24 wg.ErrChan() <- p.buildReleaseValues(ctx, rel) 25 }() 26 } 27 28 return wg.Wait() 29 } 30 31 func (p *Plan) buildReleaseValues(ctx context.Context, rel release.Config) error { 32 err := rel.BuildValues(ctx, p.tmpDir, p.templater) 33 if err != nil { 34 log.Errorf("❌ %s values: %v", rel.Uniq(), err) 35 36 return err 37 } else { 38 vals := helper.SlicesMap(rel.Values(), func(v release.ValuesReference) string { 39 return v.Dst 40 }) 41 42 if len(vals) == 0 { 43 rel.Logger().Info("🔨 no values provided") 44 } else { 45 log.WithField("release", rel.Uniq()).WithField("values", vals).Infof("✅ found %d values count", len(vals)) 46 } 47 } 48 49 return nil 50 }