Browse Source

Add validations for the enum values (#2819)

Signed-off-by: shuheiktgw <s-kitagawa@mercari.com>
Shuhei Kitagawa 2 years ago
parent
commit
ff0ef2e6d9

+ 3 - 0
apis/externalsecrets/v1alpha1/externalsecret_types.go

@@ -31,6 +31,7 @@ type SecretStoreRef struct {
 }
 }
 
 
 // ExternalSecretCreationPolicy defines rules on how to create the resulting Secret.
 // ExternalSecretCreationPolicy defines rules on how to create the resulting Secret.
+// +kubebuilder:validation:Enum=Owner;Merge;None
 type ExternalSecretCreationPolicy string
 type ExternalSecretCreationPolicy string
 
 
 const (
 const (
@@ -75,6 +76,7 @@ type ExternalSecretTemplate struct {
 	TemplateFrom []TemplateFrom `json:"templateFrom,omitempty"`
 	TemplateFrom []TemplateFrom `json:"templateFrom,omitempty"`
 }
 }
 
 
+// +kubebuilder:validation:Enum=v1;v2
 type TemplateEngineVersion string
 type TemplateEngineVersion string
 
 
 const (
 const (
@@ -147,6 +149,7 @@ type ExternalSecretDataRemoteRef struct {
 	ConversionStrategy ExternalSecretConversionStrategy `json:"conversionStrategy,omitempty"`
 	ConversionStrategy ExternalSecretConversionStrategy `json:"conversionStrategy,omitempty"`
 }
 }
 
 
+// +kubebuilder:validation:Enum=Default;Unicode
 type ExternalSecretConversionStrategy string
 type ExternalSecretConversionStrategy string
 
 
 const (
 const (

+ 1 - 0
apis/externalsecrets/v1alpha1/pushsecret_types.go

@@ -39,6 +39,7 @@ type PushSecretStoreRef struct {
 	Kind string `json:"kind,omitempty"`
 	Kind string `json:"kind,omitempty"`
 }
 }
 
 
+// +kubebuilder:validation:Enum=Delete;None
 type PushSecretDeletionPolicy string
 type PushSecretDeletionPolicy string
 
 
 const (
 const (

+ 8 - 1
apis/externalsecrets/v1beta1/externalsecret_types.go

@@ -91,7 +91,6 @@ type ExternalSecretTemplate struct {
 	// that should be used to compile/execute the
 	// that should be used to compile/execute the
 	// template specified in .data and .templateFrom[].
 	// template specified in .data and .templateFrom[].
 	// +kubebuilder:default="v2"
 	// +kubebuilder:default="v2"
-
 	EngineVersion TemplateEngineVersion `json:"engineVersion,omitempty"`
 	EngineVersion TemplateEngineVersion `json:"engineVersion,omitempty"`
 	// +optional
 	// +optional
 	Metadata ExternalSecretTemplateMetadata `json:"metadata,omitempty"`
 	Metadata ExternalSecretTemplateMetadata `json:"metadata,omitempty"`
@@ -103,6 +102,7 @@ type ExternalSecretTemplate struct {
 	TemplateFrom []TemplateFrom `json:"templateFrom,omitempty"`
 	TemplateFrom []TemplateFrom `json:"templateFrom,omitempty"`
 }
 }
 
 
+// +kubebuilder:validation:Enum=Replace;Merge
 type TemplateMergePolicy string
 type TemplateMergePolicy string
 
 
 const (
 const (
@@ -110,6 +110,7 @@ const (
 	MergePolicyMerge   TemplateMergePolicy = "Merge"
 	MergePolicyMerge   TemplateMergePolicy = "Merge"
 )
 )
 
 
+// +kubebuilder:validation:Enum=v1;v2
 type TemplateEngineVersion string
 type TemplateEngineVersion string
 
 
 const (
 const (
@@ -128,6 +129,7 @@ type TemplateFrom struct {
 	Literal *string `json:"literal,omitempty"`
 	Literal *string `json:"literal,omitempty"`
 }
 }
 
 
+// +kubebuilder:validation:Enum=Values;KeysAndValues
 type TemplateScope string
 type TemplateScope string
 
 
 const (
 const (
@@ -135,6 +137,7 @@ const (
 	TemplateScopeKeysAndValues TemplateScope = "KeysAndValues"
 	TemplateScopeKeysAndValues TemplateScope = "KeysAndValues"
 )
 )
 
 
+// +kubebuilder:validation:Enum=Data;Annotations;Labels
 type TemplateTarget string
 type TemplateTarget string
 
 
 const (
 const (
@@ -204,6 +207,7 @@ type ExternalSecretDataRemoteRef struct {
 
 
 	// +optional
 	// +optional
 	// Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None
 	// Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None
+	// +kubebuilder:default="None"
 	MetadataPolicy ExternalSecretMetadataPolicy `json:"metadataPolicy,omitempty"`
 	MetadataPolicy ExternalSecretMetadataPolicy `json:"metadataPolicy,omitempty"`
 
 
 	// +optional
 	// +optional
@@ -225,6 +229,7 @@ type ExternalSecretDataRemoteRef struct {
 	DecodingStrategy ExternalSecretDecodingStrategy `json:"decodingStrategy,omitempty"`
 	DecodingStrategy ExternalSecretDecodingStrategy `json:"decodingStrategy,omitempty"`
 }
 }
 
 
+// +kubebuilder:validation:Enum=None;Fetch
 type ExternalSecretMetadataPolicy string
 type ExternalSecretMetadataPolicy string
 
 
 const (
 const (
@@ -232,6 +237,7 @@ const (
 	ExternalSecretMetadataPolicyFetch ExternalSecretMetadataPolicy = "Fetch"
 	ExternalSecretMetadataPolicyFetch ExternalSecretMetadataPolicy = "Fetch"
 )
 )
 
 
+// +kubebuilder:validation:Enum=Default;Unicode
 type ExternalSecretConversionStrategy string
 type ExternalSecretConversionStrategy string
 
 
 const (
 const (
@@ -239,6 +245,7 @@ const (
 	ExternalSecretConversionUnicode ExternalSecretConversionStrategy = "Unicode"
 	ExternalSecretConversionUnicode ExternalSecretConversionStrategy = "Unicode"
 )
 )
 
 
+// +kubebuilder:validation:Enum=Auto;Base64;Base64URL;None
 type ExternalSecretDecodingStrategy string
 type ExternalSecretDecodingStrategy string
 
 
 const (
 const (

+ 51 - 0
config/crds/bases/external-secrets.io_clusterexternalsecrets.yaml

@@ -82,18 +82,30 @@ spec:
                             conversionStrategy:
                             conversionStrategy:
                               default: Default
                               default: Default
                               description: Used to define a conversion Strategy
                               description: Used to define a conversion Strategy
+                              enum:
+                              - Default
+                              - Unicode
                               type: string
                               type: string
                             decodingStrategy:
                             decodingStrategy:
                               default: None
                               default: None
                               description: Used to define a decoding Strategy
                               description: Used to define a decoding Strategy
+                              enum:
+                              - Auto
+                              - Base64
+                              - Base64URL
+                              - None
                               type: string
                               type: string
                             key:
                             key:
                               description: Key is the key used in the Provider, mandatory
                               description: Key is the key used in the Provider, mandatory
                               type: string
                               type: string
                             metadataPolicy:
                             metadataPolicy:
+                              default: None
                               description: Policy for fetching tags/labels from provider
                               description: Policy for fetching tags/labels from provider
                                 secrets, possible options are Fetch, None. Defaults
                                 secrets, possible options are Fetch, None. Defaults
                                 to None
                                 to None
+                              enum:
+                              - None
+                              - Fetch
                               type: string
                               type: string
                             property:
                             property:
                               description: Used to select a specific property of the
                               description: Used to select a specific property of the
@@ -169,18 +181,30 @@ spec:
                             conversionStrategy:
                             conversionStrategy:
                               default: Default
                               default: Default
                               description: Used to define a conversion Strategy
                               description: Used to define a conversion Strategy
+                              enum:
+                              - Default
+                              - Unicode
                               type: string
                               type: string
                             decodingStrategy:
                             decodingStrategy:
                               default: None
                               default: None
                               description: Used to define a decoding Strategy
                               description: Used to define a decoding Strategy
+                              enum:
+                              - Auto
+                              - Base64
+                              - Base64URL
+                              - None
                               type: string
                               type: string
                             key:
                             key:
                               description: Key is the key used in the Provider, mandatory
                               description: Key is the key used in the Provider, mandatory
                               type: string
                               type: string
                             metadataPolicy:
                             metadataPolicy:
+                              default: None
                               description: Policy for fetching tags/labels from provider
                               description: Policy for fetching tags/labels from provider
                                 secrets, possible options are Fetch, None. Defaults
                                 secrets, possible options are Fetch, None. Defaults
                                 to None
                                 to None
+                              enum:
+                              - None
+                              - Fetch
                               type: string
                               type: string
                             property:
                             property:
                               description: Used to select a specific property of the
                               description: Used to select a specific property of the
@@ -201,10 +225,18 @@ spec:
                             conversionStrategy:
                             conversionStrategy:
                               default: Default
                               default: Default
                               description: Used to define a conversion Strategy
                               description: Used to define a conversion Strategy
+                              enum:
+                              - Default
+                              - Unicode
                               type: string
                               type: string
                             decodingStrategy:
                             decodingStrategy:
                               default: None
                               default: None
                               description: Used to define a decoding Strategy
                               description: Used to define a decoding Strategy
+                              enum:
+                              - Auto
+                              - Base64
+                              - Base64URL
+                              - None
                               type: string
                               type: string
                             name:
                             name:
                               description: Finds secrets based on the name.
                               description: Finds secrets based on the name.
@@ -372,9 +404,18 @@ spec:
                             type: object
                             type: object
                           engineVersion:
                           engineVersion:
                             default: v2
                             default: v2
+                            description: EngineVersion specifies the template engine
+                              version that should be used to compile/execute the template
+                              specified in .data and .templateFrom[].
+                            enum:
+                            - v1
+                            - v2
                             type: string
                             type: string
                           mergePolicy:
                           mergePolicy:
                             default: Replace
                             default: Replace
+                            enum:
+                            - Replace
+                            - Merge
                             type: string
                             type: string
                           metadata:
                           metadata:
                             description: ExternalSecretTemplateMetadata defines metadata
                             description: ExternalSecretTemplateMetadata defines metadata
@@ -401,6 +442,9 @@ spec:
                                             type: string
                                             type: string
                                           templateAs:
                                           templateAs:
                                             default: Values
                                             default: Values
+                                            enum:
+                                            - Values
+                                            - KeysAndValues
                                             type: string
                                             type: string
                                         required:
                                         required:
                                         - key
                                         - key
@@ -423,6 +467,9 @@ spec:
                                             type: string
                                             type: string
                                           templateAs:
                                           templateAs:
                                             default: Values
                                             default: Values
+                                            enum:
+                                            - Values
+                                            - KeysAndValues
                                             type: string
                                             type: string
                                         required:
                                         required:
                                         - key
                                         - key
@@ -436,6 +483,10 @@ spec:
                                   type: object
                                   type: object
                                 target:
                                 target:
                                   default: Data
                                   default: Data
+                                  enum:
+                                  - Data
+                                  - Annotations
+                                  - Labels
                                   type: string
                                   type: string
                               type: object
                               type: object
                             type: array
                             type: array

+ 64 - 0
config/crds/bases/external-secrets.io_externalsecrets.yaml

@@ -62,6 +62,9 @@ spec:
                         conversionStrategy:
                         conversionStrategy:
                           default: Default
                           default: Default
                           description: Used to define a conversion Strategy
                           description: Used to define a conversion Strategy
+                          enum:
+                          - Default
+                          - Unicode
                           type: string
                           type: string
                         key:
                         key:
                           description: Key is the key used in the Provider, mandatory
                           description: Key is the key used in the Provider, mandatory
@@ -94,6 +97,9 @@ spec:
                     conversionStrategy:
                     conversionStrategy:
                       default: Default
                       default: Default
                       description: Used to define a conversion Strategy
                       description: Used to define a conversion Strategy
+                      enum:
+                      - Default
+                      - Unicode
                       type: string
                       type: string
                     key:
                     key:
                       description: Key is the key used in the Provider, mandatory
                       description: Key is the key used in the Provider, mandatory
@@ -139,6 +145,10 @@ spec:
                     default: Owner
                     default: Owner
                     description: CreationPolicy defines rules on how to create the
                     description: CreationPolicy defines rules on how to create the
                       resulting Secret Defaults to 'Owner'
                       resulting Secret Defaults to 'Owner'
+                    enum:
+                    - Owner
+                    - Merge
+                    - None
                     type: string
                     type: string
                   immutable:
                   immutable:
                     description: Immutable defines if the final secret will be immutable
                     description: Immutable defines if the final secret will be immutable
@@ -161,6 +171,9 @@ spec:
                         description: EngineVersion specifies the template engine version
                         description: EngineVersion specifies the template engine version
                           that should be used to compile/execute the template specified
                           that should be used to compile/execute the template specified
                           in .data and .templateFrom[].
                           in .data and .templateFrom[].
+                        enum:
+                        - v1
+                        - v2
                         type: string
                         type: string
                       metadata:
                       metadata:
                         description: ExternalSecretTemplateMetadata defines metadata
                         description: ExternalSecretTemplateMetadata defines metadata
@@ -318,18 +331,30 @@ spec:
                         conversionStrategy:
                         conversionStrategy:
                           default: Default
                           default: Default
                           description: Used to define a conversion Strategy
                           description: Used to define a conversion Strategy
+                          enum:
+                          - Default
+                          - Unicode
                           type: string
                           type: string
                         decodingStrategy:
                         decodingStrategy:
                           default: None
                           default: None
                           description: Used to define a decoding Strategy
                           description: Used to define a decoding Strategy
+                          enum:
+                          - Auto
+                          - Base64
+                          - Base64URL
+                          - None
                           type: string
                           type: string
                         key:
                         key:
                           description: Key is the key used in the Provider, mandatory
                           description: Key is the key used in the Provider, mandatory
                           type: string
                           type: string
                         metadataPolicy:
                         metadataPolicy:
+                          default: None
                           description: Policy for fetching tags/labels from provider
                           description: Policy for fetching tags/labels from provider
                             secrets, possible options are Fetch, None. Defaults to
                             secrets, possible options are Fetch, None. Defaults to
                             None
                             None
+                          enum:
+                          - None
+                          - Fetch
                           type: string
                           type: string
                         property:
                         property:
                           description: Used to select a specific property of the Provider
                           description: Used to select a specific property of the Provider
@@ -405,18 +430,30 @@ spec:
                         conversionStrategy:
                         conversionStrategy:
                           default: Default
                           default: Default
                           description: Used to define a conversion Strategy
                           description: Used to define a conversion Strategy
+                          enum:
+                          - Default
+                          - Unicode
                           type: string
                           type: string
                         decodingStrategy:
                         decodingStrategy:
                           default: None
                           default: None
                           description: Used to define a decoding Strategy
                           description: Used to define a decoding Strategy
+                          enum:
+                          - Auto
+                          - Base64
+                          - Base64URL
+                          - None
                           type: string
                           type: string
                         key:
                         key:
                           description: Key is the key used in the Provider, mandatory
                           description: Key is the key used in the Provider, mandatory
                           type: string
                           type: string
                         metadataPolicy:
                         metadataPolicy:
+                          default: None
                           description: Policy for fetching tags/labels from provider
                           description: Policy for fetching tags/labels from provider
                             secrets, possible options are Fetch, None. Defaults to
                             secrets, possible options are Fetch, None. Defaults to
                             None
                             None
+                          enum:
+                          - None
+                          - Fetch
                           type: string
                           type: string
                         property:
                         property:
                           description: Used to select a specific property of the Provider
                           description: Used to select a specific property of the Provider
@@ -437,10 +474,18 @@ spec:
                         conversionStrategy:
                         conversionStrategy:
                           default: Default
                           default: Default
                           description: Used to define a conversion Strategy
                           description: Used to define a conversion Strategy
+                          enum:
+                          - Default
+                          - Unicode
                           type: string
                           type: string
                         decodingStrategy:
                         decodingStrategy:
                           default: None
                           default: None
                           description: Used to define a decoding Strategy
                           description: Used to define a decoding Strategy
+                          enum:
+                          - Auto
+                          - Base64
+                          - Base64URL
+                          - None
                           type: string
                           type: string
                         name:
                         name:
                           description: Finds secrets based on the name.
                           description: Finds secrets based on the name.
@@ -606,9 +651,18 @@ spec:
                         type: object
                         type: object
                       engineVersion:
                       engineVersion:
                         default: v2
                         default: v2
+                        description: EngineVersion specifies the template engine version
+                          that should be used to compile/execute the template specified
+                          in .data and .templateFrom[].
+                        enum:
+                        - v1
+                        - v2
                         type: string
                         type: string
                       mergePolicy:
                       mergePolicy:
                         default: Replace
                         default: Replace
+                        enum:
+                        - Replace
+                        - Merge
                         type: string
                         type: string
                       metadata:
                       metadata:
                         description: ExternalSecretTemplateMetadata defines metadata
                         description: ExternalSecretTemplateMetadata defines metadata
@@ -635,6 +689,9 @@ spec:
                                         type: string
                                         type: string
                                       templateAs:
                                       templateAs:
                                         default: Values
                                         default: Values
+                                        enum:
+                                        - Values
+                                        - KeysAndValues
                                         type: string
                                         type: string
                                     required:
                                     required:
                                     - key
                                     - key
@@ -657,6 +714,9 @@ spec:
                                         type: string
                                         type: string
                                       templateAs:
                                       templateAs:
                                         default: Values
                                         default: Values
+                                        enum:
+                                        - Values
+                                        - KeysAndValues
                                         type: string
                                         type: string
                                     required:
                                     required:
                                     - key
                                     - key
@@ -670,6 +730,10 @@ spec:
                               type: object
                               type: object
                             target:
                             target:
                               default: Data
                               default: Data
+                              enum:
+                              - Data
+                              - Annotations
+                              - Labels
                               type: string
                               type: string
                           type: object
                           type: object
                         type: array
                         type: array

+ 3 - 0
config/crds/bases/external-secrets.io_pushsecrets.yaml

@@ -80,6 +80,9 @@ spec:
                 default: None
                 default: None
                 description: 'Deletion Policy to handle Secrets in the provider. Possible
                 description: 'Deletion Policy to handle Secrets in the provider. Possible
                   Values: "Delete/None". Defaults to "None".'
                   Values: "Delete/None". Defaults to "None".'
+                enum:
+                - Delete
+                - None
                 type: string
                 type: string
               refreshInterval:
               refreshInterval:
                 description: The Interval to which External Secrets will try to push
                 description: The Interval to which External Secrets will try to push

+ 114 - 0
deploy/crds/bundle.yaml

@@ -72,16 +72,28 @@ spec:
                               conversionStrategy:
                               conversionStrategy:
                                 default: Default
                                 default: Default
                                 description: Used to define a conversion Strategy
                                 description: Used to define a conversion Strategy
+                                enum:
+                                  - Default
+                                  - Unicode
                                 type: string
                                 type: string
                               decodingStrategy:
                               decodingStrategy:
                                 default: None
                                 default: None
                                 description: Used to define a decoding Strategy
                                 description: Used to define a decoding Strategy
+                                enum:
+                                  - Auto
+                                  - Base64
+                                  - Base64URL
+                                  - None
                                 type: string
                                 type: string
                               key:
                               key:
                                 description: Key is the key used in the Provider, mandatory
                                 description: Key is the key used in the Provider, mandatory
                                 type: string
                                 type: string
                               metadataPolicy:
                               metadataPolicy:
+                                default: None
                                 description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None
                                 description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None
+                                enum:
+                                  - None
+                                  - Fetch
                                 type: string
                                 type: string
                               property:
                               property:
                                 description: Used to select a specific property of the Provider value (if a map), if supported
                                 description: Used to select a specific property of the Provider value (if a map), if supported
@@ -144,16 +156,28 @@ spec:
                               conversionStrategy:
                               conversionStrategy:
                                 default: Default
                                 default: Default
                                 description: Used to define a conversion Strategy
                                 description: Used to define a conversion Strategy
+                                enum:
+                                  - Default
+                                  - Unicode
                                 type: string
                                 type: string
                               decodingStrategy:
                               decodingStrategy:
                                 default: None
                                 default: None
                                 description: Used to define a decoding Strategy
                                 description: Used to define a decoding Strategy
+                                enum:
+                                  - Auto
+                                  - Base64
+                                  - Base64URL
+                                  - None
                                 type: string
                                 type: string
                               key:
                               key:
                                 description: Key is the key used in the Provider, mandatory
                                 description: Key is the key used in the Provider, mandatory
                                 type: string
                                 type: string
                               metadataPolicy:
                               metadataPolicy:
+                                default: None
                                 description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None
                                 description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None
+                                enum:
+                                  - None
+                                  - Fetch
                                 type: string
                                 type: string
                               property:
                               property:
                                 description: Used to select a specific property of the Provider value (if a map), if supported
                                 description: Used to select a specific property of the Provider value (if a map), if supported
@@ -170,10 +194,18 @@ spec:
                               conversionStrategy:
                               conversionStrategy:
                                 default: Default
                                 default: Default
                                 description: Used to define a conversion Strategy
                                 description: Used to define a conversion Strategy
+                                enum:
+                                  - Default
+                                  - Unicode
                                 type: string
                                 type: string
                               decodingStrategy:
                               decodingStrategy:
                                 default: None
                                 default: None
                                 description: Used to define a decoding Strategy
                                 description: Used to define a decoding Strategy
+                                enum:
+                                  - Auto
+                                  - Base64
+                                  - Base64URL
+                                  - None
                                 type: string
                                 type: string
                               name:
                               name:
                                 description: Finds secrets based on the name.
                                 description: Finds secrets based on the name.
@@ -309,9 +341,16 @@ spec:
                               type: object
                               type: object
                             engineVersion:
                             engineVersion:
                               default: v2
                               default: v2
+                              description: EngineVersion specifies the template engine version that should be used to compile/execute the template specified in .data and .templateFrom[].
+                              enum:
+                                - v1
+                                - v2
                               type: string
                               type: string
                             mergePolicy:
                             mergePolicy:
                               default: Replace
                               default: Replace
+                              enum:
+                                - Replace
+                                - Merge
                               type: string
                               type: string
                             metadata:
                             metadata:
                               description: ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint.
                               description: ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint.
@@ -337,6 +376,9 @@ spec:
                                               type: string
                                               type: string
                                             templateAs:
                                             templateAs:
                                               default: Values
                                               default: Values
+                                              enum:
+                                                - Values
+                                                - KeysAndValues
                                               type: string
                                               type: string
                                           required:
                                           required:
                                             - key
                                             - key
@@ -359,6 +401,9 @@ spec:
                                               type: string
                                               type: string
                                             templateAs:
                                             templateAs:
                                               default: Values
                                               default: Values
+                                              enum:
+                                                - Values
+                                                - KeysAndValues
                                               type: string
                                               type: string
                                           required:
                                           required:
                                             - key
                                             - key
@@ -372,6 +417,10 @@ spec:
                                     type: object
                                     type: object
                                   target:
                                   target:
                                     default: Data
                                     default: Data
+                                    enum:
+                                      - Data
+                                      - Annotations
+                                      - Labels
                                     type: string
                                     type: string
                                 type: object
                                 type: object
                               type: array
                               type: array
@@ -3478,6 +3527,9 @@ spec:
                           conversionStrategy:
                           conversionStrategy:
                             default: Default
                             default: Default
                             description: Used to define a conversion Strategy
                             description: Used to define a conversion Strategy
+                            enum:
+                              - Default
+                              - Unicode
                             type: string
                             type: string
                           key:
                           key:
                             description: Key is the key used in the Provider, mandatory
                             description: Key is the key used in the Provider, mandatory
@@ -3506,6 +3558,9 @@ spec:
                       conversionStrategy:
                       conversionStrategy:
                         default: Default
                         default: Default
                         description: Used to define a conversion Strategy
                         description: Used to define a conversion Strategy
+                        enum:
+                          - Default
+                          - Unicode
                         type: string
                         type: string
                       key:
                       key:
                         description: Key is the key used in the Provider, mandatory
                         description: Key is the key used in the Provider, mandatory
@@ -3542,6 +3597,10 @@ spec:
                     creationPolicy:
                     creationPolicy:
                       default: Owner
                       default: Owner
                       description: CreationPolicy defines rules on how to create the resulting Secret Defaults to 'Owner'
                       description: CreationPolicy defines rules on how to create the resulting Secret Defaults to 'Owner'
+                      enum:
+                        - Owner
+                        - Merge
+                        - None
                       type: string
                       type: string
                     immutable:
                     immutable:
                       description: Immutable defines if the final secret will be immutable
                       description: Immutable defines if the final secret will be immutable
@@ -3559,6 +3618,9 @@ spec:
                         engineVersion:
                         engineVersion:
                           default: v1
                           default: v1
                           description: EngineVersion specifies the template engine version that should be used to compile/execute the template specified in .data and .templateFrom[].
                           description: EngineVersion specifies the template engine version that should be used to compile/execute the template specified in .data and .templateFrom[].
+                          enum:
+                            - v1
+                            - v2
                           type: string
                           type: string
                         metadata:
                         metadata:
                           description: ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint.
                           description: ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint.
@@ -3704,16 +3766,28 @@ spec:
                           conversionStrategy:
                           conversionStrategy:
                             default: Default
                             default: Default
                             description: Used to define a conversion Strategy
                             description: Used to define a conversion Strategy
+                            enum:
+                              - Default
+                              - Unicode
                             type: string
                             type: string
                           decodingStrategy:
                           decodingStrategy:
                             default: None
                             default: None
                             description: Used to define a decoding Strategy
                             description: Used to define a decoding Strategy
+                            enum:
+                              - Auto
+                              - Base64
+                              - Base64URL
+                              - None
                             type: string
                             type: string
                           key:
                           key:
                             description: Key is the key used in the Provider, mandatory
                             description: Key is the key used in the Provider, mandatory
                             type: string
                             type: string
                           metadataPolicy:
                           metadataPolicy:
+                            default: None
                             description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None
                             description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None
+                            enum:
+                              - None
+                              - Fetch
                             type: string
                             type: string
                           property:
                           property:
                             description: Used to select a specific property of the Provider value (if a map), if supported
                             description: Used to select a specific property of the Provider value (if a map), if supported
@@ -3776,16 +3850,28 @@ spec:
                           conversionStrategy:
                           conversionStrategy:
                             default: Default
                             default: Default
                             description: Used to define a conversion Strategy
                             description: Used to define a conversion Strategy
+                            enum:
+                              - Default
+                              - Unicode
                             type: string
                             type: string
                           decodingStrategy:
                           decodingStrategy:
                             default: None
                             default: None
                             description: Used to define a decoding Strategy
                             description: Used to define a decoding Strategy
+                            enum:
+                              - Auto
+                              - Base64
+                              - Base64URL
+                              - None
                             type: string
                             type: string
                           key:
                           key:
                             description: Key is the key used in the Provider, mandatory
                             description: Key is the key used in the Provider, mandatory
                             type: string
                             type: string
                           metadataPolicy:
                           metadataPolicy:
+                            default: None
                             description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None
                             description: Policy for fetching tags/labels from provider secrets, possible options are Fetch, None. Defaults to None
+                            enum:
+                              - None
+                              - Fetch
                             type: string
                             type: string
                           property:
                           property:
                             description: Used to select a specific property of the Provider value (if a map), if supported
                             description: Used to select a specific property of the Provider value (if a map), if supported
@@ -3802,10 +3888,18 @@ spec:
                           conversionStrategy:
                           conversionStrategy:
                             default: Default
                             default: Default
                             description: Used to define a conversion Strategy
                             description: Used to define a conversion Strategy
+                            enum:
+                              - Default
+                              - Unicode
                             type: string
                             type: string
                           decodingStrategy:
                           decodingStrategy:
                             default: None
                             default: None
                             description: Used to define a decoding Strategy
                             description: Used to define a decoding Strategy
+                            enum:
+                              - Auto
+                              - Base64
+                              - Base64URL
+                              - None
                             type: string
                             type: string
                           name:
                           name:
                             description: Finds secrets based on the name.
                             description: Finds secrets based on the name.
@@ -3941,9 +4035,16 @@ spec:
                           type: object
                           type: object
                         engineVersion:
                         engineVersion:
                           default: v2
                           default: v2
+                          description: EngineVersion specifies the template engine version that should be used to compile/execute the template specified in .data and .templateFrom[].
+                          enum:
+                            - v1
+                            - v2
                           type: string
                           type: string
                         mergePolicy:
                         mergePolicy:
                           default: Replace
                           default: Replace
+                          enum:
+                            - Replace
+                            - Merge
                           type: string
                           type: string
                         metadata:
                         metadata:
                           description: ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint.
                           description: ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint.
@@ -3969,6 +4070,9 @@ spec:
                                           type: string
                                           type: string
                                         templateAs:
                                         templateAs:
                                           default: Values
                                           default: Values
+                                          enum:
+                                            - Values
+                                            - KeysAndValues
                                           type: string
                                           type: string
                                       required:
                                       required:
                                         - key
                                         - key
@@ -3991,6 +4095,9 @@ spec:
                                           type: string
                                           type: string
                                         templateAs:
                                         templateAs:
                                           default: Values
                                           default: Values
+                                          enum:
+                                            - Values
+                                            - KeysAndValues
                                           type: string
                                           type: string
                                       required:
                                       required:
                                         - key
                                         - key
@@ -4004,6 +4111,10 @@ spec:
                                 type: object
                                 type: object
                               target:
                               target:
                                 default: Data
                                 default: Data
+                                enum:
+                                  - Data
+                                  - Annotations
+                                  - Labels
                                 type: string
                                 type: string
                             type: object
                             type: object
                           type: array
                           type: array
@@ -4141,6 +4252,9 @@ spec:
                 deletionPolicy:
                 deletionPolicy:
                   default: None
                   default: None
                   description: 'Deletion Policy to handle Secrets in the provider. Possible Values: "Delete/None". Defaults to "None".'
                   description: 'Deletion Policy to handle Secrets in the provider. Possible Values: "Delete/None". Defaults to "None".'
+                  enum:
+                    - Delete
+                    - None
                   type: string
                   type: string
                 refreshInterval:
                 refreshInterval:
                   description: The Interval to which External Secrets will try to push a secret definition
                   description: The Interval to which External Secrets will try to push a secret definition

+ 3 - 0
docs/api/spec.md

@@ -3306,6 +3306,9 @@ TemplateEngineVersion
 </em>
 </em>
 </td>
 </td>
 <td>
 <td>
+<p>EngineVersion specifies the template engine version
+that should be used to compile/execute the
+template specified in .data and .templateFrom[].</p>
 </td>
 </td>
 </tr>
 </tr>
 <tr>
 <tr>