[agent-operator] - cmii deploy part
This commit is contained in:
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
v1 "k8s.io/api/apps/v1"
|
||||
autoscalingv1 "k8s.io/api/autoscaling/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
@@ -13,12 +14,16 @@ import (
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/clientcmd"
|
||||
"k8s.io/client-go/tools/remotecommand"
|
||||
"os"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
image2 "wdd.io/agent-common/image"
|
||||
"wdd.io/agent-common/logger"
|
||||
"wdd.io/agent-common/utils"
|
||||
"wdd.io/agent-operator/config"
|
||||
)
|
||||
|
||||
var log = logger.Log
|
||||
@@ -45,11 +50,83 @@ const (
|
||||
workerThread = 4
|
||||
)
|
||||
|
||||
var CmiiDevClusterK8sConfig string
|
||||
var CmiiCoreClusterK8sConfig string
|
||||
|
||||
func init() {
|
||||
|
||||
switch runtime.GOOS {
|
||||
case "windows":
|
||||
CmiiDevClusterK8sConfig = "C:\\Users\\wddsh\\Documents\\IdeaProjects\\ProjectOctopus\\agent-operator\\config\\cmii-dev-cluster.yaml"
|
||||
CmiiCoreClusterK8sConfig = "C:\\Users\\wddsh\\Documents\\IdeaProjects\\ProjectOctopus\\agent-operator\\config\\cmii-core-cluster.yaml"
|
||||
case "linux":
|
||||
CmiiDevClusterK8sConfig = ""
|
||||
CmiiCoreClusterK8sConfig = ""
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func GetK8sConfigByEnv(cmiiEnv string) string {
|
||||
switch cmiiEnv {
|
||||
case dev:
|
||||
return CmiiDevClusterK8sConfig
|
||||
case devFlight:
|
||||
return CmiiDevClusterK8sConfig
|
||||
case devOperation:
|
||||
return CmiiDevClusterK8sConfig
|
||||
case integration:
|
||||
return CmiiCoreClusterK8sConfig
|
||||
case uat:
|
||||
return CmiiCoreClusterK8sConfig
|
||||
case validation:
|
||||
return CmiiCoreClusterK8sConfig
|
||||
case uavms:
|
||||
return CmiiCoreClusterK8sConfig
|
||||
case demo:
|
||||
return CmiiCoreClusterK8sConfig
|
||||
default:
|
||||
return CmiiDevClusterK8sConfig
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func DeleteByKubectl(applyFilePath string, cmiiEnv string) bool {
|
||||
|
||||
kubeconfig := GetK8sConfigByEnv(cmiiEnv)
|
||||
|
||||
cmd := exec.Command("/usr/local/bin/kubectl", "delete", "-f", applyFilePath)
|
||||
cmd.Env = append(os.Environ(), fmt.Sprintf("KUBECONFIG=%s", kubeconfig))
|
||||
output, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
log.ErrorF("failed to delete resources in file %s: %v\n%s", applyFilePath, err, output)
|
||||
return false
|
||||
}
|
||||
|
||||
log.InfoF("successfully deleted resources in file %s\n%s", applyFilePath, output)
|
||||
return true
|
||||
}
|
||||
|
||||
func ApplyByKubectl(applyFilePath string, cmiiEnv string) bool {
|
||||
|
||||
kubeconfig := GetK8sConfigByEnv(cmiiEnv)
|
||||
|
||||
cmd := exec.Command("/usr/local/bin/kubectl", "apply", "-f", applyFilePath)
|
||||
cmd.Env = append(os.Environ(), fmt.Sprintf("KUBECONFIG=%s", kubeconfig))
|
||||
output, err := cmd.CombinedOutput()
|
||||
if err != nil {
|
||||
log.ErrorF("failed to apply resources in file %s: %v\n%s", applyFilePath, err, output)
|
||||
return false
|
||||
}
|
||||
|
||||
log.InfoF("successfully apply resources in file %s\n%s", applyFilePath, output)
|
||||
return true
|
||||
}
|
||||
|
||||
func (op *CmiiK8sOperator) checkAndBuildCmiiK8sOperator() {
|
||||
|
||||
if op.DevClient == nil {
|
||||
log.InfoF("[client] - build devFlight k8s operator client !")
|
||||
devConfig, err := clientcmd.RESTConfigFromKubeConfig([]byte(CmiiDevK8sConfig))
|
||||
devConfig, err := clientcmd.RESTConfigFromKubeConfig([]byte(config.CmiiDevK8sConfig))
|
||||
if err != nil {
|
||||
msg := "[client] - build devFlight k8s operator error !"
|
||||
log.Error(msg)
|
||||
@@ -64,7 +141,7 @@ func (op *CmiiK8sOperator) checkAndBuildCmiiK8sOperator() {
|
||||
|
||||
if op.CoreClient == nil {
|
||||
log.InfoF("[client] - build core k8s operator client !")
|
||||
coreConfig, err := clientcmd.RESTConfigFromKubeConfig([]byte(CmiiCoreK8sConfig))
|
||||
coreConfig, err := clientcmd.RESTConfigFromKubeConfig([]byte(config.CmiiCoreK8sConfig))
|
||||
if err != nil {
|
||||
msg := "[client] - build devFlight k8s operator error !"
|
||||
log.Error(msg)
|
||||
|
||||
Reference in New Issue
Block a user