Создать объект 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
}