List all namespaces in k8s in Go

huangapple go评论80阅读模式
英文:

List all namespaces in k8s in Go

问题

有人可以告诉我如何使用Go列出k8s中的所有命名空间吗?我一直在参考这个链接,但找不到可以列出所有命名空间的内容。

链接:https://pkg.go.dev/github.com/gruntwork-io/terratest/modules/k8s

我在Go的k8s包中没有看到任何ListNamespaces函数。

英文:

Can anyone tell me how to list all namespaces in k8s using Go? I have been referencing this link but couldn't find anything that can list all namespaces.

Link: https://pkg.go.dev/github.com/gruntwork-io/terratest/modules/k8s

I don't see any ListNamespaces functions for the k8s package in Go.

答案1

得分: 5

你可以尝试使用kubernetes/client-go库,你可以像这样使用:clientset.CoreV1().Namespaces("").List(context.TODO(), metav1.ListOptions{})。你的clientset可以在集群内部或外部实例化。

英文:

Try kubernetes/client-go, you can do like clientset.CoreV1().Namespaces("").List(context.TODO(), metav1.ListOptions{}). Your clientset maybe instantiate within the cluster or outside.

答案2

得分: 4

要列出命名空间,您可以使用类似以下的代码:

func ListNameSpaces(coreClient kubernetes.Interface) {

    nsList, err := coreClient.CoreV1().
        Namespaces().
        List(context.Background(), metav1.ListOptions{})
    //checkErr(err)
    fmt.Println(err)

    for _, n := range nsList.Items {
        fmt.Println(n.Name)
    }
}

这段代码可以通过传入coreClient参数来获取Kubernetes核心客户端,并使用List方法来获取命名空间列表。然后,通过遍历nsList.Items来打印每个命名空间的名称。

英文:

To list namespaces you can use something like this:

func ListNameSpaces(coreClient kubernetes.Interface) {

	nsList, err := coreClient.CoreV1().
		Namespaces().
		List(context.Background(), metav1.ListOptions{})
	//checkErr(err)
	fmt.Println(err)

	for _, n := range nsList.Items {
		fmt.Println(n.Name)
	}
}

huangapple
  • 本文由 发表于 2022年5月27日 21:32:21
  • 转载请务必保留本文链接:https://go.coder-hub.com/72406262.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定