当前位置: 首页 > 知识库问答 >
问题:

无法使用go-client接口创建Kubernetes crd

饶承宣
2023-03-14

我按照https://github.com/Kubernetes/sample-controller的示例创建了一个Kubernetes CRD。

type MyEndpoint struct {
    metav1.TypeMeta   `json:",inline"`

    // Standard object's metadata.
    // More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
    // +optional
    metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"`
}
myepDeploy := &crdv1.MyEndpoint{
    TypeMeta: metav1.TypeMeta{
        Kind:       "MyEndpoint",
        APIVersion: "mydom.k8s.io/v1",
    },
    ObjectMeta: metav1.ObjectMeta{
        Name: podName,
        Labels: map[string]string{
            "serviceName": serviceName,
            "nodeIP": nodeName,
            "port": "5000"
        },
    },
}
epClient := myclientset.MycontrollerV1().MyEndpoints("default")
epClient.Create(myepDeploy)
object *v1.MyEndpoint does not implement the protobuf marshalling interface and cannot be encoded to a protobuf message

我看了一下其他标准类型,我不知道他们是否实现了这样的接口。我在谷歌上搜索,但没有得到任何运气。

有什么想法吗?请帮忙。顺便说一句,我在Minikube上跑步。

共有1个答案

聂迪
2023-03-14

对于大多数常见类型和简单类型,编组是开箱即用的。在结构更复杂的情况下,您可能需要手动实现编组接口。

您可以尝试注释MyEndpoint结构的一部分,以找出问题的确切原因。

 类似资料:
  • 我正在尝试使用rest API客户端创建一个用户。我遵循了以下文档https://github.com/igniterealtime/rest-api-client 虽然我可以通过ARC/POSTMAN创建用户,但当我尝试通过编程时,我会得到以下异常。 注意:我必须从org.igniterealtime:rest-api-client:1.1.5中排除“javax.inject”模块,因为它导致在

  • 我正在尝试在分布式模式下运行Kafka辅助角色。与独立模式不同,我们在分布式模式下启动辅助角色时无法传递连接器属性文件。在分布式模式下,辅助角色是单独启动的,我们使用REST API部署和管理这些辅助角色上的连接器 参考链接 - https://docs.confluent.io/current/connect/managing/configuring.html#connect-managing-

  • 使用SSL连接到Postgres时引发异常。 原因:javax.net.ssl.SSLException:收到致命警报:在sun . security . SSL . alerts . getsslexception(alerts . Java:208)在sun . security . SSL . alerts . getsslexception(alerts . Java:154)在sun .

  • 问题内容: 我无法在数据库(mySQL)中创建表,使用并尝试使用以下命令输入未来表的名称: 然后,在用户输入表名称之后,我尝试构造并调用该语句: 如果我尝试不输入名称就执行它(如常量字符串:“ CREATE TABLE newtable(…)”,但我需要输入名称),它将很好地工作。 问题答案: 阅读表名后,您将必须格式化字符串,例如: 然后创建像:

  • 接口是一个方法签名的集合。 所谓方法签名,就是指方法的声明,而不包括实现。 package main import "fmt" import "math" // 这里定义了一个最基本的表示几何形状的方法的接口 type geometry interface { area() float64 perim() float64 } // 这里我们要让正方形square和圆形circle实

  • 本文向大家介绍Go语言接口用法实例,包括了Go语言接口用法实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言接口用法。分享给大家供大家参考。具体分析如下: 接口类型是由一组方法定义的集合。 接口类型的值可以存放实现这些方法的任何值。 希望本文所述对大家的Go语言程序设计有所帮助。