~/.kube/configgo

我正在使用以下方法

func ListContexts(pathToKubeConfig string) ([]string, error) {
    type Contexts struct {
        Ctx []string `yaml:"contexts"`
        //ApiVersion string              `yaml:"apiVersion"`
    }
    var ctx []string
    var c Contexts

    file, err := ioutil.ReadFile(pathToKubeConfig)
    if err != nil {
        return nil, err
    }

    err = yaml.Unmarshal(file, &c)
    fmt.Printf("%#v\n", c.Ctx)
    return ctx, nil
}
}

众所周知,kubeconfig文件具有以下结构:

apiVersion: v1
. . . 
contexts:
- context:
    cluster: cluster1
    user: user1
  name: context1
- context:
    cluster: cluster2
    user: user2
  name: context2

我的方法是打印:

[]string(nil)
context
ApiVersion