Go 如何为枚举类型指定默认值

Go 如何为枚举类型指定默认值,go,kubebuilder,Go,Kubebuilder,根据这个Go代码,我将生成CRD yaml。我在Go中使用以下结构。 我想为其中一个枚举选项中的参数“Size”和“Case”指定默认值。 分配//+kubebuilder:validation:default:=512在生成的yaml文件中无效。 在kubebuilder中是否有任何方法可以为枚举指定默认值 type Options struct { // +kubebuilder:validation:default:=512 // +kubebuilder:validati

根据这个Go代码,我将生成CRD yaml。我在Go中使用以下结构。 我想为其中一个枚举选项中的参数“Size”和“Case”指定默认值。 分配//+kubebuilder:validation:default:=512在生成的yaml文件中无效。 在kubebuilder中是否有任何方法可以为枚举指定默认值

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

我正在按照这些思路做一些事情:

    // +kubebuilder:validation:Optional
    // +kubebuilder:validation:Enum=foo;bar
    // +kubebuilder:default:=none 
    Qux string `json:qux`
导致yaml看起来像:

              qux:
                default: foo
                enum:
                - foo
                - bar
                type: string
所以我认为让字段可选是关键