2026-01-07 16:56:27 +01:00
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
2026-01-20 16:21:04 +01:00
|
|
|
"flag"
|
2026-01-07 16:56:27 +01:00
|
|
|
"fmt"
|
|
|
|
|
"oc-k8s/internal"
|
|
|
|
|
"os"
|
2026-01-20 16:21:04 +01:00
|
|
|
"slices"
|
2026-01-07 16:56:27 +01:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
defer func() {
|
|
|
|
|
if r := recover(); r != nil {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
if len(os.Args) < 2 {
|
|
|
|
|
internal.Help_Func()
|
2026-01-20 16:21:04 +01:00
|
|
|
fmt.Println("Error: Not enough arguments")
|
2026-01-07 16:56:27 +01:00
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if err := action(); err != nil {
|
2026-01-20 16:21:04 +01:00
|
|
|
if len(os.Args) > 2 && slices.Contains([]string{"start", "help", "stop"}, os.Args[1]) {
|
|
|
|
|
internal.Help_Func()
|
|
|
|
|
} else {
|
|
|
|
|
what := ""
|
|
|
|
|
if len(os.Args) > 2 {
|
|
|
|
|
what = os.Args[2]
|
|
|
|
|
}
|
|
|
|
|
switch what {
|
|
|
|
|
case "helm":
|
|
|
|
|
internal.Help_Helm()
|
|
|
|
|
case "k3s":
|
|
|
|
|
internal.Help_K3S()
|
|
|
|
|
case "kind":
|
|
|
|
|
internal.Help_Kind()
|
|
|
|
|
case "cluster":
|
|
|
|
|
internal.Help_Cluster()
|
|
|
|
|
case "db":
|
|
|
|
|
internal.Help_DB()
|
|
|
|
|
case "services":
|
|
|
|
|
internal.Help_Service()
|
|
|
|
|
case "values":
|
|
|
|
|
internal.Help_Values()
|
|
|
|
|
default:
|
|
|
|
|
internal.Help_Func()
|
|
|
|
|
}
|
|
|
|
|
flag.CommandLine.Parse(os.Args[3:])
|
|
|
|
|
}
|
|
|
|
|
fmt.Println("ERROR", err)
|
2026-01-07 16:56:27 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func action() error {
|
2026-01-20 16:21:04 +01:00
|
|
|
folder := flag.String("f", ".", "Folder to reach config/datas")
|
|
|
|
|
release := flag.String("r", "dev", "Release name in run")
|
|
|
|
|
namespace := flag.String("n", "dev", "Namespace in run")
|
|
|
|
|
branch := flag.String("b", "main", "Git branch/version of a OC build")
|
|
|
|
|
target := flag.String("y", "all", "Makefile build up mode")
|
|
|
|
|
dbName := flag.String("d", "opencloud", "DBName in use")
|
2026-01-21 12:03:02 +01:00
|
|
|
arch := flag.String("a", "amd64", "Arch expected")
|
|
|
|
|
version := flag.String("v", "v0.31.0", "version of arch")
|
2026-01-20 16:21:04 +01:00
|
|
|
confFile := flag.String("c", "", "Configuration files to map")
|
2026-01-21 12:03:02 +01:00
|
|
|
mUsr := flag.String("m", "admin", "Mongo user")
|
|
|
|
|
mPwd := flag.String("M", "admin", "Mongo password")
|
2026-01-20 16:21:04 +01:00
|
|
|
|
|
|
|
|
if len(os.Args) > 2 && slices.Contains([]string{"start", "help", "stop"}, os.Args[1]) {
|
|
|
|
|
flag.CommandLine.Parse(os.Args[2:])
|
|
|
|
|
} else if len(os.Args) > 3 {
|
|
|
|
|
flag.CommandLine.Parse(os.Args[3:])
|
|
|
|
|
} else {
|
|
|
|
|
flag.Parse()
|
|
|
|
|
}
|
|
|
|
|
|
2026-01-07 16:56:27 +01:00
|
|
|
action := os.Args[1]
|
|
|
|
|
switch action {
|
|
|
|
|
case "start":
|
2026-01-20 16:21:04 +01:00
|
|
|
internal.Start(*folder, *release, *namespace, *branch, *target)
|
2026-01-07 16:56:27 +01:00
|
|
|
case "stop":
|
2026-01-20 16:21:04 +01:00
|
|
|
internal.Stop(*folder, *release, *namespace)
|
2026-01-08 21:15:34 +01:00
|
|
|
case "extract":
|
|
|
|
|
what := os.Args[2]
|
|
|
|
|
switch what {
|
|
|
|
|
case "charts":
|
|
|
|
|
return internal.ExtractTrees("assets", "./opencloud-chart")
|
|
|
|
|
}
|
2026-01-07 16:56:27 +01:00
|
|
|
case "help":
|
2026-01-20 16:21:04 +01:00
|
|
|
what := ""
|
|
|
|
|
if len(os.Args) > 2 {
|
|
|
|
|
what = os.Args[2]
|
|
|
|
|
}
|
2026-01-07 16:56:27 +01:00
|
|
|
switch what {
|
|
|
|
|
case "helm":
|
|
|
|
|
internal.Help_Helm()
|
|
|
|
|
case "k3s":
|
|
|
|
|
internal.Help_K3S()
|
|
|
|
|
case "kind":
|
|
|
|
|
internal.Help_Kind()
|
|
|
|
|
case "cluster":
|
|
|
|
|
internal.Help_Cluster()
|
|
|
|
|
case "db":
|
|
|
|
|
internal.Help_DB()
|
|
|
|
|
case "services":
|
2026-01-08 21:15:34 +01:00
|
|
|
internal.Help_Service()
|
2026-01-07 16:56:27 +01:00
|
|
|
case "values":
|
|
|
|
|
internal.Help_Values()
|
|
|
|
|
default:
|
|
|
|
|
internal.Help_Func()
|
|
|
|
|
}
|
|
|
|
|
case "install":
|
2026-01-20 16:21:04 +01:00
|
|
|
what := ""
|
|
|
|
|
if len(os.Args) > 2 {
|
|
|
|
|
what = os.Args[2]
|
2026-01-08 21:15:34 +01:00
|
|
|
}
|
|
|
|
|
switch what {
|
|
|
|
|
case "helm":
|
|
|
|
|
return internal.Install_Helm()
|
|
|
|
|
case "k3s":
|
|
|
|
|
return internal.Install_K3S()
|
|
|
|
|
case "kind":
|
2026-01-20 16:21:04 +01:00
|
|
|
return internal.Install_Kind(*arch, *version)
|
2026-01-08 21:15:34 +01:00
|
|
|
default:
|
2026-01-20 16:21:04 +01:00
|
|
|
internal.Install_Func(*arch, *version)
|
2026-01-07 16:56:27 +01:00
|
|
|
}
|
|
|
|
|
case "create":
|
|
|
|
|
what := os.Args[2]
|
2026-01-20 16:21:04 +01:00
|
|
|
|
2026-01-07 16:56:27 +01:00
|
|
|
switch what {
|
|
|
|
|
case "helm":
|
2026-01-20 16:21:04 +01:00
|
|
|
|
|
|
|
|
return internal.Create_Helm(*folder, *release, *namespace)
|
2026-01-07 16:56:27 +01:00
|
|
|
case "cluster":
|
2026-01-20 16:21:04 +01:00
|
|
|
return internal.Create_Cluster(*folder, *release)
|
2026-01-07 16:56:27 +01:00
|
|
|
case "db":
|
2026-01-21 12:03:02 +01:00
|
|
|
return internal.Create_DB(folder, *release, *namespace, *dbName, *mUsr, *mPwd)
|
2026-01-07 16:56:27 +01:00
|
|
|
case "services":
|
2026-01-20 16:21:04 +01:00
|
|
|
return internal.Create_Service(*folder, *release, *branch, *target)
|
2026-01-07 16:56:27 +01:00
|
|
|
case "values":
|
2026-01-20 16:21:04 +01:00
|
|
|
return internal.Create_Values(folder, release, confFile)
|
2026-01-07 16:56:27 +01:00
|
|
|
default:
|
|
|
|
|
internal.Help_Func()
|
|
|
|
|
}
|
|
|
|
|
case "delete":
|
2026-01-20 16:21:04 +01:00
|
|
|
what := ""
|
|
|
|
|
if len(os.Args) > 2 {
|
|
|
|
|
what = os.Args[2]
|
2026-01-07 16:56:27 +01:00
|
|
|
}
|
|
|
|
|
switch what {
|
|
|
|
|
case "helm":
|
2026-01-20 16:21:04 +01:00
|
|
|
return internal.Delete_Helm(*release, *namespace)
|
2026-01-07 16:56:27 +01:00
|
|
|
case "cluster":
|
2026-01-20 16:21:04 +01:00
|
|
|
return internal.Delete_Cluster(*folder, *release)
|
2026-01-07 16:56:27 +01:00
|
|
|
case "db":
|
2026-01-21 12:03:02 +01:00
|
|
|
return internal.Delete_DB(*release, *namespace, *dbName, *mUsr, *mPwd)
|
2026-01-07 16:56:27 +01:00
|
|
|
default:
|
|
|
|
|
internal.Help_Func()
|
|
|
|
|
}
|
|
|
|
|
case "upgrade":
|
2026-01-20 16:21:04 +01:00
|
|
|
what := ""
|
|
|
|
|
if len(os.Args) > 2 {
|
|
|
|
|
what = os.Args[2]
|
2026-01-07 16:56:27 +01:00
|
|
|
}
|
|
|
|
|
switch what {
|
|
|
|
|
case "helm":
|
2026-01-20 16:21:04 +01:00
|
|
|
return internal.Upgrade_Helm(*folder, *release, *namespace)
|
2026-01-07 16:56:27 +01:00
|
|
|
case "db":
|
2026-01-21 12:03:02 +01:00
|
|
|
return internal.Upgrade_DB(folder, *release, *namespace, *dbName, *mUsr, *mPwd)
|
2026-01-07 16:56:27 +01:00
|
|
|
default:
|
|
|
|
|
internal.Help_Func()
|
|
|
|
|
}
|
|
|
|
|
default:
|
|
|
|
|
internal.Help_Func()
|
|
|
|
|
}
|
|
|
|
|
return nil
|
|
|
|
|
}
|