zhangqian
2024-01-06 68c007e836384635d843bbc61174fae5b09ccd1c
src/k8s/delete.go
@@ -6,21 +6,15 @@
   "fmt"
   "path/filepath"
   "../util"
   "basic.com/aps/aps_deploy.git/src/util"
   "k8s.io/apimachinery/pkg/api/errors"
   metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
   "k8s.io/client-go/kubernetes"
   "k8s.io/client-go/tools/clientcmd"
)
var (
   replicas      int32 = 3
   port          int32 = 9081
   namespaces          = []string{"guangsheng", "geruimi", "tongsheng"}
   usedNodePorts       = make(map[int32]bool)
)
func delete_test() {
func main() {
   // 配置 Kubernetes 集群的 kubeconfig 路径
   kubeconfig := flag.String("kubeconfig", filepath.Join(util.HomeDir(), ".kube", "config"), "kubeconfig file")
   flag.Parse()
@@ -38,7 +32,32 @@
   // 删除多个 Namespace 下的相同名称的 Deployment 和 Service
   for _, ns := range namespaces {
      err = DeleteResources(clientset, ns, ns, ns)
      for _, proj := range Projects {
         if proj == ProjectAps {
            err := deleteDeployment(clientset, ns, ns)
            if err != nil {
               panic(err)
            }
            // 删除 Service
            err = deleteService(clientset, ns, ns)
            if err != nil {
               panic(err)
            }
         } else {
            err := deleteDeployment(clientset, ns, proj)
            if err != nil {
               panic(err)
            }
            // 删除 Service
            err = deleteService(clientset, ns, proj)
            if err != nil {
               panic(err)
            }
         }
      }
      // 删除 Namespace
      err = DeleteNamespace(Config{Client: clientset, NameSpace: ns})
      if err != nil {
         panic(err)
      }
@@ -64,7 +83,7 @@
   }
   // 删除 Namespace
   err = deleteNamespace(clientset, namespace)
   err = DeleteNamespace(Config{Client: clientset, NameSpace: namespace})
   if err != nil {
      return err
   }
@@ -109,18 +128,18 @@
}
// deleteNamespace 删除指定的 Namespace
func deleteNamespace(clientset *kubernetes.Clientset, namespace string) error {
   fmt.Println("\033[1;37;40mDeleting Namespace:", namespace, "\033[0m")
func DeleteNamespace(config Config) error {
   fmt.Println("\033[1;37;40mDeleting Namespace:", config.NameSpace, "\033[0m")
   err := clientset.CoreV1().Namespaces().Delete(context.TODO(), namespace, metav1.DeleteOptions{})
   err := config.Client.CoreV1().Namespaces().Delete(context.TODO(), config.NameSpace, metav1.DeleteOptions{})
   if err != nil {
      if errors.IsNotFound(err) {
         fmt.Printf("Namespace %s not found\n", namespace)
         fmt.Printf("Namespace %s not found\n", config.NameSpace)
      } else {
         return fmt.Errorf("failed to delete Namespace: %v", err)
      }
   } else {
      fmt.Printf("Namespace %s deleted\n", namespace)
      fmt.Printf("Namespace %s deleted\n", config.NameSpace)
   }
   return nil