Манипулировать клиентом 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...

Если кто-то может дать более подробный ответ, чтобы дополнить это, пожалуйста, сделайте.

Другие вопросы по тегам