Newer
Older
)
func RunCMD(name string, args ...string) (err error, stdout, stderr []string) {
// helm template -f base.yaml -f base.values.yaml -f ns.yaml -f ns.values.yaml
// ytt -f /chart-folder -f base.yaml -f ns.yaml -v ... -v ...
c := cmd.NewCmd(name, args...)
statusChan := c.Start()
status := <-statusChan
if status.Error != nil {
return err, status.Stdout, status.Stderr
}
stdout = status.Stdout
stderr = status.Stderr
return
}
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
func NewCmdConfig(logger zerolog.Logger, configDir string, namespace string) (*CmdConfig, error) {
var cmdConfig CmdConfig
cmdConfig.Namespace = namespace
cmdConfig.Logger = logger
baseCfg, err := NewConfig(configDir)
if err != nil {
return nil, err
}
nsCfgDir := filepath.Join(configDir, namespace)
nsCfg, err := NewConfig(nsCfgDir)
if err != nil && err != os.ErrNotExist {
return nil, err
}
// TODO:
// - merge baseCfg & nsCfg according to magic
// - hydrate
return &cmdConfig, nil
}
type CmdConfig struct {
Spec CmdSpec
Namespace string
Logger zerolog.Logger
}
type CmdSpec struct {
Variables []Variable
Charts CmdChart
}
type CmdChart struct {
Helm map[string]CmdHelmChart
Ytt map[string]CmdYttChart
}
type CmdHelmChart struct {
Type string
Name string
Values []string
}
type CmdYttChart struct {
Type string
Name string
Files []string
Values []Value
}