kubebuilder
标签是用于注解 Kubernetes CRD(Custom Resource Definition) 的标签,主要用于在 Operator SDK 和 Kubebuilder 框架中生成代码、验证规则以及自定义 CRD 的生成。以下是常用的 kubebuilder
标签:
这些标签用于在 CRD 中生成字段的验证规则。
+kubebuilder:validation:Required
+kubebuilder:validation:Optional
+kubebuilder:validation:Maximum=
+kubebuilder:validation:Minimum=
+kubebuilder:validation:MaxLength=
+kubebuilder:validation:MinLength=
+kubebuilder:validation:Enum=,,...
+kubebuilder:validation:Pattern=
+kubebuilder:validation:Format=
email
, date-time
, hostname
等)。+kubebuilder:validation:ExclusiveMinimum=
+kubebuilder:validation:ExclusiveMaximum=
+kubebuilder:validation:MultipleOf=
+kubebuilder:default=
+kubebuilder:validation:UniqueItems=true
+kubebuilder:validation:MinItems=
+kubebuilder:validation:MaxItems=
+kubebuilder:validation:XMapType=atomic/granular
atomic
或 granular
)。+kubebuilder:pruning:PreserveUnknownFields
+kubebuilder:validation:EmbeddedResource
+kubebuilder:resource:path=
Namespaced
或 Cluster
)和短名称。+kubebuilder:subresource:status
.status
字段)。+kubebuilder:subresource:scale
+kubebuilder:printcolumn:name=
kubectl get
命令输出时显示的列。+kubebuilder:object:root=true
+kubebuilder:object:generate=true
+kubebuilder:skipversion
+kubebuilder:storageversion
+kubebuilder:webhook:path=
+kubebuilder:generate=true/false
+kubebuilder:marker:validation:XPreserveUnknownFields
这些标签可以帮助你为CRD字段添加详细的验证规则、描述和元数据,从而更好地控制CRD的行为和展示效果。