client-go operation namespace

Namespace is equivalent to the concept of tenants, has played the role of resource isolation,

namespaceIn the client.CoreV1()method,
this method includes the implementation of a number of interfaces and interfaces

# 在236行左右
https://github.com/kubernetes/client-go/blob/master/kubernetes/clientset.go

https://github.com/kubernetes/client-go/blob/master/kubernetes/typed/core/v1/core_client.go

# 主要使用这个里面的一些方法
https://github.com/kubernetes/client-go/blob/master/kubernetes/typed/core/v1/namespace.go

Get inside the cluster namespace list k8s

	// 获取所有 namespace
	namespaceList, err := clientset.CoreV1().Namespaces().List(metav1.ListOptions{})
	if err != nil {
		fmt.Println(err.Error())
	}else{
		for _,nsList := range namespaceList.Items {
			fmt.Printf("NsName: %s \n", nsList.Name)
		}
	}

For details of the specified namespace

	// 获取指定namespace的详细信息
	result, err := clientset.CoreV1().Namespaces().Get("vc-test", metav1.GetOptions{})
	if err != nil {
		panic(err)
	}
	fmt.Printf("\n Name: %s \n Status: %s \n CreateTime: %s \n", result.ObjectMeta.Name, result.Status.Phase, result.CreationTimestamp)

Create a namespace

	// 创建 namesapce
	// 通过实现 clientset 的 CoreV1Interface 接口列表中的 NamespacesGetter 接口方法 Namespaces 返回 NamespaceInterface
	// NamespaceInterface 接口拥有操作 Namespace 资源的方法,例如 Create、Update、Get、List 等方法
	name := "vc-test5"
	namespaceClient := clientset.CoreV1().Namespaces()
	namespace := &apiv1.Namespace{
		ObjectMeta: metav1.ObjectMeta{
			Name: name,
		},
	}
	// 创建 namespace
	result, err := namespaceClient.Create(namespace)
	if err != nil {
		fmt.Println(err.Error())
	}else{
		fmt.Printf("Create ns %s SuccessFul !", result.ObjectMeta.Name)
	}

Delete namespace

	// 删除指定的 namespace
	name := "vc-test5"
	deletePolicy := metav1.DeletePropagationForeground
	err = clientset.CoreV1().Namespaces().Delete(name, &metav1.DeleteOptions{
		PropagationPolicy: &deletePolicy,
	})
	
	if err != nil {
		fmt.Println(err.Error())
	}else{
		fmt.Printf("Deleted Namespaces %s\n", name)
	}


Guess you like

Origin blog.csdn.net/u011327801/article/details/92148266
Recommended