Files
kube-forge/cmd/main/main.go
2024-04-25 22:15:40 +03:00

46 lines
1.1 KiB
Go

package main
import (
"flag"
"kube-forge/pkg/config"
"kube-forge/pkg/kubespray"
"kube-forge/pkg/templates"
"os"
)
func parseArgs() (string, string, string, string) {
var password string
var configPath string
var dataDir string
var tags string
flag.StringVar(&password, "p", "", "Password to access hosts")
flag.StringVar(&configPath, "c", "/etc/kube-forge/config.yaml", "Path to config file")
flag.StringVar(&dataDir, "d", "/var/lib/kube-forge", "Path to data dir")
flag.StringVar(&tags, "t", "", "List of tags to apply (ex: ingress,dns)")
flag.Parse()
return password, configPath, dataDir, tags
}
func main() {
password, configPath, dataDir, tags := parseArgs()
config := config.CreateConfig(configPath, dataDir, password)
repositories, releases := templates.GetHelmAppsConfigData()
config.Repositories = repositories
config.Releases = releases
templates.ApplyTemplates()
for _, cmd := range os.Args {
switch cmd {
case "apply":
kubespray.InstallCluster(tags)
kubespray.CopyK8SAdminConfig("k8s-admin.conf")
case "reset":
kubespray.ResetCluster()
case "upgrade":
kubespray.UpgradeCluster(tags)
}
}
}