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) } } }