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  }