Better contruction, changed mod name

This commit is contained in:
2021-12-01 08:31:51 +01:00
parent bee8b48f16
commit a36811020d
3 changed files with 38 additions and 34 deletions

45
main.go
View File

@@ -3,9 +3,10 @@ package main
import (
"bytes"
"flag"
"helm-compose/compose"
"helm-compose/generator"
"helm-compose/helm"
"fmt"
"katenary/compose"
"katenary/generator"
"katenary/helm"
"os"
"path/filepath"
"strings"
@@ -16,15 +17,21 @@ import (
var ComposeFile = "docker-compose.yaml"
var AppName = "MyApp"
var AppVersion = "0.0.1"
var AppVersion = "master"
func main() {
flag.StringVar(&ComposeFile, "compose", ComposeFile, "set the compose file to parse")
flag.StringVar(&AppName, "appname", AppName, "Give the helm chart app name")
flag.StringVar(&AppVersion, "appversion", AppVersion, "Set the chart appVersion")
version := flag.Bool("version", false, "Show version and exist")
flag.Parse()
if *version {
fmt.Println(AppVersion)
os.Exit(0)
}
p := compose.NewParser(ComposeFile)
p.Parse(AppName)
wait := sync.WaitGroup{}
@@ -33,8 +40,9 @@ func main() {
for name, s := range p.Data.Services {
wait.Add(1)
// it's mandatory to make the build in goroutines because some dependencies can
// wait for a port number. So the entire services are built in parallel.
// it's mandatory to build in goroutines because some dependencies can
// wait for a port number discovery.
// So the entire services are built in parallel.
go func(name string, s compose.Service) {
o := generator.CreateReplicaObject(name, s)
files[name] = o
@@ -48,6 +56,9 @@ func main() {
templatesDir := filepath.Join(dirname, "templates")
os.MkdirAll(templatesDir, 0755)
// to generate notes, we need to keep an Ingresses list
ingresses := make(map[string]*helm.Ingress)
for n, f := range files {
for _, c := range f {
kind := c.(helm.Kinded).Get()
@@ -84,6 +95,14 @@ func main() {
}
fp.WriteString(line + "\n")
}
case *helm.Ingress:
ingresses[n] = c // keep it to generate notes
enc := yaml.NewEncoder(fp)
enc.SetIndent(2)
fp.WriteString("{{- if .Values." + n + ".ingress.enabled -}}\n")
enc.Encode(c)
fp.WriteString("{{- end -}}")
default:
enc := yaml.NewEncoder(fp)
enc.SetIndent(2)
@@ -93,17 +112,6 @@ func main() {
}
}
for name, ing := range generator.Ingresses {
fname := filepath.Join(templatesDir, name+".ingress.yaml")
fp, _ := os.Create(fname)
enc := yaml.NewEncoder(fp)
enc.SetIndent(2)
fp.WriteString("{{- if .Values." + name + ".ingress.enabled -}}\n")
enc.Encode(ing)
fp.WriteString("{{- end -}}")
fp.Close()
}
fp, _ := os.Create(filepath.Join(dirname, "values.yaml"))
enc := yaml.NewEncoder(fp)
enc.SetIndent(2)
@@ -124,7 +132,6 @@ func main() {
fp.Close()
fp, _ = os.Create(filepath.Join(templatesDir, "NOTES.txt"))
fp.WriteString(helm.GenNotes(generator.Ingresses))
fp.WriteString(helm.GenNotes(ingresses))
fp.Close()
}