【问题标题】:Create API object from a list of YAML object从 YAML 对象列表创建 API 对象
【发布时间】:2018-05-25 21:18:00
【问题描述】:

我有一个如下定义的 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。我该怎么做?

【问题讨论】:

    标签: go kubernetes kubernetes-go-client


    【解决方案1】:

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

    switch typed := obj.(type) {
      case *apiv1.Pod:
        log.Info(typed.Name) // type is Pod
      case *apiv1.Namespace:
      // typed is Namespace
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 2018-01-02
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多