如何使用 client-go 获取当前的 k8s 上下文名称

我正在尝试获取/打印当前kubernetes上下文的名称,因为它是在~/.kube/config使用中配置的client-go

我已经设法验证并获取*rest.Config对象

    config, err = clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
        &clientcmd.ClientConfigLoadingRules{ExplicitPath: pathToKubeConfig},
        &clientcmd.ConfigOverrides{
            CurrentContext: "",
        }).ClientConfig()

但我在config结构中看不到任何相关字段。

请注意,尽管我在返回的对象中传递了一个空字符串 ( ""),但它为我提供了一个基于我当前上下文的。ConfigOverridesconfigkubernetes.Clientsetkubectl


慕田峪9158850
浏览 83回答 1
1回答

元芳怎么了

该函数ClientConfig()返回 Kubernetes API 客户端配置,因此它没有关于您的配置文件的信息。要获取当前上下文,您需要调用RawConfig(),然后有一个名为 的字段CurrentContext。以下代码应该可以工作。    config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(         &clientcmd.ClientConfigLoadingRules{ExplicitPath: pathToKubeConfig},         &clientcmd.ConfigOverrides{             CurrentContext: "",         }).RawConfig()     currentContext := config.CurrentContext
打开App,查看更多内容
随时随地看视频慕课网APP