Как указать проверку OpenAPI для CRD - PullRequest
0 голосов
/ 04 мая 2018

Я сейчас пишу контроллер kubernetes, используя go-клиент 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 с использованием openapi-gen и включить в нее следующую проверку для Domain: регулярное выражение [a-z]+ и максимальную длину 18.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...