~/.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