Как назначить значение по умолчанию для типа Enum
Из этого кода Go я генерирую CRD yaml. Я использую следующую структуру в Go. Я хочу назначить значение по умолчанию для параметров "Размер" и "Случай" из одного из вариантов перечисления. Назначение // +kubebuilder:validation:default:=512 не действует в сгенерированном файле yaml. Есть ли способ в kubebuilder назначить значение по умолчанию для enum?
type Options struct {
// +kubebuilder:validation:default:=512
// +kubebuilder:validation:Enum=64;128;256;512
Size int64 `json:"Size"`
// +kubebuilder:validation:Enum=caseA;caseB
// +kubebuilder:validation:default:=caseA
Case string `json:"case"`
}
Generated yaml without default value
---------------
case:
enum:
- caseA
- caseB
type: string
Size:
enum:
- 64
- 128
- 256
-512
format: int64
type: integer
2 ответа
я делаю что-то в этом роде:
// +kubebuilder:validation:Optional
// +kubebuilder:validation:Enum=foo;bar
// +kubebuilder:default:=none
Qux string `json:qux`
в результате yaml выглядит так:
qux:
default: foo
enum:
- foo
- bar
type: string
поэтому я считаю, что сделать поле необязательным является ключевым.
Я думаю, вы должны добавить
omitempty
к тегу json, в противном случае он заполняет его значением по умолчанию 0 для типа