Adjust k8s
This commit is contained in:
@@ -10,41 +10,35 @@ import (
|
||||
|
||||
func Help_DB() {
|
||||
fmt.Println(`
|
||||
Cluster commands: oc-k8s <action> cluster
|
||||
DB commands: oc-k8s <action> db [options]
|
||||
create - Add datas in db
|
||||
replace - Replace datas in db
|
||||
delete - Delete datas in db
|
||||
help - Show this help message
|
||||
|
||||
Usage:
|
||||
oc-k8s create db [file_path] [release] [db_name] [env_folder]
|
||||
file_path - Datas folder files path (required)
|
||||
release - Release values name (default: dev)
|
||||
db_name - db name (default: opencloud)
|
||||
env_folder - Helm config folder (required, default: .)
|
||||
oc-k8s upgrade db [file_path] [release] [db_name] [env_folder]
|
||||
file_path - Datas folder files path (required)
|
||||
release - Release values name (default: dev)
|
||||
db_name - db name (default: opencloud)
|
||||
env_folder - Helm config folder (required, default: .)
|
||||
oc-k8s delete db [release] [db_name] [env_folder]
|
||||
release - Release values name (default: dev)
|
||||
db_name - db name (default: opencloud)
|
||||
env_folder - Helm config folder (required, default: .)
|
||||
oc-k8s create db --d [db_name] -r [release] -n [namespace] -f [folder]
|
||||
folder - Datas folder files path (required)
|
||||
release - Release values name (default: dev)
|
||||
namespace - Namespace values name (default: dev)
|
||||
db_name - db name (default: opencloud)
|
||||
folder - Helm config folder (required, default: .)
|
||||
oc-k8s upgrade db -d [db_name] -r [release] -n [namespace] -f [folder]
|
||||
folder - Datas folder files path (required)
|
||||
release - Release values name (default: dev)
|
||||
namespace - Namespace values name (default: dev)
|
||||
db_name - db name (default: opencloud)
|
||||
oc-k8s delete db -d [db_name] -r [release] -n [namespace] -f [folder]
|
||||
release - Release values name (default: dev)
|
||||
namespace - Namespace values name (default: dev)
|
||||
db_name - db name (default: opencloud)
|
||||
folder - Helm config folder (required, default: .)
|
||||
oc-k8s help db `)
|
||||
}
|
||||
|
||||
func Delete_DB(args ...string) error {
|
||||
release := "dev"
|
||||
db_name := "dev"
|
||||
if len(args) > 0 {
|
||||
release = args[0]
|
||||
}
|
||||
if len(args) > 1 {
|
||||
db_name = args[1]
|
||||
}
|
||||
podName := "$(kubectl get pods -n " + release + " -o=name | grep " + release + "-mongodb-* | sed 's|pod/||')"
|
||||
return utils.Exec("kubectl exec " + podName + ": -- mongosh --eval \"db.getSiblingDB('" + db_name + "').dropDatabase()\"")
|
||||
func Delete_DB(release string, namespace string, dbName string) error {
|
||||
podName := "$(kubectl get pods -n " + namespace + " -o=name | grep " + release + "-mongodb-* | sed 's|pod/||')"
|
||||
return utils.Exec("kubectl exec " + podName + ": -- mongosh --eval \"db.getSiblingDB('" + dbName + "').dropDatabase()\"")
|
||||
}
|
||||
|
||||
func getFileNames(folderPath string) []string {
|
||||
@@ -62,35 +56,25 @@ func getFileNames(folderPath string) []string {
|
||||
return fileNames
|
||||
}
|
||||
|
||||
func Create_DB(args ...string) error {
|
||||
filePath := ""
|
||||
if len(args) == 0 {
|
||||
func Create_DB(filePath *string, release string, namespace string, dbName string) error {
|
||||
if filePath == nil {
|
||||
return errors.New("missing db datas file path")
|
||||
} else {
|
||||
filePath = args[0]
|
||||
}
|
||||
release := "dev"
|
||||
db_name := "dev"
|
||||
if len(args) > 1 {
|
||||
release = args[1]
|
||||
}
|
||||
if len(args) > 2 {
|
||||
db_name = args[2]
|
||||
}
|
||||
podName := "$(kubectl get pods -n " + release + " -o=name | grep " + release + "-mongodb-* | sed 's|pod/||')"
|
||||
for _, fileName := range getFileNames(filePath) {
|
||||
podName := "$(kubectl get pods -n " + namespace + " -o jsonpath='{.items[0].metadata.name}')"
|
||||
for _, fileName := range getFileNames(*filePath) {
|
||||
fmt.Println("ADD file " + fileName + " in collection")
|
||||
if err := utils.Exec("kubectl cp " + fileName + " " + podName + ":/tmp/" + fileName); err != nil {
|
||||
fmt.Println("POD=" + podName + " && kubectl cp -n " + namespace + " " + *filePath + "/" + fileName + " \"$POD:/tmp/" + fileName + "\"")
|
||||
if err := utils.Exec("POD=" + podName + " && kubectl cp -n " + namespace + " " + *filePath + "/" + fileName + " \"$POD:/tmp/" + fileName + "\""); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := utils.Exec("kubectl exec " + podName + ": -- mongoimport --db " + db_name + " --collection " + strings.ReplaceAll(fileName, ".json", "") + " --file /tmp/" + fileName + " --jsonArray"); err != nil {
|
||||
if err := utils.Exec("POD=" + podName + " && kubectl exec -n " + namespace + " $POD: -- mongoimport --db " + dbName + " --collection " + strings.ReplaceAll(fileName, ".json", "") + " --file /tmp/" + fileName + " --jsonArray"); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func Upgrade_DB(args ...string) error {
|
||||
Delete_DB(args[1:]...)
|
||||
return Create_DB(args...)
|
||||
func Upgrade_DB(filePath *string, release string, namespace string, dbName string) error {
|
||||
Delete_DB(release, namespace, dbName)
|
||||
return Create_DB(filePath, release, namespace, dbName)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user