110 lines
2.9 KiB
Go
110 lines
2.9 KiB
Go
package internal
|
|
|
|
import (
|
|
"fmt"
|
|
"oc-k8s/utils"
|
|
"os"
|
|
)
|
|
|
|
func Help_Helm() {
|
|
fmt.Println(`
|
|
Helm commands: oc-k8s <action> helm
|
|
install - Install Helm
|
|
create - Install a helm release for the given environment (default: dev)
|
|
delete - Uninstall a helm release for the given environment (default: dev)
|
|
help - Show this help message
|
|
|
|
Usage:
|
|
oc-k8s install helm
|
|
oc-k8s create helm [env_folder] [release] [namespace]
|
|
env_folder - Helm config folder (required, default: .)
|
|
release - environnement selected (default: dev)
|
|
namespace - namespace selected (default: dev)
|
|
oc-k8s upgrade helm [env_folder] [release] [namespace]
|
|
env_folder - Helm config folder (required, default: .)
|
|
release - environnement selected (default: dev)
|
|
namespace - namespace selected (default: dev)
|
|
oc-k8s delete helm [release] [namespace]
|
|
release - environnement selected (default: dev)
|
|
namespace - namespace selected (default: dev)
|
|
oc-k8sh help helm`)
|
|
}
|
|
|
|
func Install_Helm() error {
|
|
utils.Exec("curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash")
|
|
utils.Exec("helm version")
|
|
return nil
|
|
}
|
|
|
|
func Delete_Helm(args ...string) error {
|
|
env := "dev"
|
|
namespace := "dev"
|
|
if len(args) > 0 {
|
|
env = args[0]
|
|
}
|
|
if len(args) > 1 {
|
|
namespace = args[1]
|
|
}
|
|
utils.Exec("helm uninstall " + env + " -n " + namespace)
|
|
utils.Exec("kubectl delete namespace " + namespace + " &")
|
|
return nil
|
|
}
|
|
|
|
func Create_Helm(args ...string) error {
|
|
folder := "."
|
|
release := "dev"
|
|
namespace := "dev"
|
|
if len(args) > 0 {
|
|
folder = args[0]
|
|
}
|
|
Delete_Cluster(args[1:]...)
|
|
|
|
if len(args) > 1 {
|
|
release = args[1]
|
|
}
|
|
if len(args) > 2 {
|
|
namespace = args[2]
|
|
}
|
|
clusterName := "opencloud"
|
|
if b, err := os.ReadFile(folder + "/" + release + "-values.yaml"); err == nil {
|
|
clusterName, _ = utils.Extract(string(b), "clusterName")
|
|
}
|
|
if err := utils.Exec("helm dependency update"); err != nil {
|
|
return err
|
|
}
|
|
if err := utils.Exec("helm dependency build"); err != nil {
|
|
return err
|
|
}
|
|
utils.Exec("kubectl delete sc longhorn-nor1")
|
|
utils.Exec("sudo ulimit -n 1000000")
|
|
if err := utils.Exec("helm install " + release + " " + clusterName + " -n " + namespace + " --create-namespace -f " + folder + "/" + release + "-values.yaml --debug"); err != nil {
|
|
return err
|
|
}
|
|
|
|
utils.Exec("kind get kubeconfig --name opencloud > ./deployed_config")
|
|
utils.Exec("kind export logs ./kind-logs")
|
|
return nil
|
|
}
|
|
|
|
func Upgrade_Helm(args ...string) error {
|
|
folder := "."
|
|
release := "dev"
|
|
namespace := "dev"
|
|
if len(args) > 0 {
|
|
folder = args[0]
|
|
}
|
|
Delete_Cluster(args[1:]...)
|
|
|
|
if len(args) > 1 {
|
|
release = args[1]
|
|
}
|
|
if len(args) > 2 {
|
|
namespace = args[2]
|
|
}
|
|
clusterName := "opencloud"
|
|
if b, err := os.ReadFile(folder + "/" + release + "-values.yaml"); err == nil {
|
|
clusterName, _ = utils.Extract(string(b), "clusterName")
|
|
}
|
|
return utils.Exec("helm upgrade " + release + " " + clusterName + " -n " + namespace + " --create-namespace -f " + folder + "/" + release + "-values.yaml")
|
|
}
|