我正在使用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}}。