为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕田峪9158850 2022-10-31 15:51:32
我正在尝试获取/打印当前kubernetes上下文的名称,因为它是在~/.kube/config使用中配置的client-go我已经设法验证并获取*rest.Config对象    config, err = clientcmd.NewNonInteractiveDeferredLoadingClientConfig(         &clientcmd.ClientConfigLoadingRules{ExplicitPath: pathToKubeConfig},         &clientcmd.ConfigOverrides{             CurrentContext: "",         }).ClientConfig()但我在config结构中看不到任何相关字段。请注意,尽管我在返回的对象中传递了一个空字符串 ( ""),但它为我提供了一个基于我当前上下文的。ConfigOverridesconfigkubernetes.Clientsetkubectl
查看完整描述

1 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

该函数ClientConfig()返回 Kubernetes API 客户端配置,因此它没有关于您的配置文件的信息。

要获取当前上下文,您需要调用RawConfig(),然后有一个名为 的字段CurrentContext

以下代码应该可以工作。

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


查看完整回答
反对 回复 2022-10-31
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信