package main import ( "context" "fmt" "time" "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/intstr" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" "k8s.io/kubernetes/pkg/client/clientset/versioned" ) func main() { config, err := clientcmd.BuildConfigFromFlags("", "~/.kube/config") if err != nil { panic(err) } client, err := kubernetes.NewForConfig(config) if err != nil { panic(err) } svcClient := client.CoreV1().Services("default") svc := &v1.Service{ ObjectMeta: v1.ObjectMeta{ Name: "my-service", }, Spec: v1.ServiceSpec{ Ports: []v1.ServicePort{ { Name: "http", Port: 80, TargetPort: intstr.IntOrString{IntVal: 8080}, }, }, Selector: map[string]string{"app": "my-app"}, }, } result, err := svcClient.Create(context.Background(), svc, v1.CreateOptions{}) if err != nil { panic(err) } fmt.Printf("Created service %s\n", result.GetObjectMeta().GetName()) }
package main import ( "context" "fmt" "time" "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" "k8s.io/kubernetes/pkg/client/clientset/versioned" ) func main() { config, err := clientcmd.BuildConfigFromFlags("", "~/.kube/config") if err != nil { panic(err) } client, err := kubernetes.NewForConfig(config) if err != nil { panic(err) } podClient := client.CoreV1().Pods("default") pods, err := podClient.List(context.Background(), v1.ListOptions{}) if err != nil { panic(err) } for _, pod := range pods.Items { fmt.Printf("Found pod %s\n", pod.Name) err := podClient.Delete(context.Background(), pod.Name, v1.DeleteOptions{}) if err != nil { panic(err) } fmt.Printf("Deleted pod %s\n", pod.Name) } }This example lists all Pods in the "default" namespace and deletes them one by one.