如何为CRD

时间:2018-05-04 13:42:05

标签: go kubernetes

我正在使用kubernetes go-client编写kubernetes控制器。

我设法为控制器管理的资源生成OpenAPI规范(通过运行openapi-gen并使用+k8s:openapi-gen=true注释类型)。

我还想生成像最大长度或正则表达式的验证器,但我找不到任何有关如何执行此操作的资源。

这是我的types.go

package v1

import (
    meta "k8s.io/apimachinery/pkg/apis/meta/v1"
)

// +genclient
// +k8s:openapi-gen=true
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +resource:path=project

type Project struct {
    meta.TypeMeta   `json:",inline"`
    meta.ObjectMeta `json:"metadata,omitempty"`

    Domain string `json:"domain"`
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

type ProjectList struct {
    meta.TypeMeta `json:",inline"`
    meta.ListMeta `json:"metadata,omitempty"`
    Items         []Project `json:"items"`
}

我想要实现的是使用openapi-gen生成OpenAPI规范,并在规范中包含Domain:regex [a-z]+的以下验证以及{{的最大长度1}}。

0 个答案:

没有答案