0

我有一个像这样定义的 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. 我怎样才能做到这一点?

4

1 回答 1

1

要将运行时对象转换为 Kubernetes 对象,您可以执行以下操作:

switch typed := obj.(type) {
  case *apiv1.Pod:
    log.Info(typed.Name) // type is Pod
  case *apiv1.Namespace:
  // typed is Namespace
}
于 2018-11-06T20:14:53.503 回答