github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/templator/helm/mutate.go (about)

     1  package helm
     2  
     3  import (
     4  	"github.com/caos/orbos/internal/operator/boom/api/latest"
     5  	"github.com/caos/orbos/internal/operator/boom/templator"
     6  	"github.com/caos/orbos/mntr"
     7  )
     8  
     9  type TemplatorMutate interface {
    10  	templator.HelmApplication
    11  	HelmMutate(mntr.Monitor, *latest.ToolsetSpec, string) error
    12  }
    13  
    14  func (h *Helm) mutate(app interface{}, spec *latest.ToolsetSpec) error {
    15  
    16  	mutate, ok := app.(TemplatorMutate)
    17  	if ok {
    18  
    19  		logFields := map[string]interface{}{
    20  			"application": mutate.GetName().String(),
    21  			"overlay":     h.overlay,
    22  		}
    23  		mutateMonitor := h.monitor.WithFields(logFields)
    24  
    25  		mutateMonitor.WithFields(logFields).Debug("Mutate before apply")
    26  
    27  		resultfilepath := h.GetResultsFilePath(mutate.GetName(), h.overlay, h.templatorDirectoryPath)
    28  
    29  		if err := mutate.HelmMutate(mutateMonitor, spec, resultfilepath); err != nil {
    30  			return err
    31  		}
    32  	}
    33  
    34  	return nil
    35  }