command
This commit is contained in:
109
internal/helm.go
Normal file
109
internal/helm.go
Normal file
@@ -0,0 +1,109 @@
|
||||
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")
|
||||
}
|
||||
Reference in New Issue
Block a user