| | |
| | | "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() |
| | |
| | | |
| | | // 删除多个 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) |
| | | } |
| | |
| | | } |
| | | |
| | | // 删除 Namespace |
| | | err = deleteNamespace(clientset, namespace) |
| | | err = DeleteNamespace(Config{Client: clientset, NameSpace: namespace}) |
| | | if err != nil { |
| | | return err |
| | | } |
| | |
| | | } |
| | | |
| | | // 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 |