How do i create a namespace using kubernetes go-client from running container inside a cluster
import ( "github.com/golang/glog" "k8s.io/client-go/kubernetes" "k8s.io/kubernetes/pkg/api/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1")clientConfig, err := config.createClientConfigFromFile()if err != nil { glog.Fatalf("Failed to create a ClientConfig: %v. Exiting.", err)}clientset, err := clientset.NewForConfig(clientConfig)if err != nil { glog.Fatalf("Failed to create a ClientSet: %v. Exiting.", err)}nsSpec := &v1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: ns}}_, err := clientset.Core().Namespaces().Create(nsSpec)}
This one is works for me:
clientset, err := kubernetes.NewForConfig(config)if err != nil { panic(err)}nsName := &corev1.Namespace{ ObjectMeta: metav1.ObjectMeta{ Name: "my-new-namespace", },}clientset.CoreV1().Namespaces().Create(context.Background(), nsName, metav1.CreateOptions{})