Создать объект API из списка объектов YAML

У меня есть список объектов kubernetes, определенных следующим образом:

apiVersion: v1
items:
kind: List
- .....

Я хотел бы разобрать это с чем-то вроде client-go и собрать некоторую информацию об этом.

Поэтому я искал и нашел какой-то кусок кода, подобный этому:

decode := api.Codecs.UniversalDeserializer().Decode
obj, _, err := decode([]byte(f), nil, nil)

lst, err := meta.ExtractList(obj)
for _, o := range lst {
    doSomeThing(o)
}

Так obj и каждый его элемент runtime.Object Добрый. Но я не могу найти способ преобразовать это в конкретный объект kubernetes, как v1.Pod, Как я могу это сделать?

1 ответ

Чтобы преобразовать объекты времени выполнения в объекты Kubernetes, вы можете сделать что-то вроде:

switch typed := obj.(type) {
  case *apiv1.Pod:
    log.Info(typed.Name) // type is Pod
  case *apiv1.Namespace:
  // typed is Namespace
}
Другие вопросы по тегам