Манипулировать клиентом Go-Kubernetes PodList
Я копаюсь с клиентом Gobernetes и не могу придумать, как правильно манипулировать структурой Pod...
Я получаю PodList pods, как это:
// creates the clientset
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
glog.Fatal(err)
}
// Get Pods
pods, err := clientset.CoreV1().Pods("").List(meta_v1.ListOptions{})
if err != nil {
fmt.Println(err)
return
}
Затем я могу получить некоторые значения для каждого Pod, используя цикл как
for _, pod := range pods.Items {
fmt.Println(pod.GetName(), pod.Namespace)
}
Но только из структуры ObjectMeta, которая имеет несколько Getters (pod.GetName()), использование .Value также работает (pod.Namespace). Я не могу понять, как правильно обращаться к данным, вложенным в Spec PodSpec и Status PodStatus.
Может быть, мне не хватает некоторых основных концепций Голанга... Может кто-нибудь просветить меня, указать мне в каком-то направлении или дать мне общий пример правильного способа сделать это?
1 ответ
Я нашел решение, но вместо того, чтобы бесстыдно убрать это, я дам ответ:
Структура Spec и Status, к которой я хотел получить доступ, просто доступны с помощью чего-то вроде pod.Spec.NodeName
или же pod.Status.StartTime
...
Если кто-то может дать более подробный ответ, чтобы дополнить это, пожалуйста, сделайте.