46 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|