You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by as...@apache.org on 2022/10/03 16:23:11 UTC

[camel-k] branch main updated (df59096ab -> 4a12ebc1d)

This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git


    from df59096ab chore(e2e): added observed generation check
     new 2b0a4348a chore(api): Add validation to trait enum parameters in CRDs
     new 4a12ebc1d fix(api): Quarkus package type validation should not apply to array

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../bases/camel.apache.org_integrationkits.yaml    |  3 +
 .../camel.apache.org_integrationplatforms.yaml     | 92 +++++++++++++++++++++-
 .../crd/bases/camel.apache.org_integrations.yaml   | 46 ++++++++++-
 .../bases/camel.apache.org_kameletbindings.yaml    | 46 ++++++++++-
 docs/modules/ROOT/partials/apis/camel-k-crds.adoc  |  4 +-
 docs/modules/traits/pages/cron.adoc                |  2 +-
 docs/modules/traits/pages/knative-service.adoc     |  2 +-
 helm/camel-k/crds/crd-integration-kit.yaml         |  3 +
 helm/camel-k/crds/crd-integration-platform.yaml    | 92 +++++++++++++++++++++-
 helm/camel-k/crds/crd-integration.yaml             | 46 ++++++++++-
 helm/camel-k/crds/crd-kamelet-binding.yaml         | 46 ++++++++++-
 pkg/apis/camel/v1/trait/container.go               |  1 +
 pkg/apis/camel/v1/trait/cron.go                    |  3 +-
 pkg/apis/camel/v1/trait/deployer.go                |  1 +
 pkg/apis/camel/v1/trait/gc.go                      |  1 +
 pkg/apis/camel/v1/trait/knative_service.go         |  4 +-
 pkg/apis/camel/v1/trait/logging.go                 |  1 +
 pkg/apis/camel/v1/trait/quarkus.go                 |  1 +
 pkg/apis/camel/v1/trait/route.go                   |  2 +
 pkg/apis/camel/v1/trait/service.go                 |  1 +
 pkg/resources/resources.go                         | 20 ++---
 resources/traits.yaml                              |  4 +-
 22 files changed, 387 insertions(+), 34 deletions(-)


[camel-k] 01/02: chore(api): Add validation to trait enum parameters in CRDs

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 2b0a4348a93553732b3315bd5d41a0cdfd3c7c26
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Thu Sep 29 10:59:06 2022 +0200

    chore(api): Add validation to trait enum parameters in CRDs
---
 .../bases/camel.apache.org_integrationkits.yaml    |  3 +
 .../camel.apache.org_integrationplatforms.yaml     | 92 +++++++++++++++++++++-
 .../crd/bases/camel.apache.org_integrations.yaml   | 46 ++++++++++-
 .../bases/camel.apache.org_kameletbindings.yaml    | 46 ++++++++++-
 docs/modules/ROOT/partials/apis/camel-k-crds.adoc  |  4 +-
 docs/modules/traits/pages/cron.adoc                |  2 +-
 docs/modules/traits/pages/knative-service.adoc     |  2 +-
 helm/camel-k/crds/crd-integration-kit.yaml         |  3 +
 helm/camel-k/crds/crd-integration-platform.yaml    | 92 +++++++++++++++++++++-
 helm/camel-k/crds/crd-integration.yaml             | 46 ++++++++++-
 helm/camel-k/crds/crd-kamelet-binding.yaml         | 46 ++++++++++-
 pkg/apis/camel/v1/trait/container.go               |  1 +
 pkg/apis/camel/v1/trait/cron.go                    |  3 +-
 pkg/apis/camel/v1/trait/deployer.go                |  1 +
 pkg/apis/camel/v1/trait/gc.go                      |  1 +
 pkg/apis/camel/v1/trait/knative_service.go         |  4 +-
 pkg/apis/camel/v1/trait/logging.go                 |  1 +
 pkg/apis/camel/v1/trait/quarkus.go                 |  1 +
 pkg/apis/camel/v1/trait/route.go                   |  2 +
 pkg/apis/camel/v1/trait/service.go                 |  1 +
 pkg/resources/resources.go                         | 20 ++---
 resources/traits.yaml                              |  4 +-
 22 files changed, 387 insertions(+), 34 deletions(-)

diff --git a/config/crd/bases/camel.apache.org_integrationkits.yaml b/config/crd/bases/camel.apache.org_integrationkits.yaml
index a6c966e2f..8d51628ab 100644
--- a/config/crd/bases/camel.apache.org_integrationkits.yaml
+++ b/config/crd/bases/camel.apache.org_integrationkits.yaml
@@ -185,6 +185,9 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
+                        enum:
+                        - fast-jar
+                        - native
                         items:
                           description: Quarkus package type.
                           type: string
diff --git a/config/crd/bases/camel.apache.org_integrationplatforms.yaml b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
index e990fd40a..90545b2bc 100644
--- a/config/crd/bases/camel.apache.org_integrationplatforms.yaml
+++ b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
@@ -501,6 +501,10 @@ spec:
                         type: string
                       imagePullPolicy:
                         description: 'The pull policy: Always|Never|IfNotPresent'
+                        enum:
+                        - Always
+                        - Never
+                        - IfNotPresent
                         type: string
                       limitCPU:
                         description: The maximum amount of CPU required.
@@ -626,7 +630,7 @@ spec:
                           when all routes are either starting from a periodic consumer
                           (only `cron`, `timer` and `quartz` are supported) or a passive
                           consumer (e.g. `direct` is a passive consumer). \n It's
-                          required that all periodic consumers have the same period
+                          required that all periodic consumers have the same period,
                           and it can be expressed as cron schedule (e.g. `1m` can
                           be expressed as `0/1 * * * *`, while `35m` or `50s` cannot)."
                         type: boolean
@@ -652,6 +656,10 @@ spec:
                           runs, skipping next run if previous run hasn''t finished
                           yet; - "Replace": cancels currently running job and replaces
                           it with a new one'
+                        enum:
+                        - Allow
+                        - Forbid
+                        - Replace
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -708,6 +716,10 @@ spec:
                         description: Allows to explicitly select the desired deployment
                           kind between `deployment`, `cron-job` or `knative-service`
                           when creating the resources for running the integration.
+                        enum:
+                        - deployment
+                        - cron-job
+                        - knative-service
                         type: string
                       useSSA:
                         description: Use server-side apply to update the owned resources
@@ -815,6 +827,10 @@ spec:
                         description: 'Discovery client cache to be used, either `disabled`,
                           `disk` or `memory` (default `memory`). Deprecated: to be
                           removed from trait configuration.'
+                        enum:
+                        - disabled
+                        - disk
+                        - memory
                         type: string
                       enabled:
                         description: Can be used to enable or disable a trait. All
@@ -1157,7 +1173,7 @@ spec:
                         description: "Automatically deploy the integration as Knative
                           service when all conditions hold: \n * Integration is using
                           the Knative profile * All routes are either starting from
-                          a HTTP based consumer or a passive consumer (e.g. `direct`
+                          an HTTP based consumer or a passive consumer (e.g. `direct`
                           is a passive consumer)"
                         type: boolean
                       autoscalingMetric:
@@ -1175,6 +1191,9 @@ spec:
                           (e.g. to set `hpa.autoscaling.knative.dev` or `kpa.autoscaling.knative.dev`
                           autoscaling). \n Refer to the Knative documentation for
                           more information."
+                        enum:
+                        - kpa.autoscaling.knative.dev
+                        - hpa.autoscaling.knative.dev
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -1209,6 +1228,8 @@ spec:
                           a private service. Specifically, this option applies the
                           `networking.knative.dev/visibility` label to Knative service.
                           \n Refer to the Knative documentation for more information."
+                        enum:
+                        - cluster-local
                         type: string
                     type: object
                   logging:
@@ -1237,6 +1258,12 @@ spec:
                         type: boolean
                       level:
                         description: Adjust the logging level (defaults to INFO)
+                        enum:
+                        - FATAL
+                        - WARN
+                        - INFO
+                        - DEBUG
+                        - TRACE
                         type: string
                     type: object
                   master:
@@ -1471,6 +1498,9 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
+                        enum:
+                        - fast-jar
+                        - native
                         items:
                           description: Quarkus package type.
                           type: string
@@ -1552,6 +1582,10 @@ spec:
                         description: "To configure how to deal with insecure traffic,
                           e.g. `Allow`, `Disable` or `Redirect` traffic. \n Refer
                           to the OpenShift route documentation for additional information."
+                        enum:
+                        - None
+                        - Allow
+                        - Redirect
                         type: string
                       tlsKey:
                         description: "The TLS certificate key contents. \n Refer to
@@ -1569,6 +1603,10 @@ spec:
                         description: "The TLS termination type, like `edge`, `passthrough`
                           or `reencrypt`. \n Refer to the OpenShift route documentation
                           for additional information."
+                        enum:
+                        - edge
+                        - reencrypt
+                        - passthrough
                         type: string
                     type: object
                   service:
@@ -1594,6 +1632,10 @@ spec:
                       type:
                         description: The type of service to be used, either 'ClusterIP',
                           'NodePort' or 'LoadBalancer'.
+                        enum:
+                        - ClusterIP
+                        - NodePort
+                        - LoadBalancer
                         type: string
                     type: object
                   service-binding:
@@ -2139,6 +2181,10 @@ spec:
                         type: string
                       imagePullPolicy:
                         description: 'The pull policy: Always|Never|IfNotPresent'
+                        enum:
+                        - Always
+                        - Never
+                        - IfNotPresent
                         type: string
                       limitCPU:
                         description: The maximum amount of CPU required.
@@ -2264,7 +2310,7 @@ spec:
                           when all routes are either starting from a periodic consumer
                           (only `cron`, `timer` and `quartz` are supported) or a passive
                           consumer (e.g. `direct` is a passive consumer). \n It's
-                          required that all periodic consumers have the same period
+                          required that all periodic consumers have the same period,
                           and it can be expressed as cron schedule (e.g. `1m` can
                           be expressed as `0/1 * * * *`, while `35m` or `50s` cannot)."
                         type: boolean
@@ -2290,6 +2336,10 @@ spec:
                           runs, skipping next run if previous run hasn''t finished
                           yet; - "Replace": cancels currently running job and replaces
                           it with a new one'
+                        enum:
+                        - Allow
+                        - Forbid
+                        - Replace
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -2346,6 +2396,10 @@ spec:
                         description: Allows to explicitly select the desired deployment
                           kind between `deployment`, `cron-job` or `knative-service`
                           when creating the resources for running the integration.
+                        enum:
+                        - deployment
+                        - cron-job
+                        - knative-service
                         type: string
                       useSSA:
                         description: Use server-side apply to update the owned resources
@@ -2453,6 +2507,10 @@ spec:
                         description: 'Discovery client cache to be used, either `disabled`,
                           `disk` or `memory` (default `memory`). Deprecated: to be
                           removed from trait configuration.'
+                        enum:
+                        - disabled
+                        - disk
+                        - memory
                         type: string
                       enabled:
                         description: Can be used to enable or disable a trait. All
@@ -2795,7 +2853,7 @@ spec:
                         description: "Automatically deploy the integration as Knative
                           service when all conditions hold: \n * Integration is using
                           the Knative profile * All routes are either starting from
-                          a HTTP based consumer or a passive consumer (e.g. `direct`
+                          an HTTP based consumer or a passive consumer (e.g. `direct`
                           is a passive consumer)"
                         type: boolean
                       autoscalingMetric:
@@ -2813,6 +2871,9 @@ spec:
                           (e.g. to set `hpa.autoscaling.knative.dev` or `kpa.autoscaling.knative.dev`
                           autoscaling). \n Refer to the Knative documentation for
                           more information."
+                        enum:
+                        - kpa.autoscaling.knative.dev
+                        - hpa.autoscaling.knative.dev
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -2847,6 +2908,8 @@ spec:
                           a private service. Specifically, this option applies the
                           `networking.knative.dev/visibility` label to Knative service.
                           \n Refer to the Knative documentation for more information."
+                        enum:
+                        - cluster-local
                         type: string
                     type: object
                   logging:
@@ -2875,6 +2938,12 @@ spec:
                         type: boolean
                       level:
                         description: Adjust the logging level (defaults to INFO)
+                        enum:
+                        - FATAL
+                        - WARN
+                        - INFO
+                        - DEBUG
+                        - TRACE
                         type: string
                     type: object
                   master:
@@ -3109,6 +3178,9 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
+                        enum:
+                        - fast-jar
+                        - native
                         items:
                           description: Quarkus package type.
                           type: string
@@ -3190,6 +3262,10 @@ spec:
                         description: "To configure how to deal with insecure traffic,
                           e.g. `Allow`, `Disable` or `Redirect` traffic. \n Refer
                           to the OpenShift route documentation for additional information."
+                        enum:
+                        - None
+                        - Allow
+                        - Redirect
                         type: string
                       tlsKey:
                         description: "The TLS certificate key contents. \n Refer to
@@ -3207,6 +3283,10 @@ spec:
                         description: "The TLS termination type, like `edge`, `passthrough`
                           or `reencrypt`. \n Refer to the OpenShift route documentation
                           for additional information."
+                        enum:
+                        - edge
+                        - reencrypt
+                        - passthrough
                         type: string
                     type: object
                   service:
@@ -3232,6 +3312,10 @@ spec:
                       type:
                         description: The type of service to be used, either 'ClusterIP',
                           'NodePort' or 'LoadBalancer'.
+                        enum:
+                        - ClusterIP
+                        - NodePort
+                        - LoadBalancer
                         type: string
                     type: object
                   service-binding:
diff --git a/config/crd/bases/camel.apache.org_integrations.yaml b/config/crd/bases/camel.apache.org_integrations.yaml
index 00ce1ac6a..b08f6f3a6 100644
--- a/config/crd/bases/camel.apache.org_integrations.yaml
+++ b/config/crd/bases/camel.apache.org_integrations.yaml
@@ -6192,6 +6192,10 @@ spec:
                         type: string
                       imagePullPolicy:
                         description: 'The pull policy: Always|Never|IfNotPresent'
+                        enum:
+                        - Always
+                        - Never
+                        - IfNotPresent
                         type: string
                       limitCPU:
                         description: The maximum amount of CPU required.
@@ -6317,7 +6321,7 @@ spec:
                           when all routes are either starting from a periodic consumer
                           (only `cron`, `timer` and `quartz` are supported) or a passive
                           consumer (e.g. `direct` is a passive consumer). \n It's
-                          required that all periodic consumers have the same period
+                          required that all periodic consumers have the same period,
                           and it can be expressed as cron schedule (e.g. `1m` can
                           be expressed as `0/1 * * * *`, while `35m` or `50s` cannot)."
                         type: boolean
@@ -6343,6 +6347,10 @@ spec:
                           runs, skipping next run if previous run hasn''t finished
                           yet; - "Replace": cancels currently running job and replaces
                           it with a new one'
+                        enum:
+                        - Allow
+                        - Forbid
+                        - Replace
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -6399,6 +6407,10 @@ spec:
                         description: Allows to explicitly select the desired deployment
                           kind between `deployment`, `cron-job` or `knative-service`
                           when creating the resources for running the integration.
+                        enum:
+                        - deployment
+                        - cron-job
+                        - knative-service
                         type: string
                       useSSA:
                         description: Use server-side apply to update the owned resources
@@ -6506,6 +6518,10 @@ spec:
                         description: 'Discovery client cache to be used, either `disabled`,
                           `disk` or `memory` (default `memory`). Deprecated: to be
                           removed from trait configuration.'
+                        enum:
+                        - disabled
+                        - disk
+                        - memory
                         type: string
                       enabled:
                         description: Can be used to enable or disable a trait. All
@@ -6848,7 +6864,7 @@ spec:
                         description: "Automatically deploy the integration as Knative
                           service when all conditions hold: \n * Integration is using
                           the Knative profile * All routes are either starting from
-                          a HTTP based consumer or a passive consumer (e.g. `direct`
+                          an HTTP based consumer or a passive consumer (e.g. `direct`
                           is a passive consumer)"
                         type: boolean
                       autoscalingMetric:
@@ -6866,6 +6882,9 @@ spec:
                           (e.g. to set `hpa.autoscaling.knative.dev` or `kpa.autoscaling.knative.dev`
                           autoscaling). \n Refer to the Knative documentation for
                           more information."
+                        enum:
+                        - kpa.autoscaling.knative.dev
+                        - hpa.autoscaling.knative.dev
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -6900,6 +6919,8 @@ spec:
                           a private service. Specifically, this option applies the
                           `networking.knative.dev/visibility` label to Knative service.
                           \n Refer to the Knative documentation for more information."
+                        enum:
+                        - cluster-local
                         type: string
                     type: object
                   logging:
@@ -6928,6 +6949,12 @@ spec:
                         type: boolean
                       level:
                         description: Adjust the logging level (defaults to INFO)
+                        enum:
+                        - FATAL
+                        - WARN
+                        - INFO
+                        - DEBUG
+                        - TRACE
                         type: string
                     type: object
                   master:
@@ -7162,6 +7189,9 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
+                        enum:
+                        - fast-jar
+                        - native
                         items:
                           description: Quarkus package type.
                           type: string
@@ -7243,6 +7273,10 @@ spec:
                         description: "To configure how to deal with insecure traffic,
                           e.g. `Allow`, `Disable` or `Redirect` traffic. \n Refer
                           to the OpenShift route documentation for additional information."
+                        enum:
+                        - None
+                        - Allow
+                        - Redirect
                         type: string
                       tlsKey:
                         description: "The TLS certificate key contents. \n Refer to
@@ -7260,6 +7294,10 @@ spec:
                         description: "The TLS termination type, like `edge`, `passthrough`
                           or `reencrypt`. \n Refer to the OpenShift route documentation
                           for additional information."
+                        enum:
+                        - edge
+                        - reencrypt
+                        - passthrough
                         type: string
                     type: object
                   service:
@@ -7285,6 +7323,10 @@ spec:
                       type:
                         description: The type of service to be used, either 'ClusterIP',
                           'NodePort' or 'LoadBalancer'.
+                        enum:
+                        - ClusterIP
+                        - NodePort
+                        - LoadBalancer
                         type: string
                     type: object
                   service-binding:
diff --git a/config/crd/bases/camel.apache.org_kameletbindings.yaml b/config/crd/bases/camel.apache.org_kameletbindings.yaml
index dbf907941..d24809996 100644
--- a/config/crd/bases/camel.apache.org_kameletbindings.yaml
+++ b/config/crd/bases/camel.apache.org_kameletbindings.yaml
@@ -6470,6 +6470,10 @@ spec:
                             type: string
                           imagePullPolicy:
                             description: 'The pull policy: Always|Never|IfNotPresent'
+                            enum:
+                            - Always
+                            - Never
+                            - IfNotPresent
                             type: string
                           limitCPU:
                             description: The maximum amount of CPU required.
@@ -6600,7 +6604,7 @@ spec:
                               consumer (only `cron`, `timer` and `quartz` are supported)
                               or a passive consumer (e.g. `direct` is a passive consumer).
                               \n It's required that all periodic consumers have the
-                              same period and it can be expressed as cron schedule
+                              same period, and it can be expressed as cron schedule
                               (e.g. `1m` can be expressed as `0/1 * * * *`, while
                               `35m` or `50s` cannot)."
                             type: boolean
@@ -6626,6 +6630,10 @@ spec:
                               runs, skipping next run if previous run hasn''t finished
                               yet; - "Replace": cancels currently running job and
                               replaces it with a new one'
+                            enum:
+                            - Allow
+                            - Forbid
+                            - Replace
                             type: string
                           configuration:
                             description: 'Legacy trait configuration parameters. Deprecated:
@@ -6682,6 +6690,10 @@ spec:
                             description: Allows to explicitly select the desired deployment
                               kind between `deployment`, `cron-job` or `knative-service`
                               when creating the resources for running the integration.
+                            enum:
+                            - deployment
+                            - cron-job
+                            - knative-service
                             type: string
                           useSSA:
                             description: Use server-side apply to update the owned
@@ -6789,6 +6801,10 @@ spec:
                             description: 'Discovery client cache to be used, either
                               `disabled`, `disk` or `memory` (default `memory`). Deprecated:
                               to be removed from trait configuration.'
+                            enum:
+                            - disabled
+                            - disk
+                            - memory
                             type: string
                           enabled:
                             description: Can be used to enable or disable a trait.
@@ -7136,7 +7152,7 @@ spec:
                             description: "Automatically deploy the integration as
                               Knative service when all conditions hold: \n * Integration
                               is using the Knative profile * All routes are either
-                              starting from a HTTP based consumer or a passive consumer
+                              starting from an HTTP based consumer or a passive consumer
                               (e.g. `direct` is a passive consumer)"
                             type: boolean
                           autoscalingMetric:
@@ -7156,6 +7172,9 @@ spec:
                               property (e.g. to set `hpa.autoscaling.knative.dev`
                               or `kpa.autoscaling.knative.dev` autoscaling). \n Refer
                               to the Knative documentation for more information."
+                            enum:
+                            - kpa.autoscaling.knative.dev
+                            - hpa.autoscaling.knative.dev
                             type: string
                           configuration:
                             description: 'Legacy trait configuration parameters. Deprecated:
@@ -7192,6 +7211,8 @@ spec:
                               applies the `networking.knative.dev/visibility` label
                               to Knative service. \n Refer to the Knative documentation
                               for more information."
+                            enum:
+                            - cluster-local
                             type: string
                         type: object
                       logging:
@@ -7220,6 +7241,12 @@ spec:
                             type: boolean
                           level:
                             description: Adjust the logging level (defaults to INFO)
+                            enum:
+                            - FATAL
+                            - WARN
+                            - INFO
+                            - DEBUG
+                            - TRACE
                             type: string
                         type: object
                       master:
@@ -7454,6 +7481,9 @@ spec:
                               The kit corresponding to the first package type will
                               be assigned to the integration in case no existing kit
                               that matches the integration exists.
+                            enum:
+                            - fast-jar
+                            - native
                             items:
                               description: Quarkus package type.
                               type: string
@@ -7541,6 +7571,10 @@ spec:
                               e.g. `Allow`, `Disable` or `Redirect` traffic. \n Refer
                               to the OpenShift route documentation for additional
                               information."
+                            enum:
+                            - None
+                            - Allow
+                            - Redirect
                             type: string
                           tlsKey:
                             description: "The TLS certificate key contents. \n Refer
@@ -7560,6 +7594,10 @@ spec:
                             description: "The TLS termination type, like `edge`, `passthrough`
                               or `reencrypt`. \n Refer to the OpenShift route documentation
                               for additional information."
+                            enum:
+                            - edge
+                            - reencrypt
+                            - passthrough
                             type: string
                         type: object
                       service:
@@ -7585,6 +7623,10 @@ spec:
                           type:
                             description: The type of service to be used, either 'ClusterIP',
                               'NodePort' or 'LoadBalancer'.
+                            enum:
+                            - ClusterIP
+                            - NodePort
+                            - LoadBalancer
                             type: string
                         type: object
                       service-binding:
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index 6ed75c0d5..a268fd66d 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -4101,7 +4101,7 @@ bool
 Automatically deploy the integration as CronJob when all routes are
 either starting from a periodic consumer (only `cron`, `timer` and `quartz` are supported) or a passive consumer (e.g. `direct` is a passive consumer).
 
-It's required that all periodic consumers have the same period and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`,
+It's required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`,
 while `35m` or `50s` cannot).
 
 |`startingDeadlineSeconds` +
@@ -4913,7 +4913,7 @@ bool
 Automatically deploy the integration as Knative service when all conditions hold:
 
 * Integration is using the Knative profile
-* All routes are either starting from a HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer)
+* All routes are either starting from an HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer)
 
 
 |===
diff --git a/docs/modules/traits/pages/cron.adoc b/docs/modules/traits/pages/cron.adoc
index 8708acfda..60d90f904 100755
--- a/docs/modules/traits/pages/cron.adoc
+++ b/docs/modules/traits/pages/cron.adoc
@@ -68,7 +68,7 @@ Valid values are:
 | Automatically deploy the integration as CronJob when all routes are
 either starting from a periodic consumer (only `cron`, `timer` and `quartz` are supported) or a passive consumer (e.g. `direct` is a passive consumer).
 
-It's required that all periodic consumers have the same period and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`,
+It's required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`,
 while `35m` or `50s` cannot).
 
 | cron.starting-deadline-seconds
diff --git a/docs/modules/traits/pages/knative-service.adoc b/docs/modules/traits/pages/knative-service.adoc
index 08c9a1e6a..e9729d059 100755
--- a/docs/modules/traits/pages/knative-service.adoc
+++ b/docs/modules/traits/pages/knative-service.adoc
@@ -79,7 +79,7 @@ Refer to the Knative documentation for more information.
 | Automatically deploy the integration as Knative service when all conditions hold:
 
 * Integration is using the Knative profile
-* All routes are either starting from a HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer)
+* All routes are either starting from an HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer)
 
 |===
 
diff --git a/helm/camel-k/crds/crd-integration-kit.yaml b/helm/camel-k/crds/crd-integration-kit.yaml
index a6c966e2f..8d51628ab 100644
--- a/helm/camel-k/crds/crd-integration-kit.yaml
+++ b/helm/camel-k/crds/crd-integration-kit.yaml
@@ -185,6 +185,9 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
+                        enum:
+                        - fast-jar
+                        - native
                         items:
                           description: Quarkus package type.
                           type: string
diff --git a/helm/camel-k/crds/crd-integration-platform.yaml b/helm/camel-k/crds/crd-integration-platform.yaml
index e990fd40a..90545b2bc 100644
--- a/helm/camel-k/crds/crd-integration-platform.yaml
+++ b/helm/camel-k/crds/crd-integration-platform.yaml
@@ -501,6 +501,10 @@ spec:
                         type: string
                       imagePullPolicy:
                         description: 'The pull policy: Always|Never|IfNotPresent'
+                        enum:
+                        - Always
+                        - Never
+                        - IfNotPresent
                         type: string
                       limitCPU:
                         description: The maximum amount of CPU required.
@@ -626,7 +630,7 @@ spec:
                           when all routes are either starting from a periodic consumer
                           (only `cron`, `timer` and `quartz` are supported) or a passive
                           consumer (e.g. `direct` is a passive consumer). \n It's
-                          required that all periodic consumers have the same period
+                          required that all periodic consumers have the same period,
                           and it can be expressed as cron schedule (e.g. `1m` can
                           be expressed as `0/1 * * * *`, while `35m` or `50s` cannot)."
                         type: boolean
@@ -652,6 +656,10 @@ spec:
                           runs, skipping next run if previous run hasn''t finished
                           yet; - "Replace": cancels currently running job and replaces
                           it with a new one'
+                        enum:
+                        - Allow
+                        - Forbid
+                        - Replace
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -708,6 +716,10 @@ spec:
                         description: Allows to explicitly select the desired deployment
                           kind between `deployment`, `cron-job` or `knative-service`
                           when creating the resources for running the integration.
+                        enum:
+                        - deployment
+                        - cron-job
+                        - knative-service
                         type: string
                       useSSA:
                         description: Use server-side apply to update the owned resources
@@ -815,6 +827,10 @@ spec:
                         description: 'Discovery client cache to be used, either `disabled`,
                           `disk` or `memory` (default `memory`). Deprecated: to be
                           removed from trait configuration.'
+                        enum:
+                        - disabled
+                        - disk
+                        - memory
                         type: string
                       enabled:
                         description: Can be used to enable or disable a trait. All
@@ -1157,7 +1173,7 @@ spec:
                         description: "Automatically deploy the integration as Knative
                           service when all conditions hold: \n * Integration is using
                           the Knative profile * All routes are either starting from
-                          a HTTP based consumer or a passive consumer (e.g. `direct`
+                          an HTTP based consumer or a passive consumer (e.g. `direct`
                           is a passive consumer)"
                         type: boolean
                       autoscalingMetric:
@@ -1175,6 +1191,9 @@ spec:
                           (e.g. to set `hpa.autoscaling.knative.dev` or `kpa.autoscaling.knative.dev`
                           autoscaling). \n Refer to the Knative documentation for
                           more information."
+                        enum:
+                        - kpa.autoscaling.knative.dev
+                        - hpa.autoscaling.knative.dev
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -1209,6 +1228,8 @@ spec:
                           a private service. Specifically, this option applies the
                           `networking.knative.dev/visibility` label to Knative service.
                           \n Refer to the Knative documentation for more information."
+                        enum:
+                        - cluster-local
                         type: string
                     type: object
                   logging:
@@ -1237,6 +1258,12 @@ spec:
                         type: boolean
                       level:
                         description: Adjust the logging level (defaults to INFO)
+                        enum:
+                        - FATAL
+                        - WARN
+                        - INFO
+                        - DEBUG
+                        - TRACE
                         type: string
                     type: object
                   master:
@@ -1471,6 +1498,9 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
+                        enum:
+                        - fast-jar
+                        - native
                         items:
                           description: Quarkus package type.
                           type: string
@@ -1552,6 +1582,10 @@ spec:
                         description: "To configure how to deal with insecure traffic,
                           e.g. `Allow`, `Disable` or `Redirect` traffic. \n Refer
                           to the OpenShift route documentation for additional information."
+                        enum:
+                        - None
+                        - Allow
+                        - Redirect
                         type: string
                       tlsKey:
                         description: "The TLS certificate key contents. \n Refer to
@@ -1569,6 +1603,10 @@ spec:
                         description: "The TLS termination type, like `edge`, `passthrough`
                           or `reencrypt`. \n Refer to the OpenShift route documentation
                           for additional information."
+                        enum:
+                        - edge
+                        - reencrypt
+                        - passthrough
                         type: string
                     type: object
                   service:
@@ -1594,6 +1632,10 @@ spec:
                       type:
                         description: The type of service to be used, either 'ClusterIP',
                           'NodePort' or 'LoadBalancer'.
+                        enum:
+                        - ClusterIP
+                        - NodePort
+                        - LoadBalancer
                         type: string
                     type: object
                   service-binding:
@@ -2139,6 +2181,10 @@ spec:
                         type: string
                       imagePullPolicy:
                         description: 'The pull policy: Always|Never|IfNotPresent'
+                        enum:
+                        - Always
+                        - Never
+                        - IfNotPresent
                         type: string
                       limitCPU:
                         description: The maximum amount of CPU required.
@@ -2264,7 +2310,7 @@ spec:
                           when all routes are either starting from a periodic consumer
                           (only `cron`, `timer` and `quartz` are supported) or a passive
                           consumer (e.g. `direct` is a passive consumer). \n It's
-                          required that all periodic consumers have the same period
+                          required that all periodic consumers have the same period,
                           and it can be expressed as cron schedule (e.g. `1m` can
                           be expressed as `0/1 * * * *`, while `35m` or `50s` cannot)."
                         type: boolean
@@ -2290,6 +2336,10 @@ spec:
                           runs, skipping next run if previous run hasn''t finished
                           yet; - "Replace": cancels currently running job and replaces
                           it with a new one'
+                        enum:
+                        - Allow
+                        - Forbid
+                        - Replace
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -2346,6 +2396,10 @@ spec:
                         description: Allows to explicitly select the desired deployment
                           kind between `deployment`, `cron-job` or `knative-service`
                           when creating the resources for running the integration.
+                        enum:
+                        - deployment
+                        - cron-job
+                        - knative-service
                         type: string
                       useSSA:
                         description: Use server-side apply to update the owned resources
@@ -2453,6 +2507,10 @@ spec:
                         description: 'Discovery client cache to be used, either `disabled`,
                           `disk` or `memory` (default `memory`). Deprecated: to be
                           removed from trait configuration.'
+                        enum:
+                        - disabled
+                        - disk
+                        - memory
                         type: string
                       enabled:
                         description: Can be used to enable or disable a trait. All
@@ -2795,7 +2853,7 @@ spec:
                         description: "Automatically deploy the integration as Knative
                           service when all conditions hold: \n * Integration is using
                           the Knative profile * All routes are either starting from
-                          a HTTP based consumer or a passive consumer (e.g. `direct`
+                          an HTTP based consumer or a passive consumer (e.g. `direct`
                           is a passive consumer)"
                         type: boolean
                       autoscalingMetric:
@@ -2813,6 +2871,9 @@ spec:
                           (e.g. to set `hpa.autoscaling.knative.dev` or `kpa.autoscaling.knative.dev`
                           autoscaling). \n Refer to the Knative documentation for
                           more information."
+                        enum:
+                        - kpa.autoscaling.knative.dev
+                        - hpa.autoscaling.knative.dev
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -2847,6 +2908,8 @@ spec:
                           a private service. Specifically, this option applies the
                           `networking.knative.dev/visibility` label to Knative service.
                           \n Refer to the Knative documentation for more information."
+                        enum:
+                        - cluster-local
                         type: string
                     type: object
                   logging:
@@ -2875,6 +2938,12 @@ spec:
                         type: boolean
                       level:
                         description: Adjust the logging level (defaults to INFO)
+                        enum:
+                        - FATAL
+                        - WARN
+                        - INFO
+                        - DEBUG
+                        - TRACE
                         type: string
                     type: object
                   master:
@@ -3109,6 +3178,9 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
+                        enum:
+                        - fast-jar
+                        - native
                         items:
                           description: Quarkus package type.
                           type: string
@@ -3190,6 +3262,10 @@ spec:
                         description: "To configure how to deal with insecure traffic,
                           e.g. `Allow`, `Disable` or `Redirect` traffic. \n Refer
                           to the OpenShift route documentation for additional information."
+                        enum:
+                        - None
+                        - Allow
+                        - Redirect
                         type: string
                       tlsKey:
                         description: "The TLS certificate key contents. \n Refer to
@@ -3207,6 +3283,10 @@ spec:
                         description: "The TLS termination type, like `edge`, `passthrough`
                           or `reencrypt`. \n Refer to the OpenShift route documentation
                           for additional information."
+                        enum:
+                        - edge
+                        - reencrypt
+                        - passthrough
                         type: string
                     type: object
                   service:
@@ -3232,6 +3312,10 @@ spec:
                       type:
                         description: The type of service to be used, either 'ClusterIP',
                           'NodePort' or 'LoadBalancer'.
+                        enum:
+                        - ClusterIP
+                        - NodePort
+                        - LoadBalancer
                         type: string
                     type: object
                   service-binding:
diff --git a/helm/camel-k/crds/crd-integration.yaml b/helm/camel-k/crds/crd-integration.yaml
index 00ce1ac6a..b08f6f3a6 100644
--- a/helm/camel-k/crds/crd-integration.yaml
+++ b/helm/camel-k/crds/crd-integration.yaml
@@ -6192,6 +6192,10 @@ spec:
                         type: string
                       imagePullPolicy:
                         description: 'The pull policy: Always|Never|IfNotPresent'
+                        enum:
+                        - Always
+                        - Never
+                        - IfNotPresent
                         type: string
                       limitCPU:
                         description: The maximum amount of CPU required.
@@ -6317,7 +6321,7 @@ spec:
                           when all routes are either starting from a periodic consumer
                           (only `cron`, `timer` and `quartz` are supported) or a passive
                           consumer (e.g. `direct` is a passive consumer). \n It's
-                          required that all periodic consumers have the same period
+                          required that all periodic consumers have the same period,
                           and it can be expressed as cron schedule (e.g. `1m` can
                           be expressed as `0/1 * * * *`, while `35m` or `50s` cannot)."
                         type: boolean
@@ -6343,6 +6347,10 @@ spec:
                           runs, skipping next run if previous run hasn''t finished
                           yet; - "Replace": cancels currently running job and replaces
                           it with a new one'
+                        enum:
+                        - Allow
+                        - Forbid
+                        - Replace
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -6399,6 +6407,10 @@ spec:
                         description: Allows to explicitly select the desired deployment
                           kind between `deployment`, `cron-job` or `knative-service`
                           when creating the resources for running the integration.
+                        enum:
+                        - deployment
+                        - cron-job
+                        - knative-service
                         type: string
                       useSSA:
                         description: Use server-side apply to update the owned resources
@@ -6506,6 +6518,10 @@ spec:
                         description: 'Discovery client cache to be used, either `disabled`,
                           `disk` or `memory` (default `memory`). Deprecated: to be
                           removed from trait configuration.'
+                        enum:
+                        - disabled
+                        - disk
+                        - memory
                         type: string
                       enabled:
                         description: Can be used to enable or disable a trait. All
@@ -6848,7 +6864,7 @@ spec:
                         description: "Automatically deploy the integration as Knative
                           service when all conditions hold: \n * Integration is using
                           the Knative profile * All routes are either starting from
-                          a HTTP based consumer or a passive consumer (e.g. `direct`
+                          an HTTP based consumer or a passive consumer (e.g. `direct`
                           is a passive consumer)"
                         type: boolean
                       autoscalingMetric:
@@ -6866,6 +6882,9 @@ spec:
                           (e.g. to set `hpa.autoscaling.knative.dev` or `kpa.autoscaling.knative.dev`
                           autoscaling). \n Refer to the Knative documentation for
                           more information."
+                        enum:
+                        - kpa.autoscaling.knative.dev
+                        - hpa.autoscaling.knative.dev
                         type: string
                       configuration:
                         description: 'Legacy trait configuration parameters. Deprecated:
@@ -6900,6 +6919,8 @@ spec:
                           a private service. Specifically, this option applies the
                           `networking.knative.dev/visibility` label to Knative service.
                           \n Refer to the Knative documentation for more information."
+                        enum:
+                        - cluster-local
                         type: string
                     type: object
                   logging:
@@ -6928,6 +6949,12 @@ spec:
                         type: boolean
                       level:
                         description: Adjust the logging level (defaults to INFO)
+                        enum:
+                        - FATAL
+                        - WARN
+                        - INFO
+                        - DEBUG
+                        - TRACE
                         type: string
                     type: object
                   master:
@@ -7162,6 +7189,9 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
+                        enum:
+                        - fast-jar
+                        - native
                         items:
                           description: Quarkus package type.
                           type: string
@@ -7243,6 +7273,10 @@ spec:
                         description: "To configure how to deal with insecure traffic,
                           e.g. `Allow`, `Disable` or `Redirect` traffic. \n Refer
                           to the OpenShift route documentation for additional information."
+                        enum:
+                        - None
+                        - Allow
+                        - Redirect
                         type: string
                       tlsKey:
                         description: "The TLS certificate key contents. \n Refer to
@@ -7260,6 +7294,10 @@ spec:
                         description: "The TLS termination type, like `edge`, `passthrough`
                           or `reencrypt`. \n Refer to the OpenShift route documentation
                           for additional information."
+                        enum:
+                        - edge
+                        - reencrypt
+                        - passthrough
                         type: string
                     type: object
                   service:
@@ -7285,6 +7323,10 @@ spec:
                       type:
                         description: The type of service to be used, either 'ClusterIP',
                           'NodePort' or 'LoadBalancer'.
+                        enum:
+                        - ClusterIP
+                        - NodePort
+                        - LoadBalancer
                         type: string
                     type: object
                   service-binding:
diff --git a/helm/camel-k/crds/crd-kamelet-binding.yaml b/helm/camel-k/crds/crd-kamelet-binding.yaml
index dbf907941..d24809996 100644
--- a/helm/camel-k/crds/crd-kamelet-binding.yaml
+++ b/helm/camel-k/crds/crd-kamelet-binding.yaml
@@ -6470,6 +6470,10 @@ spec:
                             type: string
                           imagePullPolicy:
                             description: 'The pull policy: Always|Never|IfNotPresent'
+                            enum:
+                            - Always
+                            - Never
+                            - IfNotPresent
                             type: string
                           limitCPU:
                             description: The maximum amount of CPU required.
@@ -6600,7 +6604,7 @@ spec:
                               consumer (only `cron`, `timer` and `quartz` are supported)
                               or a passive consumer (e.g. `direct` is a passive consumer).
                               \n It's required that all periodic consumers have the
-                              same period and it can be expressed as cron schedule
+                              same period, and it can be expressed as cron schedule
                               (e.g. `1m` can be expressed as `0/1 * * * *`, while
                               `35m` or `50s` cannot)."
                             type: boolean
@@ -6626,6 +6630,10 @@ spec:
                               runs, skipping next run if previous run hasn''t finished
                               yet; - "Replace": cancels currently running job and
                               replaces it with a new one'
+                            enum:
+                            - Allow
+                            - Forbid
+                            - Replace
                             type: string
                           configuration:
                             description: 'Legacy trait configuration parameters. Deprecated:
@@ -6682,6 +6690,10 @@ spec:
                             description: Allows to explicitly select the desired deployment
                               kind between `deployment`, `cron-job` or `knative-service`
                               when creating the resources for running the integration.
+                            enum:
+                            - deployment
+                            - cron-job
+                            - knative-service
                             type: string
                           useSSA:
                             description: Use server-side apply to update the owned
@@ -6789,6 +6801,10 @@ spec:
                             description: 'Discovery client cache to be used, either
                               `disabled`, `disk` or `memory` (default `memory`). Deprecated:
                               to be removed from trait configuration.'
+                            enum:
+                            - disabled
+                            - disk
+                            - memory
                             type: string
                           enabled:
                             description: Can be used to enable or disable a trait.
@@ -7136,7 +7152,7 @@ spec:
                             description: "Automatically deploy the integration as
                               Knative service when all conditions hold: \n * Integration
                               is using the Knative profile * All routes are either
-                              starting from a HTTP based consumer or a passive consumer
+                              starting from an HTTP based consumer or a passive consumer
                               (e.g. `direct` is a passive consumer)"
                             type: boolean
                           autoscalingMetric:
@@ -7156,6 +7172,9 @@ spec:
                               property (e.g. to set `hpa.autoscaling.knative.dev`
                               or `kpa.autoscaling.knative.dev` autoscaling). \n Refer
                               to the Knative documentation for more information."
+                            enum:
+                            - kpa.autoscaling.knative.dev
+                            - hpa.autoscaling.knative.dev
                             type: string
                           configuration:
                             description: 'Legacy trait configuration parameters. Deprecated:
@@ -7192,6 +7211,8 @@ spec:
                               applies the `networking.knative.dev/visibility` label
                               to Knative service. \n Refer to the Knative documentation
                               for more information."
+                            enum:
+                            - cluster-local
                             type: string
                         type: object
                       logging:
@@ -7220,6 +7241,12 @@ spec:
                             type: boolean
                           level:
                             description: Adjust the logging level (defaults to INFO)
+                            enum:
+                            - FATAL
+                            - WARN
+                            - INFO
+                            - DEBUG
+                            - TRACE
                             type: string
                         type: object
                       master:
@@ -7454,6 +7481,9 @@ spec:
                               The kit corresponding to the first package type will
                               be assigned to the integration in case no existing kit
                               that matches the integration exists.
+                            enum:
+                            - fast-jar
+                            - native
                             items:
                               description: Quarkus package type.
                               type: string
@@ -7541,6 +7571,10 @@ spec:
                               e.g. `Allow`, `Disable` or `Redirect` traffic. \n Refer
                               to the OpenShift route documentation for additional
                               information."
+                            enum:
+                            - None
+                            - Allow
+                            - Redirect
                             type: string
                           tlsKey:
                             description: "The TLS certificate key contents. \n Refer
@@ -7560,6 +7594,10 @@ spec:
                             description: "The TLS termination type, like `edge`, `passthrough`
                               or `reencrypt`. \n Refer to the OpenShift route documentation
                               for additional information."
+                            enum:
+                            - edge
+                            - reencrypt
+                            - passthrough
                             type: string
                         type: object
                       service:
@@ -7585,6 +7623,10 @@ spec:
                           type:
                             description: The type of service to be used, either 'ClusterIP',
                               'NodePort' or 'LoadBalancer'.
+                            enum:
+                            - ClusterIP
+                            - NodePort
+                            - LoadBalancer
                             type: string
                         type: object
                       service-binding:
diff --git a/pkg/apis/camel/v1/trait/container.go b/pkg/apis/camel/v1/trait/container.go
index 0b6213574..d05252c43 100644
--- a/pkg/apis/camel/v1/trait/container.go
+++ b/pkg/apis/camel/v1/trait/container.go
@@ -55,6 +55,7 @@ type ContainerTrait struct {
 	// The main container image
 	Image string `property:"image" json:"image,omitempty"`
 	// The pull policy: Always|Never|IfNotPresent
+	// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
 	ImagePullPolicy corev1.PullPolicy `property:"image-pull-policy" json:"imagePullPolicy,omitempty"`
 
 	// DeprecatedProbesEnabled enable/disable probes on the container (default `false`).
diff --git a/pkg/apis/camel/v1/trait/cron.go b/pkg/apis/camel/v1/trait/cron.go
index 84bd87c90..67e8cb749 100644
--- a/pkg/apis/camel/v1/trait/cron.go
+++ b/pkg/apis/camel/v1/trait/cron.go
@@ -51,11 +51,12 @@ type CronTrait struct {
 	// - "Allow": allows CronJobs to run concurrently;
 	// - "Forbid" (default): forbids concurrent runs, skipping next run if previous run hasn't finished yet;
 	// - "Replace": cancels currently running job and replaces it with a new one
+	// +kubebuilder:validation:Enum=Allow;Forbid;Replace
 	ConcurrencyPolicy string `property:"concurrency-policy" json:"concurrencyPolicy,omitempty"`
 	// Automatically deploy the integration as CronJob when all routes are
 	// either starting from a periodic consumer (only `cron`, `timer` and `quartz` are supported) or a passive consumer (e.g. `direct` is a passive consumer).
 	//
-	// It's required that all periodic consumers have the same period and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`,
+	// It's required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`,
 	// while `35m` or `50s` cannot).
 	Auto *bool `property:"auto" json:"auto,omitempty"`
 	// Optional deadline in seconds for starting the job if it misses scheduled
diff --git a/pkg/apis/camel/v1/trait/deployer.go b/pkg/apis/camel/v1/trait/deployer.go
index f26f72bed..f9f666a0e 100644
--- a/pkg/apis/camel/v1/trait/deployer.go
+++ b/pkg/apis/camel/v1/trait/deployer.go
@@ -24,6 +24,7 @@ package trait
 type DeployerTrait struct {
 	Trait `property:",squash" json:",inline"`
 	// Allows to explicitly select the desired deployment kind between `deployment`, `cron-job` or `knative-service` when creating the resources for running the integration.
+	// +kubebuilder:validation:Enum=deployment;cron-job;knative-service
 	Kind string `property:"kind" json:"kind,omitempty"`
 	// Use server-side apply to update the owned resources (default `true`).
 	// Note that it automatically falls back to client-side patching, if SSA is not available, e.g., on old Kubernetes clusters.
diff --git a/pkg/apis/camel/v1/trait/gc.go b/pkg/apis/camel/v1/trait/gc.go
index 8b4ddf43c..e61b161f1 100644
--- a/pkg/apis/camel/v1/trait/gc.go
+++ b/pkg/apis/camel/v1/trait/gc.go
@@ -27,6 +27,7 @@ type GCTrait struct {
 	DiscoveryCache *DiscoveryCacheType `property:"discovery-cache" json:"discoveryCache,omitempty"`
 }
 
+// +kubebuilder:validation:Enum=disabled;disk;memory
 type DiscoveryCacheType string
 
 const (
diff --git a/pkg/apis/camel/v1/trait/knative_service.go b/pkg/apis/camel/v1/trait/knative_service.go
index af8764e2b..a474ec33f 100644
--- a/pkg/apis/camel/v1/trait/knative_service.go
+++ b/pkg/apis/camel/v1/trait/knative_service.go
@@ -29,6 +29,7 @@ type KnativeServiceTrait struct {
 	// Configures the Knative autoscaling class property (e.g. to set `hpa.autoscaling.knative.dev` or `kpa.autoscaling.knative.dev` autoscaling).
 	//
 	// Refer to the Knative documentation for more information.
+	// +kubebuilder:validation:Enum=kpa.autoscaling.knative.dev;hpa.autoscaling.knative.dev
 	Class string `property:"autoscaling-class" json:"class,omitempty"`
 	// Configures the Knative autoscaling metric property (e.g. to set `concurrency` based or `cpu` based autoscaling).
 	//
@@ -56,10 +57,11 @@ type KnativeServiceTrait struct {
 	// Specifically, this option applies the `networking.knative.dev/visibility` label to Knative service.
 	//
 	// Refer to the Knative documentation for more information.
+	// +kubebuilder:validation:Enum=cluster-local
 	Visibility string `property:"visibility" json:"visibility,omitempty"`
 	// Automatically deploy the integration as Knative service when all conditions hold:
 	//
 	// * Integration is using the Knative profile
-	// * All routes are either starting from a HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer)
+	// * All routes are either starting from an HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer)
 	Auto *bool `property:"auto" json:"auto,omitempty"`
 }
diff --git a/pkg/apis/camel/v1/trait/logging.go b/pkg/apis/camel/v1/trait/logging.go
index ea0c466c3..546102468 100644
--- a/pkg/apis/camel/v1/trait/logging.go
+++ b/pkg/apis/camel/v1/trait/logging.go
@@ -28,6 +28,7 @@ type LoggingTrait struct {
 	// Logs message format
 	Format string `property:"format" json:"format,omitempty"`
 	// Adjust the logging level (defaults to INFO)
+	// +kubebuilder:validation:Enum=FATAL;WARN;INFO;DEBUG;TRACE
 	Level string `property:"level" json:"level,omitempty"`
 	// Output the logs in JSON
 	JSON *bool `property:"json" json:"json,omitempty"`
diff --git a/pkg/apis/camel/v1/trait/quarkus.go b/pkg/apis/camel/v1/trait/quarkus.go
index c521fe616..d07b98906 100644
--- a/pkg/apis/camel/v1/trait/quarkus.go
+++ b/pkg/apis/camel/v1/trait/quarkus.go
@@ -36,6 +36,7 @@ type QuarkusTrait struct {
 	// The order influences the resolution of the current kit for the integration.
 	// The kit corresponding to the first package type will be assigned to the
 	// integration in case no existing kit that matches the integration exists.
+	// +kubebuilder:validation:Enum=fast-jar;native
 	PackageTypes []QuarkusPackageType `property:"package-type" json:"packageTypes,omitempty"`
 }
 
diff --git a/pkg/apis/camel/v1/trait/route.go b/pkg/apis/camel/v1/trait/route.go
index 29466b9cd..66c242975 100644
--- a/pkg/apis/camel/v1/trait/route.go
+++ b/pkg/apis/camel/v1/trait/route.go
@@ -36,6 +36,7 @@ type RouteTrait struct {
 	// The TLS termination type, like `edge`, `passthrough` or `reencrypt`.
 	//
 	// Refer to the OpenShift route documentation for additional information.
+	// +kubebuilder:validation:Enum=edge;reencrypt;passthrough
 	TLSTermination string `property:"tls-termination" json:"tlsTermination,omitempty"`
 	// The TLS certificate contents.
 	//
@@ -76,5 +77,6 @@ type RouteTrait struct {
 	// To configure how to deal with insecure traffic, e.g. `Allow`, `Disable` or `Redirect` traffic.
 	//
 	// Refer to the OpenShift route documentation for additional information.
+	// +kubebuilder:validation:Enum=None;Allow;Redirect
 	TLSInsecureEdgeTerminationPolicy string `property:"tls-insecure-edge-termination-policy" json:"tlsInsecureEdgeTerminationPolicy,omitempty"`
 }
diff --git a/pkg/apis/camel/v1/trait/service.go b/pkg/apis/camel/v1/trait/service.go
index 039567695..d16baae42 100644
--- a/pkg/apis/camel/v1/trait/service.go
+++ b/pkg/apis/camel/v1/trait/service.go
@@ -31,6 +31,7 @@ type ServiceTrait struct {
 	// Deprecated: Use service type instead.
 	NodePort *bool `property:"node-port" json:"nodePort,omitempty"`
 	// The type of service to be used, either 'ClusterIP', 'NodePort' or 'LoadBalancer'.
+	// +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer
 	Type *ServiceType `property:"type" json:"type,omitempty"`
 }
 
diff --git a/pkg/resources/resources.go b/pkg/resources/resources.go
index ba6a2c379..8795ad166 100644
--- a/pkg/resources/resources.go
+++ b/pkg/resources/resources.go
@@ -131,30 +131,30 @@ var assets = func() http.FileSystem {
 		"/crd/bases/camel.apache.org_integrationkits.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "camel.apache.org_integrationkits.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 15078,
+			uncompressedSize: 15176,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3b\x5d\x6f\xdb\x48\x92\xef\xfa\x15\x85\xf1\x43\x12\x40\xa2\x77\xee\x16\x8b\x83\x0f\xf7\xe0\x75\x92\x59\x23\x89\x9d\x8b\x34\xb3\x37\xc0\x3c\xb8\x44\x96\xa8\x1e\x91\xdd\xdc\xee\xa6\x64\xdd\xe1\xfe\xfb\xa2\xaa\x9b\x14\x25\x91\x92\xc6\x33\xc1\xbe\x84\x2f\xb1\xc8\xee\xea\xfa\xfe\xec\x5c\xc1\xe4\x8f\x7b\x46\x57\xf0\x51\xa5\xa4\x1d\x65\xe0\x0d\xf8\x25\xc1\x6d\x85\xe9\x92\x60\x6a\x16\x7e\x83\x96\xe0\xbd\xa9\x75\x86\x5e\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3b\x5d\x6f\xdb\x48\x92\xef\xfa\x15\x85\xf1\x43\x12\x40\xa2\x77\xee\x16\x8b\x83\x0f\xf7\xe0\x75\x92\x59\x23\x89\x9d\x8b\x34\xb3\x37\xc0\x3c\xb8\x44\x96\xa8\x1e\x91\xdd\xdc\xee\xa6\x64\xdd\xe1\xfe\xfb\xa2\xaa\x9b\x14\x25\x91\x92\xc6\x33\xc1\xbe\x84\x2f\x89\xc8\xee\xea\xfa\xfe\x6c\x5f\xc1\xe4\x8f\x7b\x46\x57\xf0\x51\xa5\xa4\x1d\x65\xe0\x0d\xf8\x25\xc1\x6d\x85\xe9\x92\x60\x6a\x16\x7e\x83\x96\xe0\xbd\xa9\x75\x86\x5e\x [...]
 		},
 		"/crd/bases/camel.apache.org_integrationplatforms.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "camel.apache.org_integrationplatforms.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 178481,
+			uncompressedSize: 181351,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\xfd\x73\xdb\x36\xb6\x30\x8e\xff\x9e\xbf\x02\xe3\xce\x1d\x3b\x19\x49\x4e\xba\xb7\xbb\xbd\x7e\xa6\xf3\x3c\xae\x93\xb6\x6e\xe2\xd8\xd7\x76\x72\xef\x4e\xdb\xa9\x20\xf2\x48\x42\x4c\x02\x5c\x00\x94\xa3\x7e\xf7\xfb\xbf\x7f\x06\x07\x00\x49\x49\x24\x48\x49\x7e\x6b\x23\x76\x66\x37\xb6\x09\xf0\xe0\xe0\xe0\xbc\xe1\xbc\x7c\x45\xfa\x77\xf7\x3c\xfb\x8a\xbc\x63\x11\x70\x05\x31\xd1\x82\xe8\x29\x90\xe3\x8c\x46\x53\x20\x57\x62\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7d\x73\xdb\x36\xb6\x30\xfe\x7f\x3e\x05\xc6\x9d\x3b\x76\x32\x92\x9c\xec\xde\xee\xf6\xfa\x4e\xe7\x79\x5c\x27\x6d\xdd\xc4\xb1\xaf\xed\x64\xef\x4e\xdb\xa9\x20\xf2\x48\x42\x4c\x02\x5c\x00\x94\xad\xfe\xf6\xf7\xdd\x9f\xc1\x01\x40\x52\x12\x09\x52\x92\x5f\xd2\x46\xec\xcc\x6e\x6c\x13\xe0\xc1\xc1\xc1\x79\xc3\x79\xf9\x8a\xf4\xef\xef\x79\xf6\x15\x79\xc7\x22\xe0\x0a\x62\xa2\x05\xd1\x53\x20\xc7\x19\x8d\xa6\x40\xae\xc4\x58\x [...]
 		},
 		"/crd/bases/camel.apache.org_integrations.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "camel.apache.org_integrations.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 487606,
+			uncompressedSize: 489041,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\x1b\x37\x96\x38\x0c\xff\xef\x4f\x81\x72\x52\x3f\x49\x1b\x91\xb2\x33\xb3\x53\x3b\x7e\xa7\x36\xa5\x91\xe4\x44\x6f\x6c\x99\x65\x29\xc9\x2f\xe5\x64\x13\xb0\x1b\x24\xb1\x6a\x02\x3d\x00\x9a\x12\xe7\xc9\xf3\xdd\x9f\xc2\x01\xd0\x17\xde\xfa\xa0\x45\x3a\xce\x4c\x63\xaa\x32\x26\xc5\x3e\x8d\xcb\xc1\xb9\x5f\x3e\x23\x83\xfd\x8d\x67\x9f\x91\x37\x3c\x61\x42\xb3\x94\x18\x49\xcc\x8c\x91\xf3\x9c\x26\x33\x46\x6e\xe5\xc4\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\x1b\x37\x96\x38\x0c\xff\xef\x4f\x81\x72\x52\x3f\x49\x1b\x91\xb2\x33\xb3\x53\x3b\x7e\xa7\x36\xa5\x91\xe4\x44\x6f\x6c\x99\x65\x29\xc9\x2f\xe5\x64\x13\xb0\x1b\x24\xb1\x6a\x02\x3d\x00\x9a\x12\xe7\xc9\xf3\xdd\x9f\xc2\x01\xd0\x17\xde\xfa\xa0\x45\x3a\xce\x4c\x63\xaa\x32\x26\xc5\x3e\x8d\xcb\xc1\xb9\x5f\x3e\x23\x83\xfd\x8d\x67\x9f\x91\x37\x3c\x61\x42\xb3\x94\x18\x49\xcc\x8c\x91\xf3\x9c\x26\x33\x46\x6e\xe5\xc4\x [...]
 		},
 		"/crd/bases/camel.apache.org_kameletbindings.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "camel.apache.org_kameletbindings.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 561496,
+			uncompressedSize: 563099,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\x1b\x37\xb6\x28\x8a\xff\x9f\x4f\x81\x72\x52\x47\xd2\x8e\x48\xd9\x99\x47\xed\xf1\x6f\xea\xa4\xb4\x65\x39\xd1\x2f\xb1\xcc\xb2\x94\xe4\xa4\x9c\xec\x04\xec\x06\x49\x1c\x35\x81\xde\x00\x9a\x12\xe7\xe6\x7e\xf7\x5b\x58\x00\xba\xd1\x7c\x09\xab\x29\x69\xe4\x99\xc6\x54\x65\x4c\x8a\xbd\x1a\x8f\x85\xf5\x7e\x7c\x4e\x06\x0f\x37\x3e\xfb\x9c\x7c\xcf\x33\x26\x34\xcb\x89\x91\xc4\xcc\x18\x39\x2d\x69\x36\x63\xe4\x4a\x4e\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\x1b\x37\xb6\x28\x8a\xff\x9f\x4f\x81\x72\x52\x47\xd2\x8e\x48\xd9\x99\x47\xed\xf1\x6f\xea\xa4\xb4\x65\x39\xd1\x2f\xb1\xcc\xb2\x94\xe4\xa4\x9c\xec\x04\xec\x06\x49\x1c\x35\x81\xde\x00\x9a\x12\xe7\xe6\x7e\xf7\x5b\x58\x00\xba\xd1\x7c\x09\xab\x29\x69\xe4\x99\xc6\x54\x65\x4c\x8a\xbd\x1a\x8f\x85\xf5\x7e\x7c\x4e\x06\x0f\x37\x3e\xfb\x9c\x7c\xcf\x33\x26\x34\xcb\x89\x91\xc4\xcc\x18\x39\x2d\x69\x36\x63\xe4\x4a\x4e\x [...]
 		},
 		"/crd/bases/camel.apache.org_kamelets.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "camel.apache.org_kamelets.yaml",
@@ -611,9 +611,9 @@ var assets = func() http.FileSystem {
 		"/traits.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "traits.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 57922,
+			uncompressedSize: 59349,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\xfd\x77\x1b\xb9\x91\xe0\xef\xfe\x2b\xf0\xb4\xb7\x4f\x92\x1f\x49\x69\x26\x9b\xec\xac\xee\xbc\x39\x8d\xed\x49\x34\xe3\x0f\x9d\xa5\x99\x6c\x9e\xcf\x2f\x04\xbb\x41\x12\x66\x37\xd0\x01\xd0\x92\x99\xdb\xfb\xdf\xef\xa1\xaa\xf0\xd1\xcd\xa6\x48\xd9\xd6\x5c\x74\xb9\xcc\x7b\xb1\x48\x76\x17\x0a\x85\x42\xa1\x50\x9f\xce\x70\xe9\xec\xd9\x93\x31\x53\xbc\x16\x67\xec\x37\xb6\xe0\x95\x78\xc2\x58\x53\x71\x37\xd7\xa6\x3e\x63\x73\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\xfd\x77\x1b\x37\x92\xe0\xef\xf9\x2b\xf0\xb4\xb7\x4f\x92\x1f\x49\x39\x99\x9d\xd9\xac\xee\xbc\x73\x8a\xed\xcc\x28\xf1\x87\xce\x52\x32\x3b\xcf\xe7\x37\x04\xbb\x41\x12\x66\x37\xd0\x01\xd0\x92\x99\xdb\xfb\xdf\xef\xa1\xaa\xf0\xd1\xcd\xa6\x48\xd9\x52\x6e\x74\x73\x3b\xef\x6d\x2c\xa9\x51\x28\x14\x0a\x85\x42\x7d\x3a\xc3\xa5\xb3\xa7\x5f\x8d\x99\xe2\xb5\x38\x65\xbf\xb3\x05\xaf\xc4\x57\x8c\x35\x15\x77\x73\x6d\xea\x53\x36\x [...]
 		},
 	}
 	fs["/"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
diff --git a/resources/traits.yaml b/resources/traits.yaml
index 940c7c7c1..4bc741a2f 100755
--- a/resources/traits.yaml
+++ b/resources/traits.yaml
@@ -334,7 +334,7 @@ traits:
     description: Automatically deploy the integration as CronJob when all routes are
       either starting from a periodic consumer (only `cron`, `timer` and `quartz`
       are supported) or a passive consumer (e.g. `direct` is a passive consumer).  It's
-      required that all periodic consumers have the same period and it can be expressed
+      required that all periodic consumers have the same period, and it can be expressed
       as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`, while `35m` or
       `50s` cannot).
   - name: starting-deadline-seconds
@@ -885,7 +885,7 @@ traits:
     type: bool
     description: 'Automatically deploy the integration as Knative service when all
       conditions hold:  * Integration is using the Knative profile * All routes are
-      either starting from a HTTP based consumer or a passive consumer (e.g. `direct`
+      either starting from an HTTP based consumer or a passive consumer (e.g. `direct`
       is a passive consumer)'
 - name: logging
   platform: false


[camel-k] 02/02: fix(api): Quarkus package type validation should not apply to array

Posted by as...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 4a12ebc1d0830c3d39c35e362e6d6ce048e1dc92
Author: Antonin Stefanutti <an...@stefanutti.fr>
AuthorDate: Mon Oct 3 16:21:56 2022 +0200

    fix(api): Quarkus package type validation should not apply to array
---
 config/crd/bases/camel.apache.org_integrationkits.yaml   |  6 +++---
 .../crd/bases/camel.apache.org_integrationplatforms.yaml | 12 ++++++------
 config/crd/bases/camel.apache.org_integrations.yaml      |  6 +++---
 config/crd/bases/camel.apache.org_kameletbindings.yaml   |  6 +++---
 helm/camel-k/crds/crd-integration-kit.yaml               |  6 +++---
 helm/camel-k/crds/crd-integration-platform.yaml          | 12 ++++++------
 helm/camel-k/crds/crd-integration.yaml                   |  6 +++---
 helm/camel-k/crds/crd-kamelet-binding.yaml               |  6 +++---
 pkg/apis/camel/v1/trait/quarkus.go                       |  2 +-
 pkg/resources/resources.go                               | 16 ++++++++--------
 10 files changed, 39 insertions(+), 39 deletions(-)

diff --git a/config/crd/bases/camel.apache.org_integrationkits.yaml b/config/crd/bases/camel.apache.org_integrationkits.yaml
index 8d51628ab..8f642f219 100644
--- a/config/crd/bases/camel.apache.org_integrationkits.yaml
+++ b/config/crd/bases/camel.apache.org_integrationkits.yaml
@@ -185,11 +185,11 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
-                        enum:
-                        - fast-jar
-                        - native
                         items:
                           description: Quarkus package type.
+                          enum:
+                          - fast-jar
+                          - native
                           type: string
                         type: array
                     type: object
diff --git a/config/crd/bases/camel.apache.org_integrationplatforms.yaml b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
index 90545b2bc..32eba64e0 100644
--- a/config/crd/bases/camel.apache.org_integrationplatforms.yaml
+++ b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
@@ -1498,11 +1498,11 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
-                        enum:
-                        - fast-jar
-                        - native
                         items:
                           description: Quarkus package type.
+                          enum:
+                          - fast-jar
+                          - native
                           type: string
                         type: array
                     type: object
@@ -3178,11 +3178,11 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
-                        enum:
-                        - fast-jar
-                        - native
                         items:
                           description: Quarkus package type.
+                          enum:
+                          - fast-jar
+                          - native
                           type: string
                         type: array
                     type: object
diff --git a/config/crd/bases/camel.apache.org_integrations.yaml b/config/crd/bases/camel.apache.org_integrations.yaml
index b08f6f3a6..d6e203f5d 100644
--- a/config/crd/bases/camel.apache.org_integrations.yaml
+++ b/config/crd/bases/camel.apache.org_integrations.yaml
@@ -7189,11 +7189,11 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
-                        enum:
-                        - fast-jar
-                        - native
                         items:
                           description: Quarkus package type.
+                          enum:
+                          - fast-jar
+                          - native
                           type: string
                         type: array
                     type: object
diff --git a/config/crd/bases/camel.apache.org_kameletbindings.yaml b/config/crd/bases/camel.apache.org_kameletbindings.yaml
index d24809996..99e7abac0 100644
--- a/config/crd/bases/camel.apache.org_kameletbindings.yaml
+++ b/config/crd/bases/camel.apache.org_kameletbindings.yaml
@@ -7481,11 +7481,11 @@ spec:
                               The kit corresponding to the first package type will
                               be assigned to the integration in case no existing kit
                               that matches the integration exists.
-                            enum:
-                            - fast-jar
-                            - native
                             items:
                               description: Quarkus package type.
+                              enum:
+                              - fast-jar
+                              - native
                               type: string
                             type: array
                         type: object
diff --git a/helm/camel-k/crds/crd-integration-kit.yaml b/helm/camel-k/crds/crd-integration-kit.yaml
index 8d51628ab..8f642f219 100644
--- a/helm/camel-k/crds/crd-integration-kit.yaml
+++ b/helm/camel-k/crds/crd-integration-kit.yaml
@@ -185,11 +185,11 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
-                        enum:
-                        - fast-jar
-                        - native
                         items:
                           description: Quarkus package type.
+                          enum:
+                          - fast-jar
+                          - native
                           type: string
                         type: array
                     type: object
diff --git a/helm/camel-k/crds/crd-integration-platform.yaml b/helm/camel-k/crds/crd-integration-platform.yaml
index 90545b2bc..32eba64e0 100644
--- a/helm/camel-k/crds/crd-integration-platform.yaml
+++ b/helm/camel-k/crds/crd-integration-platform.yaml
@@ -1498,11 +1498,11 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
-                        enum:
-                        - fast-jar
-                        - native
                         items:
                           description: Quarkus package type.
+                          enum:
+                          - fast-jar
+                          - native
                           type: string
                         type: array
                     type: object
@@ -3178,11 +3178,11 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
-                        enum:
-                        - fast-jar
-                        - native
                         items:
                           description: Quarkus package type.
+                          enum:
+                          - fast-jar
+                          - native
                           type: string
                         type: array
                     type: object
diff --git a/helm/camel-k/crds/crd-integration.yaml b/helm/camel-k/crds/crd-integration.yaml
index b08f6f3a6..d6e203f5d 100644
--- a/helm/camel-k/crds/crd-integration.yaml
+++ b/helm/camel-k/crds/crd-integration.yaml
@@ -7189,11 +7189,11 @@ spec:
                           corresponding to the first package type will be assigned
                           to the integration in case no existing kit that matches
                           the integration exists.
-                        enum:
-                        - fast-jar
-                        - native
                         items:
                           description: Quarkus package type.
+                          enum:
+                          - fast-jar
+                          - native
                           type: string
                         type: array
                     type: object
diff --git a/helm/camel-k/crds/crd-kamelet-binding.yaml b/helm/camel-k/crds/crd-kamelet-binding.yaml
index d24809996..99e7abac0 100644
--- a/helm/camel-k/crds/crd-kamelet-binding.yaml
+++ b/helm/camel-k/crds/crd-kamelet-binding.yaml
@@ -7481,11 +7481,11 @@ spec:
                               The kit corresponding to the first package type will
                               be assigned to the integration in case no existing kit
                               that matches the integration exists.
-                            enum:
-                            - fast-jar
-                            - native
                             items:
                               description: Quarkus package type.
+                              enum:
+                              - fast-jar
+                              - native
                               type: string
                             type: array
                         type: object
diff --git a/pkg/apis/camel/v1/trait/quarkus.go b/pkg/apis/camel/v1/trait/quarkus.go
index d07b98906..dcbd079d6 100644
--- a/pkg/apis/camel/v1/trait/quarkus.go
+++ b/pkg/apis/camel/v1/trait/quarkus.go
@@ -36,11 +36,11 @@ type QuarkusTrait struct {
 	// The order influences the resolution of the current kit for the integration.
 	// The kit corresponding to the first package type will be assigned to the
 	// integration in case no existing kit that matches the integration exists.
-	// +kubebuilder:validation:Enum=fast-jar;native
 	PackageTypes []QuarkusPackageType `property:"package-type" json:"packageTypes,omitempty"`
 }
 
 // Quarkus package type.
+// +kubebuilder:validation:Enum=fast-jar;native
 type QuarkusPackageType string
 
 const (
diff --git a/pkg/resources/resources.go b/pkg/resources/resources.go
index 8795ad166..6bc3e4542 100644
--- a/pkg/resources/resources.go
+++ b/pkg/resources/resources.go
@@ -131,30 +131,30 @@ var assets = func() http.FileSystem {
 		"/crd/bases/camel.apache.org_integrationkits.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "camel.apache.org_integrationkits.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 15176,
+			uncompressedSize: 15182,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3b\x5d\x6f\xdb\x48\x92\xef\xfa\x15\x85\xf1\x43\x12\x40\xa2\x77\xee\x16\x8b\x83\x0f\xf7\xe0\x75\x92\x59\x23\x89\x9d\x8b\x34\xb3\x37\xc0\x3c\xb8\x44\x96\xa8\x1e\x91\xdd\xdc\xee\xa6\x64\xdd\xe1\xfe\xfb\xa2\xaa\x9b\x14\x25\x91\x92\xc6\x33\xc1\xbe\x84\x2f\x89\xc8\xee\xea\xfa\xfe\x6c\x5f\xc1\xe4\x8f\x7b\x46\x57\xf0\x51\xa5\xa4\x1d\x65\xe0\x0d\xf8\x25\xc1\x6d\x85\xe9\x92\x60\x6a\x16\x7e\x83\x96\xe0\xbd\xa9\x75\x86\x5e\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x3b\x5d\x6f\xdb\x48\x92\xef\xfa\x15\x85\xf1\x43\x12\x40\xa2\x77\xee\x16\x8b\x83\x0f\xf7\xe0\x75\x92\x59\x23\x89\x9d\x8b\x34\xb3\x37\xc0\x3c\xb8\x44\x96\xa8\x1e\x91\xdd\xdc\xee\xa6\x64\xdd\xe1\xfe\xfb\xa2\xaa\x9b\x14\x25\x91\x92\xc6\x33\xc1\xbe\x84\x2f\x89\xc8\xee\xea\xfa\xfe\x6c\x5f\xc1\xe4\x8f\x7b\x46\x57\xf0\x51\xa5\xa4\x1d\x65\xe0\x0d\xf8\x25\xc1\x6d\x85\xe9\x92\x60\x6a\x16\x7e\x83\x96\xe0\xbd\xa9\x75\x86\x5e\x [...]
 		},
 		"/crd/bases/camel.apache.org_integrationplatforms.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "camel.apache.org_integrationplatforms.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 181351,
+			uncompressedSize: 181363,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7d\x73\xdb\x36\xb6\x30\xfe\x7f\x3e\x05\xc6\x9d\x3b\x76\x32\x92\x9c\xec\xde\xee\xf6\xfa\x4e\xe7\x79\x5c\x27\x6d\xdd\xc4\xb1\xaf\xed\x64\xef\x4e\xdb\xa9\x20\xf2\x48\x42\x4c\x02\x5c\x00\x94\xad\xfe\xf6\xf7\xdd\x9f\xc1\x01\x40\x52\x12\x09\x52\x92\x5f\xd2\x46\xec\xcc\x6e\x6c\x13\xe0\xc1\xc1\xc1\x79\xc3\x79\xf9\x8a\xf4\xef\xef\x79\xf6\x15\x79\xc7\x22\xe0\x0a\x62\xa2\x05\xd1\x53\x20\xc7\x19\x8d\xa6\x40\xae\xc4\x58\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7d\x73\xdb\x36\xb6\x30\xfe\x7f\x3e\x05\xc6\x9d\x3b\x76\x32\x92\x9c\xec\xde\xee\xf6\xfa\x4e\xe7\x79\x5c\x27\x6d\xdd\xc4\xb1\xaf\xed\x64\xef\x4e\xdb\xa9\x20\xf2\x48\x42\x4c\x02\x5c\x00\x94\xad\xfe\xf6\xf7\xdd\x9f\xc1\x01\x40\x52\x12\x09\x52\x92\x5f\xd2\x46\xec\xcc\x6e\x6c\x13\xe0\xc1\xc1\xc1\x79\xc3\x79\xf9\x8a\xf4\xef\xef\x79\xf6\x15\x79\xc7\x22\xe0\x0a\x62\xa2\x05\xd1\x53\x20\xc7\x19\x8d\xa6\x40\xae\xc4\x58\x [...]
 		},
 		"/crd/bases/camel.apache.org_integrations.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "camel.apache.org_integrations.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 489041,
+			uncompressedSize: 489047,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\x1b\x37\x96\x38\x0c\xff\xef\x4f\x81\x72\x52\x3f\x49\x1b\x91\xb2\x33\xb3\x53\x3b\x7e\xa7\x36\xa5\x91\xe4\x44\x6f\x6c\x99\x65\x29\xc9\x2f\xe5\x64\x13\xb0\x1b\x24\xb1\x6a\x02\x3d\x00\x9a\x12\xe7\xc9\xf3\xdd\x9f\xc2\x01\xd0\x17\xde\xfa\xa0\x45\x3a\xce\x4c\x63\xaa\x32\x26\xc5\x3e\x8d\xcb\xc1\xb9\x5f\x3e\x23\x83\xfd\x8d\x67\x9f\x91\x37\x3c\x61\x42\xb3\x94\x18\x49\xcc\x8c\x91\xf3\x9c\x26\x33\x46\x6e\xe5\xc4\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\x1b\x37\x96\x38\x0c\xff\xef\x4f\x81\x72\x52\x3f\x49\x1b\x91\xb2\x33\xb3\x53\x3b\x7e\xa7\x36\xa5\x91\xe4\x44\x6f\x6c\x99\x65\x29\xc9\x2f\xe5\x64\x13\xb0\x1b\x24\xb1\x6a\x02\x3d\x00\x9a\x12\xe7\xc9\xf3\xdd\x9f\xc2\x01\xd0\x17\xde\xfa\xa0\x45\x3a\xce\x4c\x63\xaa\x32\x26\xc5\x3e\x8d\xcb\xc1\xb9\x5f\x3e\x23\x83\xfd\x8d\x67\x9f\x91\x37\x3c\x61\x42\xb3\x94\x18\x49\xcc\x8c\x91\xf3\x9c\x26\x33\x46\x6e\xe5\xc4\x [...]
 		},
 		"/crd/bases/camel.apache.org_kameletbindings.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "camel.apache.org_kameletbindings.yaml",
 			modTime:          time.Time{},
-			uncompressedSize: 563099,
+			uncompressedSize: 563105,
 
-			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\x1b\x37\xb6\x28\x8a\xff\x9f\x4f\x81\x72\x52\x47\xd2\x8e\x48\xd9\x99\x47\xed\xf1\x6f\xea\xa4\xb4\x65\x39\xd1\x2f\xb1\xcc\xb2\x94\xe4\xa4\x9c\xec\x04\xec\x06\x49\x1c\x35\x81\xde\x00\x9a\x12\xe7\xe6\x7e\xf7\x5b\x58\x00\xba\xd1\x7c\x09\xab\x29\x69\xe4\x99\xc6\x54\x65\x4c\x8a\xbd\x1a\x8f\x85\xf5\x7e\x7c\x4e\x06\x0f\x37\x3e\xfb\x9c\x7c\xcf\x33\x26\x34\xcb\x89\x91\xc4\xcc\x18\x39\x2d\x69\x36\x63\xe4\x4a\x4e\x [...]
+			compressedContent: []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xfd\x7b\x73\x1b\x37\xb6\x28\x8a\xff\x9f\x4f\x81\x72\x52\x47\xd2\x8e\x48\xd9\x99\x47\xed\xf1\x6f\xea\xa4\xb4\x65\x39\xd1\x2f\xb1\xcc\xb2\x94\xe4\xa4\x9c\xec\x04\xec\x06\x49\x1c\x35\x81\xde\x00\x9a\x12\xe7\xe6\x7e\xf7\x5b\x58\x00\xba\xd1\x7c\x09\xab\x29\x69\xe4\x99\xc6\x54\x65\x4c\x8a\xbd\x1a\x8f\x85\xf5\x7e\x7c\x4e\x06\x0f\x37\x3e\xfb\x9c\x7c\xcf\x33\x26\x34\xcb\x89\x91\xc4\xcc\x18\x39\x2d\x69\x36\x63\xe4\x4a\x4e\x [...]
 		},
 		"/crd/bases/camel.apache.org_kamelets.yaml": &vfsgen۰CompressedFileInfo{
 			name:             "camel.apache.org_kamelets.yaml",