github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/internal/operator/boom/templator/helm/helmcommand/template.go (about) 1 package helmcommand 2 3 import ( 4 "path/filepath" 5 "strings" 6 7 helper2 "github.com/caos/orbos/internal/utils/helper" 8 ) 9 10 type TemplateConfig struct { 11 TempFolderPath string 12 ChartName string 13 ReleaseName string 14 ReleaseNamespace string 15 ValuesFilePath string 16 } 17 18 func Template(conf *TemplateConfig) ([]byte, error) { 19 var releaseNameParam, releaseNamespaceParam, valuesParam string 20 if conf.ReleaseName != "" { 21 releaseNameParam = strings.Join([]string{"--name", conf.ReleaseName}, " ") 22 } 23 if conf.ReleaseNamespace != "" { 24 releaseNamespaceParam = strings.Join([]string{"--namespace", conf.ReleaseNamespace}, " ") 25 } 26 if conf.ValuesFilePath != "" { 27 valuesParam = strings.Join([]string{"--values", conf.ValuesFilePath}, " ") 28 } 29 30 chartHomeAbs, err := helper2.GetAbsPath(conf.TempFolderPath, chartsFolder) 31 if err != nil { 32 return nil, err 33 } 34 chartStr := filepath.Join(chartHomeAbs, conf.ChartName) 35 36 command := addIfNotEmpty("template", releaseNameParam) 37 command = addIfNotEmpty(command, releaseNamespaceParam) 38 command = addIfNotEmpty(command, valuesParam) 39 command = addIfNotEmpty(command, chartStr) 40 41 return doHelmCommandOutput(conf.TempFolderPath, command) 42 }