首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将*extensions.Deployment转换为*v1beta1.Deployment (Kubernetes client-go)

将*extensions.Deployment转换为*v1beta1.Deployment (Kubernetes client-go)
EN

Stack Overflow用户
提问于 2017-01-13 05:49:53
回答 0查看 602关注 0票数 0

使用Kubernetes client-go,我如何使用Convert() for *extensions.Deployment to *v1beta1.Deployment?当我运行下面的程序时,我得到了这个错误:

2017/01/12 22:40:42转换失败:将(extensions.Deployment).CreationTimestamp.Time.sec转换为(v1beta1.Deployment).CreationTimestamp.Time.sec:无法设置dest。(是否尝试使用未导出的字段进行深度复制?)

代码语言:javascript
复制
package main

import (
    "log"

    _ "k8s.io/client-go/1.4/kubernetes"
    "k8s.io/client-go/1.4/pkg/api"
    "k8s.io/client-go/1.4/pkg/apis/extensions"
    "k8s.io/client-go/1.4/pkg/apis/extensions/v1beta1"
    "k8s.io/client-go/1.4/pkg/runtime"
)

const yaml = `
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: push
`

func main() {

    d := api.Codecs.UniversalDecoder()
    obj, _, err := d.Decode([]byte(yaml), nil, nil)
    if err != nil {
        log.Fatalf("could not decode yaml: %s\n%s", yaml, err)
    }

    src := obj.(*extensions.Deployment)
    s := runtime.NewScheme()
    dst := &v1beta1.Deployment{}
    err = s.Convert(src, dst, 0)
    if err != nil {
        log.Fatalf("failed to convert: %s", err)
    }
}

我希望调用v1beta1.Convert_extensions_Deployment_To_v1beta1_Deployment()并处理未导出的字段。该函数已在main_init()中注册,但并非由Convert()调用。

我可以使用Convert()来进行这种转换吗,或者我应该使用json.Unmarshal()和json.Marshal()吗?

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41623593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档