我有一个像这样定义的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
。我怎么能这样做?
答案 0 :(得分:1)
To convert runtime objects to Kubernetes objects, you can do something like:
switch typed := obj.(type) {
case *apiv1.Pod:
log.Info(typed.Name) // type is Pod
case *apiv1.Namespace:
// typed is Namespace
}