You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2023/10/16 07:41:20 UTC

[camel-k] branch main updated (583a95b10 -> eb02913a8)

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

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


    from 583a95b10 chore: nightly SBOM update
     new 0deede0a3 chore(trait): user can't disable platform traits
     new eb02913a8 fix(traits): kamelets and jvm not platform traits

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:
 cmd/util/doc-gen/generators/traitdocgen.go         |   2 +-
 .../bases/camel.apache.org_integrationkits.yaml    |   9 +-
 .../camel.apache.org_integrationplatforms.yaml     |  72 ++++-------
 .../crd/bases/camel.apache.org_integrations.yaml   |  36 ++----
 .../bases/camel.apache.org_kameletbindings.yaml    |  36 ++----
 config/crd/bases/camel.apache.org_pipes.yaml       |  36 ++----
 docs/modules/ROOT/partials/apis/camel-k-crds.adoc  | 134 +++++++++++++--------
 docs/modules/traits/pages/builder.adoc             |   6 +-
 docs/modules/traits/pages/camel.adoc               |   4 +-
 docs/modules/traits/pages/container.adoc           |   4 +-
 docs/modules/traits/pages/dependencies.adoc        |   4 +-
 docs/modules/traits/pages/deployer.adoc            |   4 +-
 docs/modules/traits/pages/deployment.adoc          |   4 +-
 docs/modules/traits/pages/environment.adoc         |   4 +-
 docs/modules/traits/pages/error-handler.adoc       |   4 +-
 docs/modules/traits/pages/jvm.adoc                 |   2 -
 docs/modules/traits/pages/kamelets.adoc            |   2 -
 docs/modules/traits/pages/mount.adoc               |   4 +-
 docs/modules/traits/pages/openapi.adoc             |   4 +-
 docs/modules/traits/pages/owner.adoc               |   2 +-
 docs/modules/traits/pages/platform.adoc            |   4 +-
 docs/modules/traits/pages/quarkus.adoc             |   4 +-
 helm/camel-k/crds/crd-integration-kit.yaml         |   9 +-
 helm/camel-k/crds/crd-integration-platform.yaml    |  72 ++++-------
 helm/camel-k/crds/crd-integration.yaml             |  36 ++----
 helm/camel-k/crds/crd-kamelet-binding.yaml         |  36 ++----
 helm/camel-k/crds/crd-pipe.yaml                    |  36 ++----
 pkg/apis/camel/v1/trait/base.go                    |  13 +-
 pkg/apis/camel/v1/trait/builder.go                 |   4 +-
 pkg/apis/camel/v1/trait/camel.go                   |   2 +-
 pkg/apis/camel/v1/trait/container.go               |   5 +-
 pkg/apis/camel/v1/trait/dependencies.go            |   2 +-
 pkg/apis/camel/v1/trait/deployer.go                |   2 +-
 pkg/apis/camel/v1/trait/deployment.go              |   2 +-
 pkg/apis/camel/v1/trait/environment.go             |   2 +-
 pkg/apis/camel/v1/trait/error_handler.go           |   2 +-
 pkg/apis/camel/v1/trait/mount.go                   |   2 +-
 pkg/apis/camel/v1/trait/openapi.go                 |   2 +-
 pkg/apis/camel/v1/trait/platform.go                |   2 +-
 pkg/apis/camel/v1/trait/quarkus.go                 |   2 +-
 pkg/apis/camel/v1/trait/zz_generated.deepcopy.go   |  49 ++++++--
 pkg/controller/integration/kits_test.go            |  25 +---
 pkg/trait/builder.go                               |  14 +--
 pkg/trait/builder_test.go                          |   3 -
 pkg/trait/camel.go                                 |  14 +--
 pkg/trait/camel_test.go                            |  11 --
 pkg/trait/container.go                             |  11 +-
 pkg/trait/container_test.go                        |   3 -
 pkg/trait/dependencies.go                          |  13 +-
 pkg/trait/deployer.go                              |  14 +--
 pkg/trait/deployment.go                            |  24 +---
 pkg/trait/deployment_test.go                       |  15 ---
 pkg/trait/environment.go                           |  11 +-
 pkg/trait/error_handler.go                         |  13 +-
 pkg/trait/jvm.go                                   |   7 +-
 pkg/trait/jvm_test.go                              |  12 --
 pkg/trait/kamelets.go                              |  25 ++--
 pkg/trait/knative_test.go                          |  21 +---
 pkg/trait/mount.go                                 |  12 +-
 pkg/trait/openapi.go                               |  12 +-
 pkg/trait/platform.go                              |  11 +-
 pkg/trait/quarkus.go                               |  17 +--
 pkg/trait/quarkus_test.go                          |  14 +--
 pkg/trait/service_test.go                          |  16 ++-
 pkg/trait/trait_configure_test.go                  |  11 +-
 pkg/trait/trait_types.go                           |  20 +++
 pkg/trait/util_test.go                             |  57 ++++-----
 resources/traits.yaml                              |  41 +++----
 68 files changed, 423 insertions(+), 685 deletions(-)


[camel-k] 01/02: chore(trait): user can't disable platform traits

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

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

commit 0deede0a3bfef2cf167aef540df2319ed05065a2
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Wed Oct 11 16:18:20 2023 +0200

    chore(trait): user can't disable platform traits
    
    Closes #1328
---
 cmd/util/doc-gen/generators/traitdocgen.go         |   2 +-
 .../bases/camel.apache.org_integrationkits.yaml    |   9 +-
 .../camel.apache.org_integrationplatforms.yaml     |  84 ++++--------
 .../crd/bases/camel.apache.org_integrations.yaml   |  42 ++----
 .../bases/camel.apache.org_kameletbindings.yaml    |  42 ++----
 config/crd/bases/camel.apache.org_pipes.yaml       |  42 ++----
 docs/modules/ROOT/partials/apis/camel-k-crds.adoc  | 150 +++++++++++++--------
 docs/modules/traits/pages/builder.adoc             |   6 +-
 docs/modules/traits/pages/camel.adoc               |   4 +-
 docs/modules/traits/pages/container.adoc           |   4 +-
 docs/modules/traits/pages/dependencies.adoc        |   4 +-
 docs/modules/traits/pages/deployer.adoc            |   4 +-
 docs/modules/traits/pages/deployment.adoc          |   4 +-
 docs/modules/traits/pages/environment.adoc         |   4 +-
 docs/modules/traits/pages/error-handler.adoc       |   4 +-
 docs/modules/traits/pages/jvm.adoc                 |   4 +-
 docs/modules/traits/pages/kamelets.adoc            |   4 +-
 docs/modules/traits/pages/mount.adoc               |   4 +-
 docs/modules/traits/pages/openapi.adoc             |   4 +-
 docs/modules/traits/pages/owner.adoc               |   2 +-
 docs/modules/traits/pages/platform.adoc            |   4 +-
 docs/modules/traits/pages/quarkus.adoc             |   4 +-
 helm/camel-k/crds/crd-integration-kit.yaml         |   9 +-
 helm/camel-k/crds/crd-integration-platform.yaml    |  84 ++++--------
 helm/camel-k/crds/crd-integration.yaml             |  42 ++----
 helm/camel-k/crds/crd-kamelet-binding.yaml         |  42 ++----
 helm/camel-k/crds/crd-pipe.yaml                    |  42 ++----
 pkg/apis/camel/v1/trait/base.go                    |  13 +-
 pkg/apis/camel/v1/trait/builder.go                 |   4 +-
 pkg/apis/camel/v1/trait/camel.go                   |   2 +-
 pkg/apis/camel/v1/trait/container.go               |   5 +-
 pkg/apis/camel/v1/trait/dependencies.go            |   2 +-
 pkg/apis/camel/v1/trait/deployer.go                |   2 +-
 pkg/apis/camel/v1/trait/deployment.go              |   2 +-
 pkg/apis/camel/v1/trait/environment.go             |   2 +-
 pkg/apis/camel/v1/trait/error_handler.go           |   2 +-
 pkg/apis/camel/v1/trait/jvm.go                     |   2 +-
 pkg/apis/camel/v1/trait/kamelets.go                |   2 +-
 pkg/apis/camel/v1/trait/mount.go                   |   2 +-
 pkg/apis/camel/v1/trait/openapi.go                 |   2 +-
 pkg/apis/camel/v1/trait/platform.go                |   2 +-
 pkg/apis/camel/v1/trait/quarkus.go                 |   2 +-
 pkg/apis/camel/v1/trait/zz_generated.deepcopy.go   |  53 ++++++--
 pkg/controller/integration/kits_test.go            |  25 +---
 pkg/trait/builder.go                               |  14 +-
 pkg/trait/builder_test.go                          |   3 -
 pkg/trait/camel.go                                 |  14 +-
 pkg/trait/camel_test.go                            |  11 --
 pkg/trait/container.go                             |  11 +-
 pkg/trait/container_test.go                        |   3 -
 pkg/trait/dependencies.go                          |  13 +-
 pkg/trait/deployer.go                              |  14 +-
 pkg/trait/deployment.go                            |  24 +---
 pkg/trait/deployment_test.go                       |  15 ---
 pkg/trait/environment.go                           |  11 +-
 pkg/trait/error_handler.go                         |  13 +-
 pkg/trait/jvm.go                                   |  15 +--
 pkg/trait/jvm_test.go                              |  12 --
 pkg/trait/kamelets.go                              |  29 ++--
 pkg/trait/knative_test.go                          |  21 +--
 pkg/trait/mount.go                                 |  12 +-
 pkg/trait/openapi.go                               |  12 +-
 pkg/trait/platform.go                              |  11 +-
 pkg/trait/quarkus.go                               |  17 +--
 pkg/trait/quarkus_test.go                          |  14 +-
 pkg/trait/service_test.go                          |  16 +--
 pkg/trait/trait_configure_test.go                  |  11 +-
 pkg/trait/trait_types.go                           |  20 +++
 pkg/trait/util_test.go                             |  57 ++++----
 resources/traits.yaml                              |  43 +++---
 70 files changed, 463 insertions(+), 747 deletions(-)

diff --git a/cmd/util/doc-gen/generators/traitdocgen.go b/cmd/util/doc-gen/generators/traitdocgen.go
index 08f8c69af..c867cb370 100644
--- a/cmd/util/doc-gen/generators/traitdocgen.go
+++ b/cmd/util/doc-gen/generators/traitdocgen.go
@@ -173,7 +173,7 @@ func writeDescription(t *types.Type, traitID string, content *[]string) {
 	profiles := strings.Join(determineProfiles(traitID), ", ")
 	res = append(res, "", fmt.Sprintf("This trait is available in the following profiles: **%s**.", profiles))
 	if isPlatformTrait(traitID) {
-		res = append(res, "", fmt.Sprintf("WARNING: The %s trait is a *platform trait*: disabling it may compromise the platform functionality.", traitID))
+		res = append(res, "", fmt.Sprintf("NOTE: The %s trait is a *platform trait* and cannot be disabled by the user.", traitID))
 	}
 	res = append(res, "", adocDescriptionMarkerEnd)
 	res = append(res, post...)
diff --git a/config/crd/bases/camel.apache.org_integrationkits.yaml b/config/crd/bases/camel.apache.org_integrationkits.yaml
index fade604f6..3d56b6ab8 100644
--- a/config/crd/bases/camel.apache.org_integrationkits.yaml
+++ b/config/crd/bases/camel.apache.org_integrationkits.yaml
@@ -200,8 +200,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       incrementalImageBuild:
                         description: Use the incremental image build option, to reuse
@@ -297,8 +296,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       properties:
                         description: A list of properties to be provided to the Integration
@@ -336,8 +334,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       nativeBaseImage:
                         description: The base image to use when running a native build
diff --git a/config/crd/bases/camel.apache.org_integrationplatforms.yaml b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
index 2ba99f660..9ce27b07b 100644
--- a/config/crd/bases/camel.apache.org_integrationplatforms.yaml
+++ b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
@@ -503,8 +503,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       incrementalImageBuild:
                         description: Use the incremental image build option, to reuse
@@ -600,8 +599,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       properties:
                         description: A list of properties to be provided to the Integration
@@ -627,8 +625,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       expose:
                         description: Can be used to enable/disable exposure via kubernetes
@@ -758,8 +755,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   deployer:
@@ -771,8 +767,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       kind:
                         description: Allows to explicitly select the desired deployment
@@ -799,8 +794,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       progressDeadlineSeconds:
                         description: The maximum time in seconds for the deployment
@@ -844,8 +838,7 @@ spec:
                           environment variables (default `true`)
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       httpProxy:
                         description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and
@@ -869,8 +862,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       ref:
                         description: The error handler ref name provided or found
@@ -1165,8 +1157,7 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -1191,8 +1182,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
@@ -1425,8 +1415,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       hotReload:
                         description: Enable "hot reload" when a secret/configmap mounted
@@ -1465,8 +1454,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   owner:
@@ -1536,8 +1524,7 @@ spec:
                           platform is missing.
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       global:
                         description: Indicates if the platform should be created globally
@@ -1629,8 +1616,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       nativeBaseImage:
                         description: The base image to use when running a native build
@@ -2329,8 +2315,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       incrementalImageBuild:
                         description: Use the incremental image build option, to reuse
@@ -2426,8 +2411,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       properties:
                         description: A list of properties to be provided to the Integration
@@ -2453,8 +2437,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       expose:
                         description: Can be used to enable/disable exposure via kubernetes
@@ -2584,8 +2567,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   deployer:
@@ -2597,8 +2579,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       kind:
                         description: Allows to explicitly select the desired deployment
@@ -2625,8 +2606,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       progressDeadlineSeconds:
                         description: The maximum time in seconds for the deployment
@@ -2670,8 +2650,7 @@ spec:
                           environment variables (default `true`)
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       httpProxy:
                         description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and
@@ -2695,8 +2674,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       ref:
                         description: The error handler ref name provided or found
@@ -2991,8 +2969,7 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -3017,8 +2994,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
@@ -3251,8 +3227,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       hotReload:
                         description: Enable "hot reload" when a secret/configmap mounted
@@ -3291,8 +3266,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   owner:
@@ -3362,8 +3336,7 @@ spec:
                           platform is missing.
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       global:
                         description: Indicates if the platform should be created globally
@@ -3455,8 +3428,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       nativeBaseImage:
                         description: The base image to use when running a native build
diff --git a/config/crd/bases/camel.apache.org_integrations.yaml b/config/crd/bases/camel.apache.org_integrations.yaml
index fd022c643..4fa5b64be 100644
--- a/config/crd/bases/camel.apache.org_integrations.yaml
+++ b/config/crd/bases/camel.apache.org_integrations.yaml
@@ -6420,8 +6420,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       incrementalImageBuild:
                         description: Use the incremental image build option, to reuse
@@ -6517,8 +6516,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       properties:
                         description: A list of properties to be provided to the Integration
@@ -6544,8 +6542,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       expose:
                         description: Can be used to enable/disable exposure via kubernetes
@@ -6675,8 +6672,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   deployer:
@@ -6688,8 +6684,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       kind:
                         description: Allows to explicitly select the desired deployment
@@ -6716,8 +6711,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       progressDeadlineSeconds:
                         description: The maximum time in seconds for the deployment
@@ -6761,8 +6755,7 @@ spec:
                           environment variables (default `true`)
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       httpProxy:
                         description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and
@@ -6786,8 +6779,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       ref:
                         description: The error handler ref name provided or found
@@ -7082,8 +7074,7 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -7108,8 +7099,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
@@ -7342,8 +7332,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       hotReload:
                         description: Enable "hot reload" when a secret/configmap mounted
@@ -7382,8 +7371,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   owner:
@@ -7453,8 +7441,7 @@ spec:
                           platform is missing.
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       global:
                         description: Indicates if the platform should be created globally
@@ -7546,8 +7533,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       nativeBaseImage:
                         description: The base image to use when running a native build
diff --git a/config/crd/bases/camel.apache.org_kameletbindings.yaml b/config/crd/bases/camel.apache.org_kameletbindings.yaml
index 8ff36efee..d0356a2a4 100644
--- a/config/crd/bases/camel.apache.org_kameletbindings.yaml
+++ b/config/crd/bases/camel.apache.org_kameletbindings.yaml
@@ -6702,8 +6702,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           incrementalImageBuild:
                             description: Use the incremental image build option, to
@@ -6800,8 +6799,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           properties:
                             description: A list of properties to be provided to the
@@ -6827,8 +6825,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           expose:
                             description: Can be used to enable/disable exposure via
@@ -6960,8 +6957,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                         type: object
                       deployer:
@@ -6973,8 +6969,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           kind:
                             description: Allows to explicitly select the desired deployment
@@ -7001,8 +6996,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           progressDeadlineSeconds:
                             description: The maximum time in seconds for the deployment
@@ -7046,8 +7040,7 @@ spec:
                               environment variables (default `true`)
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           httpProxy:
                             description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY`
@@ -7071,8 +7064,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           ref:
                             description: The error handler ref name provided or found
@@ -7368,8 +7360,7 @@ spec:
                               the main class is loaded
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           options:
                             description: A list of JVM options
@@ -7394,8 +7385,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           list:
                             description: Comma separated list of Kamelet names to
@@ -7637,8 +7627,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           hotReload:
                             description: Enable "hot reload" when a secret/configmap
@@ -7677,8 +7666,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                         type: object
                       owner:
@@ -7748,8 +7736,7 @@ spec:
                               the platform is missing.
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           global:
                             description: Indicates if the platform should be created
@@ -7843,8 +7830,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           nativeBaseImage:
                             description: The base image to use when running a native
diff --git a/config/crd/bases/camel.apache.org_pipes.yaml b/config/crd/bases/camel.apache.org_pipes.yaml
index 898059548..804c1667d 100644
--- a/config/crd/bases/camel.apache.org_pipes.yaml
+++ b/config/crd/bases/camel.apache.org_pipes.yaml
@@ -6700,8 +6700,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           incrementalImageBuild:
                             description: Use the incremental image build option, to
@@ -6798,8 +6797,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           properties:
                             description: A list of properties to be provided to the
@@ -6825,8 +6823,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           expose:
                             description: Can be used to enable/disable exposure via
@@ -6958,8 +6955,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                         type: object
                       deployer:
@@ -6971,8 +6967,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           kind:
                             description: Allows to explicitly select the desired deployment
@@ -6999,8 +6994,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           progressDeadlineSeconds:
                             description: The maximum time in seconds for the deployment
@@ -7044,8 +7038,7 @@ spec:
                               environment variables (default `true`)
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           httpProxy:
                             description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY`
@@ -7069,8 +7062,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           ref:
                             description: The error handler ref name provided or found
@@ -7366,8 +7358,7 @@ spec:
                               the main class is loaded
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           options:
                             description: A list of JVM options
@@ -7392,8 +7383,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           list:
                             description: Comma separated list of Kamelet names to
@@ -7635,8 +7625,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           hotReload:
                             description: Enable "hot reload" when a secret/configmap
@@ -7675,8 +7664,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                         type: object
                       owner:
@@ -7746,8 +7734,7 @@ spec:
                               the platform is missing.
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           global:
                             description: Indicates if the platform should be created
@@ -7841,8 +7828,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           nativeBaseImage:
                             description: The base image to use when running a native
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index b2aaca813..5cef30702 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -5752,7 +5752,7 @@ integration pod(s) should not be co-located with.
 * <<#_camel_apache_org_v1_IntegrationKitTraits, IntegrationKitTraits>>
 * <<#_camel_apache_org_v1_Traits, Traits>>
 
-BuilderTrait is internally used to determine the best strategy to
+The builder trait is internally used to determine the best strategy to
 build and configure IntegrationKits.
 
 
@@ -5761,9 +5761,9 @@ build and configure IntegrationKits.
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -5898,9 +5898,9 @@ The Camel trait can be used to configure versions of Apache Camel K runtime and
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -5927,8 +5927,10 @@ A list of properties to be provided to the Integration runtime
 
 *Appears on:*
 
+* <<#_camel_apache_org_v1_trait_PlatformBaseTrait, PlatformBaseTrait>>
 * <<#_camel_apache_org_v1_trait_Trait, Trait>>
 
+Configuration defines the trait structure
 Deprecated: for backward compatibility.
 
 [cols="2,2a",options="header"]
@@ -5964,9 +5966,9 @@ nolint: tagliatelle
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -6195,9 +6197,9 @@ integration that the user wants to run.
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -6221,9 +6223,9 @@ to explicitly select the underlying controller that will manage the integration
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -6262,9 +6264,9 @@ the integration will run in the cluster.
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -6336,9 +6338,9 @@ such as `NAMESPACE`, `POD_NAME` and others.
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -6384,9 +6386,9 @@ The error-handler is a platform trait used to inject Error Handler source into t
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -6729,9 +6731,9 @@ The JVM trait is used to configure the JVM that runs the integration.
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -6909,9 +6911,9 @@ The kamelets trait is a platform trait used to inject Kamelets into the integrat
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -7243,9 +7245,9 @@ nolint: tagliatelle
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -7302,9 +7304,9 @@ The OpenAPI DSL trait is internally used to allow creating integrations from a O
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -7400,6 +7402,51 @@ It can be either an absolute number or a percentage (default `1` if `min-availab
 Only one of `max-unavailable` and `min-available` can be specified.
 
 
+|===
+
+[#_camel_apache_org_v1_trait_PlatformBaseTrait]
+=== PlatformBaseTrait
+
+*Appears on:*
+
+* <<#_camel_apache_org_v1_trait_BuilderTrait, BuilderTrait>>
+* <<#_camel_apache_org_v1_trait_CamelTrait, CamelTrait>>
+* <<#_camel_apache_org_v1_trait_ContainerTrait, ContainerTrait>>
+* <<#_camel_apache_org_v1_trait_DependenciesTrait, DependenciesTrait>>
+* <<#_camel_apache_org_v1_trait_DeployerTrait, DeployerTrait>>
+* <<#_camel_apache_org_v1_trait_DeploymentTrait, DeploymentTrait>>
+* <<#_camel_apache_org_v1_trait_EnvironmentTrait, EnvironmentTrait>>
+* <<#_camel_apache_org_v1_trait_ErrorHandlerTrait, ErrorHandlerTrait>>
+* <<#_camel_apache_org_v1_trait_JVMTrait, JVMTrait>>
+* <<#_camel_apache_org_v1_trait_KameletsTrait, KameletsTrait>>
+* <<#_camel_apache_org_v1_trait_MountTrait, MountTrait>>
+* <<#_camel_apache_org_v1_trait_OpenAPITrait, OpenAPITrait>>
+* <<#_camel_apache_org_v1_trait_PlatformTrait, PlatformTrait>>
+* <<#_camel_apache_org_v1_trait_QuarkusTrait, QuarkusTrait>>
+
+PlatformBaseTrait is the base type for platform traits. It cannot be disabled by the user.
+
+[cols="2,2a",options="header"]
+|===
+|Field
+|Description
+
+|`enabled` +
+bool
+|
+
+
+Deprecated: no longer in use.
+
+|`configuration` +
+*xref:#_camel_apache_org_v1_trait_Configuration[Configuration]*
+|
+
+
+Legacy trait configuration parameters.
+Deprecated: for backward compatibility.
+
+
 |===
 
 [#_camel_apache_org_v1_trait_PlatformTrait]
@@ -7421,9 +7468,9 @@ This feature is especially useful in contexts where there's no need to provide a
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -7630,9 +7677,9 @@ Compiling to a native executable, i.e. when using `build-mode=native`, requires
 |Field
 |Description
 
-|`Trait` +
-*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
-|(Members of `Trait` are embedded into this type.)
+|`PlatformBaseTrait` +
+*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
+|(Members of `PlatformBaseTrait` are embedded into this type.)
 
 
 
@@ -7683,6 +7730,7 @@ The image containing the tooling required for a native build (by default it will
 
 * <<#_camel_apache_org_v1_trait_Configuration, Configuration>>
 
+RawMessage defines a binary type for configuration
 Deprecated: for backward compatibility.
 
 
@@ -8001,41 +8049,27 @@ The list of taints to tolerate, in the form `Key[=Value]:Effect[:Seconds]`
 *Appears on:*
 
 * <<#_camel_apache_org_v1_trait_AffinityTrait, AffinityTrait>>
-* <<#_camel_apache_org_v1_trait_BuilderTrait, BuilderTrait>>
-* <<#_camel_apache_org_v1_trait_CamelTrait, CamelTrait>>
-* <<#_camel_apache_org_v1_trait_ContainerTrait, ContainerTrait>>
 * <<#_camel_apache_org_v1_trait_CronTrait, CronTrait>>
-* <<#_camel_apache_org_v1_trait_DependenciesTrait, DependenciesTrait>>
-* <<#_camel_apache_org_v1_trait_DeployerTrait, DeployerTrait>>
-* <<#_camel_apache_org_v1_trait_DeploymentTrait, DeploymentTrait>>
-* <<#_camel_apache_org_v1_trait_EnvironmentTrait, EnvironmentTrait>>
-* <<#_camel_apache_org_v1_trait_ErrorHandlerTrait, ErrorHandlerTrait>>
 * <<#_camel_apache_org_v1_trait_GCTrait, GCTrait>>
 * <<#_camel_apache_org_v1_trait_HealthTrait, HealthTrait>>
 * <<#_camel_apache_org_v1_trait_IngressTrait, IngressTrait>>
 * <<#_camel_apache_org_v1_trait_IstioTrait, IstioTrait>>
-* <<#_camel_apache_org_v1_trait_JVMTrait, JVMTrait>>
 * <<#_camel_apache_org_v1_trait_JolokiaTrait, JolokiaTrait>>
-* <<#_camel_apache_org_v1_trait_KameletsTrait, KameletsTrait>>
 * <<#_camel_apache_org_v1_trait_KnativeServiceTrait, KnativeServiceTrait>>
 * <<#_camel_apache_org_v1_trait_KnativeTrait, KnativeTrait>>
 * <<#_camel_apache_org_v1_trait_LoggingTrait, LoggingTrait>>
-* <<#_camel_apache_org_v1_trait_MountTrait, MountTrait>>
-* <<#_camel_apache_org_v1_trait_OpenAPITrait, OpenAPITrait>>
 * <<#_camel_apache_org_v1_trait_OwnerTrait, OwnerTrait>>
 * <<#_camel_apache_org_v1_trait_PDBTrait, PDBTrait>>
-* <<#_camel_apache_org_v1_trait_PlatformTrait, PlatformTrait>>
 * <<#_camel_apache_org_v1_trait_PodTrait, PodTrait>>
 * <<#_camel_apache_org_v1_trait_PrometheusTrait, PrometheusTrait>>
 * <<#_camel_apache_org_v1_trait_PullSecretTrait, PullSecretTrait>>
-* <<#_camel_apache_org_v1_trait_QuarkusTrait, QuarkusTrait>>
 * <<#_camel_apache_org_v1_trait_RegistryTrait, RegistryTrait>>
 * <<#_camel_apache_org_v1_trait_RouteTrait, RouteTrait>>
 * <<#_camel_apache_org_v1_trait_ServiceBindingTrait, ServiceBindingTrait>>
 * <<#_camel_apache_org_v1_trait_ServiceTrait, ServiceTrait>>
 * <<#_camel_apache_org_v1_trait_TolerationTrait, TolerationTrait>>
 
-Base type for all traits.
+Trait is the base type for all traits. It could be disabled by the user
 
 [cols="2,2a",options="header"]
 |===
diff --git a/docs/modules/traits/pages/builder.adoc b/docs/modules/traits/pages/builder.adoc
index 584ee4ad9..5f57773e3 100755
--- a/docs/modules/traits/pages/builder.adoc
+++ b/docs/modules/traits/pages/builder.adoc
@@ -1,13 +1,13 @@
 = Builder Trait
 
 // Start of autogenerated code - DO NOT EDIT! (description)
-BuilderTrait is internally used to determine the best strategy to
+The builder trait is internally used to determine the best strategy to
 build and configure IntegrationKits.
 
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The builder trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The builder trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -26,7 +26,7 @@ The following configuration options are available:
 
 | builder.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | builder.verbose
 | bool
diff --git a/docs/modules/traits/pages/camel.adoc b/docs/modules/traits/pages/camel.adoc
index a153a68bb..3c7a29e36 100755
--- a/docs/modules/traits/pages/camel.adoc
+++ b/docs/modules/traits/pages/camel.adoc
@@ -6,7 +6,7 @@ The Camel trait can be used to configure versions of Apache Camel K runtime and
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The camel trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The camel trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -25,7 +25,7 @@ The following configuration options are available:
 
 | camel.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | camel.runtime-version
 | string
diff --git a/docs/modules/traits/pages/container.adoc b/docs/modules/traits/pages/container.adoc
index a9761107a..65925bc46 100755
--- a/docs/modules/traits/pages/container.adoc
+++ b/docs/modules/traits/pages/container.adoc
@@ -8,7 +8,7 @@ It also provides configuration for Services associated to the container.
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The container trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The container trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -27,7 +27,7 @@ The following configuration options are available:
 
 | container.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | container.auto
 | bool
diff --git a/docs/modules/traits/pages/dependencies.adoc b/docs/modules/traits/pages/dependencies.adoc
index 3e3fbd36a..4acecfd6d 100755
--- a/docs/modules/traits/pages/dependencies.adoc
+++ b/docs/modules/traits/pages/dependencies.adoc
@@ -7,7 +7,7 @@ integration that the user wants to run.
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The dependencies trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The dependencies trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -26,7 +26,7 @@ The following configuration options are available:
 
 | dependencies.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 |===
 
diff --git a/docs/modules/traits/pages/deployer.adoc b/docs/modules/traits/pages/deployer.adoc
index 906f34936..e57d64d83 100755
--- a/docs/modules/traits/pages/deployer.adoc
+++ b/docs/modules/traits/pages/deployer.adoc
@@ -7,7 +7,7 @@ to explicitly select the underlying controller that will manage the integration
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The deployer trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The deployer trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -26,7 +26,7 @@ The following configuration options are available:
 
 | deployer.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | deployer.kind
 | string
diff --git a/docs/modules/traits/pages/deployment.adoc b/docs/modules/traits/pages/deployment.adoc
index 6188609e4..f4f475aab 100755
--- a/docs/modules/traits/pages/deployment.adoc
+++ b/docs/modules/traits/pages/deployment.adoc
@@ -7,7 +7,7 @@ the integration will run in the cluster.
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The deployment trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The deployment trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -26,7 +26,7 @@ The following configuration options are available:
 
 | deployment.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | deployment.progress-deadline-seconds
 | int32
diff --git a/docs/modules/traits/pages/environment.adoc b/docs/modules/traits/pages/environment.adoc
index 754f15519..e1fb20a57 100755
--- a/docs/modules/traits/pages/environment.adoc
+++ b/docs/modules/traits/pages/environment.adoc
@@ -7,7 +7,7 @@ such as `NAMESPACE`, `POD_NAME` and others.
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The environment trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The environment trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -26,7 +26,7 @@ The following configuration options are available:
 
 | environment.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | environment.container-meta
 | bool
diff --git a/docs/modules/traits/pages/error-handler.adoc b/docs/modules/traits/pages/error-handler.adoc
index 7ddfd172c..9a7956397 100755
--- a/docs/modules/traits/pages/error-handler.adoc
+++ b/docs/modules/traits/pages/error-handler.adoc
@@ -6,7 +6,7 @@ The error-handler is a platform trait used to inject Error Handler source into t
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The error-handler trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The error-handler trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -25,7 +25,7 @@ The following configuration options are available:
 
 | error-handler.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | error-handler.ref
 | string
diff --git a/docs/modules/traits/pages/jvm.adoc b/docs/modules/traits/pages/jvm.adoc
index e60a5e1e9..5e6780e87 100755
--- a/docs/modules/traits/pages/jvm.adoc
+++ b/docs/modules/traits/pages/jvm.adoc
@@ -6,7 +6,7 @@ The JVM trait is used to configure the JVM that runs the integration.
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The jvm trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The jvm trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -25,7 +25,7 @@ The following configuration options are available:
 
 | jvm.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | jvm.debug
 | bool
diff --git a/docs/modules/traits/pages/kamelets.adoc b/docs/modules/traits/pages/kamelets.adoc
index e4fa394ff..7930d7868 100755
--- a/docs/modules/traits/pages/kamelets.adoc
+++ b/docs/modules/traits/pages/kamelets.adoc
@@ -6,7 +6,7 @@ The kamelets trait is a platform trait used to inject Kamelets into the integrat
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The kamelets trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The kamelets trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -25,7 +25,7 @@ The following configuration options are available:
 
 | kamelets.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | kamelets.auto
 | bool
diff --git a/docs/modules/traits/pages/mount.adoc b/docs/modules/traits/pages/mount.adoc
index d984e37ee..78f9b1685 100644
--- a/docs/modules/traits/pages/mount.adoc
+++ b/docs/modules/traits/pages/mount.adoc
@@ -6,7 +6,7 @@ The Mount trait can be used to configure volumes mounted on the Integration Pods
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The mount trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The mount trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -25,7 +25,7 @@ The following configuration options are available:
 
 | mount.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | mount.configs
 | []string
diff --git a/docs/modules/traits/pages/openapi.adoc b/docs/modules/traits/pages/openapi.adoc
index da78e67ef..d44469481 100755
--- a/docs/modules/traits/pages/openapi.adoc
+++ b/docs/modules/traits/pages/openapi.adoc
@@ -6,7 +6,7 @@ The OpenAPI DSL trait is internally used to allow creating integrations from a O
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The openapi trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The openapi trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -25,7 +25,7 @@ The following configuration options are available:
 
 | openapi.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | openapi.configmaps
 | []string
diff --git a/docs/modules/traits/pages/owner.adoc b/docs/modules/traits/pages/owner.adoc
index 20216dc8e..6a2cd8f22 100755
--- a/docs/modules/traits/pages/owner.adoc
+++ b/docs/modules/traits/pages/owner.adoc
@@ -7,7 +7,7 @@ and transfers annotations and labels on the integration onto these owned resourc
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The owner trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The owner trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
diff --git a/docs/modules/traits/pages/platform.adoc b/docs/modules/traits/pages/platform.adoc
index 20cbf4432..7ac67efa4 100755
--- a/docs/modules/traits/pages/platform.adoc
+++ b/docs/modules/traits/pages/platform.adoc
@@ -10,7 +10,7 @@ This feature is especially useful in contexts where there's no need to provide a
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The platform trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The platform trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -29,7 +29,7 @@ The following configuration options are available:
 
 | platform.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | platform.create-default
 | bool
diff --git a/docs/modules/traits/pages/quarkus.adoc b/docs/modules/traits/pages/quarkus.adoc
index 0fbf5a19f..baaf9834f 100755
--- a/docs/modules/traits/pages/quarkus.adoc
+++ b/docs/modules/traits/pages/quarkus.adoc
@@ -12,7 +12,7 @@ Compiling to a native executable, i.e. when using `build-mode=native`, requires
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-WARNING: The quarkus trait is a *platform trait*: disabling it may compromise the platform functionality.
+NOTE: The quarkus trait is a *platform trait* and cannot be disabled by the user.
 
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
@@ -31,7 +31,7 @@ The following configuration options are available:
 
 | quarkus.enabled
 | bool
-| Can be used to enable or disable a trait. All traits share this common property.
+| Deprecated: no longer in use.
 
 | quarkus.package-type
 | []github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait.QuarkusPackageType
diff --git a/helm/camel-k/crds/crd-integration-kit.yaml b/helm/camel-k/crds/crd-integration-kit.yaml
index fade604f6..3d56b6ab8 100644
--- a/helm/camel-k/crds/crd-integration-kit.yaml
+++ b/helm/camel-k/crds/crd-integration-kit.yaml
@@ -200,8 +200,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       incrementalImageBuild:
                         description: Use the incremental image build option, to reuse
@@ -297,8 +296,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       properties:
                         description: A list of properties to be provided to the Integration
@@ -336,8 +334,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       nativeBaseImage:
                         description: The base image to use when running a native build
diff --git a/helm/camel-k/crds/crd-integration-platform.yaml b/helm/camel-k/crds/crd-integration-platform.yaml
index 2ba99f660..9ce27b07b 100644
--- a/helm/camel-k/crds/crd-integration-platform.yaml
+++ b/helm/camel-k/crds/crd-integration-platform.yaml
@@ -503,8 +503,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       incrementalImageBuild:
                         description: Use the incremental image build option, to reuse
@@ -600,8 +599,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       properties:
                         description: A list of properties to be provided to the Integration
@@ -627,8 +625,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       expose:
                         description: Can be used to enable/disable exposure via kubernetes
@@ -758,8 +755,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   deployer:
@@ -771,8 +767,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       kind:
                         description: Allows to explicitly select the desired deployment
@@ -799,8 +794,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       progressDeadlineSeconds:
                         description: The maximum time in seconds for the deployment
@@ -844,8 +838,7 @@ spec:
                           environment variables (default `true`)
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       httpProxy:
                         description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and
@@ -869,8 +862,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       ref:
                         description: The error handler ref name provided or found
@@ -1165,8 +1157,7 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -1191,8 +1182,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
@@ -1425,8 +1415,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       hotReload:
                         description: Enable "hot reload" when a secret/configmap mounted
@@ -1465,8 +1454,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   owner:
@@ -1536,8 +1524,7 @@ spec:
                           platform is missing.
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       global:
                         description: Indicates if the platform should be created globally
@@ -1629,8 +1616,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       nativeBaseImage:
                         description: The base image to use when running a native build
@@ -2329,8 +2315,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       incrementalImageBuild:
                         description: Use the incremental image build option, to reuse
@@ -2426,8 +2411,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       properties:
                         description: A list of properties to be provided to the Integration
@@ -2453,8 +2437,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       expose:
                         description: Can be used to enable/disable exposure via kubernetes
@@ -2584,8 +2567,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   deployer:
@@ -2597,8 +2579,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       kind:
                         description: Allows to explicitly select the desired deployment
@@ -2625,8 +2606,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       progressDeadlineSeconds:
                         description: The maximum time in seconds for the deployment
@@ -2670,8 +2650,7 @@ spec:
                           environment variables (default `true`)
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       httpProxy:
                         description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and
@@ -2695,8 +2674,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       ref:
                         description: The error handler ref name provided or found
@@ -2991,8 +2969,7 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -3017,8 +2994,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
@@ -3251,8 +3227,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       hotReload:
                         description: Enable "hot reload" when a secret/configmap mounted
@@ -3291,8 +3266,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   owner:
@@ -3362,8 +3336,7 @@ spec:
                           platform is missing.
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       global:
                         description: Indicates if the platform should be created globally
@@ -3455,8 +3428,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       nativeBaseImage:
                         description: The base image to use when running a native build
diff --git a/helm/camel-k/crds/crd-integration.yaml b/helm/camel-k/crds/crd-integration.yaml
index fd022c643..4fa5b64be 100644
--- a/helm/camel-k/crds/crd-integration.yaml
+++ b/helm/camel-k/crds/crd-integration.yaml
@@ -6420,8 +6420,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       incrementalImageBuild:
                         description: Use the incremental image build option, to reuse
@@ -6517,8 +6516,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       properties:
                         description: A list of properties to be provided to the Integration
@@ -6544,8 +6542,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       expose:
                         description: Can be used to enable/disable exposure via kubernetes
@@ -6675,8 +6672,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   deployer:
@@ -6688,8 +6684,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       kind:
                         description: Allows to explicitly select the desired deployment
@@ -6716,8 +6711,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       progressDeadlineSeconds:
                         description: The maximum time in seconds for the deployment
@@ -6761,8 +6755,7 @@ spec:
                           environment variables (default `true`)
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       httpProxy:
                         description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and
@@ -6786,8 +6779,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       ref:
                         description: The error handler ref name provided or found
@@ -7082,8 +7074,7 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -7108,8 +7099,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
@@ -7342,8 +7332,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       hotReload:
                         description: Enable "hot reload" when a secret/configmap mounted
@@ -7382,8 +7371,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                     type: object
                   owner:
@@ -7453,8 +7441,7 @@ spec:
                           platform is missing.
                         type: boolean
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       global:
                         description: Indicates if the platform should be created globally
@@ -7546,8 +7533,7 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: Can be used to enable or disable a trait. All
-                          traits share this common property.
+                        description: 'Deprecated: no longer in use.'
                         type: boolean
                       nativeBaseImage:
                         description: The base image to use when running a native build
diff --git a/helm/camel-k/crds/crd-kamelet-binding.yaml b/helm/camel-k/crds/crd-kamelet-binding.yaml
index 8ff36efee..d0356a2a4 100644
--- a/helm/camel-k/crds/crd-kamelet-binding.yaml
+++ b/helm/camel-k/crds/crd-kamelet-binding.yaml
@@ -6702,8 +6702,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           incrementalImageBuild:
                             description: Use the incremental image build option, to
@@ -6800,8 +6799,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           properties:
                             description: A list of properties to be provided to the
@@ -6827,8 +6825,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           expose:
                             description: Can be used to enable/disable exposure via
@@ -6960,8 +6957,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                         type: object
                       deployer:
@@ -6973,8 +6969,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           kind:
                             description: Allows to explicitly select the desired deployment
@@ -7001,8 +6996,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           progressDeadlineSeconds:
                             description: The maximum time in seconds for the deployment
@@ -7046,8 +7040,7 @@ spec:
                               environment variables (default `true`)
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           httpProxy:
                             description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY`
@@ -7071,8 +7064,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           ref:
                             description: The error handler ref name provided or found
@@ -7368,8 +7360,7 @@ spec:
                               the main class is loaded
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           options:
                             description: A list of JVM options
@@ -7394,8 +7385,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           list:
                             description: Comma separated list of Kamelet names to
@@ -7637,8 +7627,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           hotReload:
                             description: Enable "hot reload" when a secret/configmap
@@ -7677,8 +7666,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                         type: object
                       owner:
@@ -7748,8 +7736,7 @@ spec:
                               the platform is missing.
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           global:
                             description: Indicates if the platform should be created
@@ -7843,8 +7830,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           nativeBaseImage:
                             description: The base image to use when running a native
diff --git a/helm/camel-k/crds/crd-pipe.yaml b/helm/camel-k/crds/crd-pipe.yaml
index 898059548..804c1667d 100644
--- a/helm/camel-k/crds/crd-pipe.yaml
+++ b/helm/camel-k/crds/crd-pipe.yaml
@@ -6700,8 +6700,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           incrementalImageBuild:
                             description: Use the incremental image build option, to
@@ -6798,8 +6797,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           properties:
                             description: A list of properties to be provided to the
@@ -6825,8 +6823,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           expose:
                             description: Can be used to enable/disable exposure via
@@ -6958,8 +6955,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                         type: object
                       deployer:
@@ -6971,8 +6967,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           kind:
                             description: Allows to explicitly select the desired deployment
@@ -6999,8 +6994,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           progressDeadlineSeconds:
                             description: The maximum time in seconds for the deployment
@@ -7044,8 +7038,7 @@ spec:
                               environment variables (default `true`)
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           httpProxy:
                             description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY`
@@ -7069,8 +7062,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           ref:
                             description: The error handler ref name provided or found
@@ -7366,8 +7358,7 @@ spec:
                               the main class is loaded
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           options:
                             description: A list of JVM options
@@ -7392,8 +7383,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           list:
                             description: Comma separated list of Kamelet names to
@@ -7635,8 +7625,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           hotReload:
                             description: Enable "hot reload" when a secret/configmap
@@ -7675,8 +7664,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                         type: object
                       owner:
@@ -7746,8 +7734,7 @@ spec:
                               the platform is missing.
                             type: boolean
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           global:
                             description: Indicates if the platform should be created
@@ -7841,8 +7828,7 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: Can be used to enable or disable a trait.
-                              All traits share this common property.
+                            description: 'Deprecated: no longer in use.'
                             type: boolean
                           nativeBaseImage:
                             description: The base image to use when running a native
diff --git a/pkg/apis/camel/v1/trait/base.go b/pkg/apis/camel/v1/trait/base.go
index 8c571ba02..c4d62042d 100644
--- a/pkg/apis/camel/v1/trait/base.go
+++ b/pkg/apis/camel/v1/trait/base.go
@@ -17,7 +17,7 @@ limitations under the License.
 
 package trait
 
-// Base type for all traits.
+// Trait is the base type for all traits. It could be disabled by the user.
 type Trait struct {
 	// Can be used to enable or disable a trait. All traits share this common property.
 	Enabled *bool `property:"enabled" json:"enabled,omitempty"`
@@ -27,11 +27,22 @@ type Trait struct {
 	Configuration *Configuration `json:"configuration,omitempty"`
 }
 
+// PlatformBaseTrait is the base type for platform traits. It cannot be disabled by the user.
+type PlatformBaseTrait struct {
+	// Deprecated: no longer in use.
+	Enabled *bool `property:"enabled" json:"enabled,omitempty"`
+	// Legacy trait configuration parameters.
+	// Deprecated: for backward compatibility.
+	Configuration *Configuration `json:"configuration,omitempty"`
+}
+
+// Configuration defines the trait structure
 // Deprecated: for backward compatibility.
 type Configuration struct {
 	RawMessage `json:",inline"`
 }
 
+// RawMessage defines a binary type for configuration
 // +kubebuilder:validation:Type=object
 // +kubebuilder:validation:Format=""
 // +kubebuilder:pruning:PreserveUnknownFields
diff --git a/pkg/apis/camel/v1/trait/builder.go b/pkg/apis/camel/v1/trait/builder.go
index edc031dfe..3b32cf53b 100644
--- a/pkg/apis/camel/v1/trait/builder.go
+++ b/pkg/apis/camel/v1/trait/builder.go
@@ -17,12 +17,12 @@ limitations under the License.
 
 package trait
 
-// BuilderTrait is internally used to determine the best strategy to
+// The builder trait is internally used to determine the best strategy to
 // build and configure IntegrationKits.
 //
 // +camel-k:trait=builder.
 type BuilderTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// Enable verbose logging on build components that support it (e.g. Kaniko build pod).
 	Verbose *bool `property:"verbose" json:"verbose,omitempty"`
 	// A list of properties to be provided to the build task
diff --git a/pkg/apis/camel/v1/trait/camel.go b/pkg/apis/camel/v1/trait/camel.go
index 565b63752..348ff56ea 100644
--- a/pkg/apis/camel/v1/trait/camel.go
+++ b/pkg/apis/camel/v1/trait/camel.go
@@ -21,7 +21,7 @@ package trait
 //
 // +camel-k:trait=camel.
 type CamelTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// The camel-k-runtime version to use for the integration. It overrides the default version set in the Integration Platform.
 	RuntimeVersion string `property:"runtime-version" json:"runtimeVersion,omitempty"`
 	// A list of properties to be provided to the Integration runtime
diff --git a/pkg/apis/camel/v1/trait/container.go b/pkg/apis/camel/v1/trait/container.go
index f33c4f74a..d5791ec38 100644
--- a/pkg/apis/camel/v1/trait/container.go
+++ b/pkg/apis/camel/v1/trait/container.go
@@ -26,11 +26,9 @@ import corev1 "k8s.io/api/core/v1"
 // +camel-k:trait=container
 // nolint: tagliatelle
 type ContainerTrait struct {
-	Trait `property:",squash" json:",inline"`
-
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// To automatically enable the trait
 	Auto *bool `property:"auto" json:"auto,omitempty"`
-
 	// The minimum amount of CPU required.
 	RequestCPU string `property:"request-cpu" json:"requestCPU,omitempty"`
 	// The minimum amount of memory required.
@@ -39,7 +37,6 @@ type ContainerTrait struct {
 	LimitCPU string `property:"limit-cpu" json:"limitCPU,omitempty"`
 	// The maximum amount of memory required.
 	LimitMemory string `property:"limit-memory" json:"limitMemory,omitempty"`
-
 	// Can be used to enable/disable exposure via kubernetes Service.
 	Expose *bool `property:"expose" json:"expose,omitempty"`
 	// To configure a different port exposed by the container (default `8080`).
diff --git a/pkg/apis/camel/v1/trait/dependencies.go b/pkg/apis/camel/v1/trait/dependencies.go
index 7ea9772d6..61b1cd3d4 100644
--- a/pkg/apis/camel/v1/trait/dependencies.go
+++ b/pkg/apis/camel/v1/trait/dependencies.go
@@ -22,5 +22,5 @@ package trait
 //
 // +camel-k:trait=dependencies.
 type DependenciesTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 }
diff --git a/pkg/apis/camel/v1/trait/deployer.go b/pkg/apis/camel/v1/trait/deployer.go
index f9f666a0e..70d140ec4 100644
--- a/pkg/apis/camel/v1/trait/deployer.go
+++ b/pkg/apis/camel/v1/trait/deployer.go
@@ -22,7 +22,7 @@ package trait
 //
 // +camel-k:trait=deployer.
 type DeployerTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `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"`
diff --git a/pkg/apis/camel/v1/trait/deployment.go b/pkg/apis/camel/v1/trait/deployment.go
index 9e96dc218..367a25605 100644
--- a/pkg/apis/camel/v1/trait/deployment.go
+++ b/pkg/apis/camel/v1/trait/deployment.go
@@ -26,7 +26,7 @@ import (
 //
 // +camel-k:trait=deployment.
 type DeploymentTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// The maximum time in seconds for the deployment to make progress before it
 	// is considered to be failed. It defaults to 60s.
 	ProgressDeadlineSeconds *int32 `property:"progress-deadline-seconds" json:"progressDeadlineSeconds,omitempty"`
diff --git a/pkg/apis/camel/v1/trait/environment.go b/pkg/apis/camel/v1/trait/environment.go
index c0411a44e..da3c423e5 100644
--- a/pkg/apis/camel/v1/trait/environment.go
+++ b/pkg/apis/camel/v1/trait/environment.go
@@ -22,7 +22,7 @@ package trait
 //
 // +camel-k:trait=environment.
 type EnvironmentTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// Enables injection of `NAMESPACE` and `POD_NAME` environment variables (default `true`)
 	ContainerMeta *bool `property:"container-meta" json:"containerMeta,omitempty"`
 	// Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables (default `true`)
diff --git a/pkg/apis/camel/v1/trait/error_handler.go b/pkg/apis/camel/v1/trait/error_handler.go
index f8d393323..d51f14805 100644
--- a/pkg/apis/camel/v1/trait/error_handler.go
+++ b/pkg/apis/camel/v1/trait/error_handler.go
@@ -21,7 +21,7 @@ package trait
 //
 // +camel-k:trait=error-handler.
 type ErrorHandlerTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// The error handler ref name provided or found in application properties
 	ErrorHandlerRef string `property:"ref" json:"ref,omitempty"`
 }
diff --git a/pkg/apis/camel/v1/trait/jvm.go b/pkg/apis/camel/v1/trait/jvm.go
index 70bb3b7de..8d35f1ac2 100644
--- a/pkg/apis/camel/v1/trait/jvm.go
+++ b/pkg/apis/camel/v1/trait/jvm.go
@@ -21,7 +21,7 @@ package trait
 //
 // +camel-k:trait=jvm.
 type JVMTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// Activates remote debugging, so that a debugger can be attached to the JVM, e.g., using port-forwarding
 	Debug *bool `property:"debug" json:"debug,omitempty"`
 	// Suspends the target JVM immediately before the main class is loaded
diff --git a/pkg/apis/camel/v1/trait/kamelets.go b/pkg/apis/camel/v1/trait/kamelets.go
index 9467b4883..ba0650da3 100644
--- a/pkg/apis/camel/v1/trait/kamelets.go
+++ b/pkg/apis/camel/v1/trait/kamelets.go
@@ -21,7 +21,7 @@ package trait
 //
 // +camel-k:trait=kamelets.
 type KameletsTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// Automatically inject all referenced Kamelets and their default configuration (enabled by default)
 	Auto *bool `property:"auto" json:"auto,omitempty"`
 	// Comma separated list of Kamelet names to load into the current integration
diff --git a/pkg/apis/camel/v1/trait/mount.go b/pkg/apis/camel/v1/trait/mount.go
index d01da2f7d..e5ccbebc5 100644
--- a/pkg/apis/camel/v1/trait/mount.go
+++ b/pkg/apis/camel/v1/trait/mount.go
@@ -22,7 +22,7 @@ package trait
 // +camel-k:trait=mount
 // nolint: tagliatelle
 type MountTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// A list of configuration pointing to configmap/secret.
 	// The configuration are expected to be UTF-8 resources as they are processed by runtime Camel Context and tried to be parsed as property files.
 	// They are also made available on the classpath in order to ease their usage directly from the Route.
diff --git a/pkg/apis/camel/v1/trait/openapi.go b/pkg/apis/camel/v1/trait/openapi.go
index 8c5b5ded1..3a28b3f37 100644
--- a/pkg/apis/camel/v1/trait/openapi.go
+++ b/pkg/apis/camel/v1/trait/openapi.go
@@ -21,7 +21,7 @@ package trait
 //
 // +camel-k:trait=openapi.
 type OpenAPITrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// The configmaps holding the spec of the OpenAPI
 	Configmaps []string `property:"configmaps" json:"configmaps,omitempty"`
 }
diff --git a/pkg/apis/camel/v1/trait/platform.go b/pkg/apis/camel/v1/trait/platform.go
index a74a23f5c..116de6ad0 100644
--- a/pkg/apis/camel/v1/trait/platform.go
+++ b/pkg/apis/camel/v1/trait/platform.go
@@ -25,7 +25,7 @@ package trait
 //
 // +camel-k:trait=platform.
 type PlatformTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// To create a default (empty) platform when the platform is missing.
 	CreateDefault *bool `property:"create-default" json:"createDefault,omitempty"`
 	// Indicates if the platform should be created globally in the case of global operator (default true).
diff --git a/pkg/apis/camel/v1/trait/quarkus.go b/pkg/apis/camel/v1/trait/quarkus.go
index 5bd2cd74d..21752dc29 100644
--- a/pkg/apis/camel/v1/trait/quarkus.go
+++ b/pkg/apis/camel/v1/trait/quarkus.go
@@ -27,7 +27,7 @@ package trait
 //
 // +camel-k:trait=quarkus.
 type QuarkusTrait struct {
-	Trait `property:",squash" json:",inline"`
+	PlatformBaseTrait `property:",squash" json:",inline"`
 	// The Quarkus package types, `fast-jar` or `native` (default `fast-jar`).
 	// In case both `fast-jar` and `native` are specified, two `IntegrationKit` resources are created,
 	// with the native kit having precedence over the `fast-jar` one once ready.
diff --git a/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go b/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go
index 3bfb466be..00e477ef7 100644
--- a/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go
+++ b/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go
@@ -53,7 +53,7 @@ func (in *AffinityTrait) DeepCopy() *AffinityTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *BuilderTrait) DeepCopyInto(out *BuilderTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.Verbose != nil {
 		in, out := &in.Verbose, &out.Verbose
 		*out = new(bool)
@@ -114,7 +114,7 @@ func (in *BuilderTrait) DeepCopy() *BuilderTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *CamelTrait) DeepCopyInto(out *CamelTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.Properties != nil {
 		in, out := &in.Properties, &out.Properties
 		*out = make([]string, len(*in))
@@ -155,7 +155,7 @@ func (in *Configuration) DeepCopy() *Configuration {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *ContainerTrait) DeepCopyInto(out *ContainerTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.Auto != nil {
 		in, out := &in.Auto, &out.Auto
 		*out = new(bool)
@@ -222,7 +222,7 @@ func (in *CronTrait) DeepCopy() *CronTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *DependenciesTrait) DeepCopyInto(out *DependenciesTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DependenciesTrait.
@@ -238,7 +238,7 @@ func (in *DependenciesTrait) DeepCopy() *DependenciesTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *DeployerTrait) DeepCopyInto(out *DeployerTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.UseSSA != nil {
 		in, out := &in.UseSSA, &out.UseSSA
 		*out = new(bool)
@@ -259,7 +259,7 @@ func (in *DeployerTrait) DeepCopy() *DeployerTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *DeploymentTrait) DeepCopyInto(out *DeploymentTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.ProgressDeadlineSeconds != nil {
 		in, out := &in.ProgressDeadlineSeconds, &out.ProgressDeadlineSeconds
 		*out = new(int32)
@@ -290,7 +290,7 @@ func (in *DeploymentTrait) DeepCopy() *DeploymentTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *EnvironmentTrait) DeepCopyInto(out *EnvironmentTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.ContainerMeta != nil {
 		in, out := &in.ContainerMeta, &out.ContainerMeta
 		*out = new(bool)
@@ -321,7 +321,7 @@ func (in *EnvironmentTrait) DeepCopy() *EnvironmentTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *ErrorHandlerTrait) DeepCopyInto(out *ErrorHandlerTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 }
 
 // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorHandlerTrait.
@@ -443,7 +443,7 @@ func (in *IstioTrait) DeepCopy() *IstioTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *JVMTrait) DeepCopyInto(out *JVMTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.Debug != nil {
 		in, out := &in.Debug, &out.Debug
 		*out = new(bool)
@@ -545,7 +545,7 @@ func (in *JolokiaTrait) DeepCopy() *JolokiaTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *KameletsTrait) DeepCopyInto(out *KameletsTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.Auto != nil {
 		in, out := &in.Auto, &out.Auto
 		*out = new(bool)
@@ -706,7 +706,7 @@ func (in *LoggingTrait) DeepCopy() *LoggingTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *MountTrait) DeepCopyInto(out *MountTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.Configs != nil {
 		in, out := &in.Configs, &out.Configs
 		*out = make([]string, len(*in))
@@ -742,7 +742,7 @@ func (in *MountTrait) DeepCopy() *MountTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *OpenAPITrait) DeepCopyInto(out *OpenAPITrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.Configmaps != nil {
 		in, out := &in.Configmaps, &out.Configmaps
 		*out = make([]string, len(*in))
@@ -802,10 +802,35 @@ func (in *PDBTrait) DeepCopy() *PDBTrait {
 	return out
 }
 
+// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
+func (in *PlatformBaseTrait) DeepCopyInto(out *PlatformBaseTrait) {
+	*out = *in
+	if in.Enabled != nil {
+		in, out := &in.Enabled, &out.Enabled
+		*out = new(bool)
+		**out = **in
+	}
+	if in.Configuration != nil {
+		in, out := &in.Configuration, &out.Configuration
+		*out = new(Configuration)
+		(*in).DeepCopyInto(*out)
+	}
+}
+
+// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlatformBaseTrait.
+func (in *PlatformBaseTrait) DeepCopy() *PlatformBaseTrait {
+	if in == nil {
+		return nil
+	}
+	out := new(PlatformBaseTrait)
+	in.DeepCopyInto(out)
+	return out
+}
+
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *PlatformTrait) DeepCopyInto(out *PlatformTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.CreateDefault != nil {
 		in, out := &in.CreateDefault, &out.CreateDefault
 		*out = new(bool)
@@ -904,7 +929,7 @@ func (in *PullSecretTrait) DeepCopy() *PullSecretTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *QuarkusTrait) DeepCopyInto(out *QuarkusTrait) {
 	*out = *in
-	in.Trait.DeepCopyInto(&out.Trait)
+	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
 	if in.PackageTypes != nil {
 		in, out := &in.PackageTypes, &out.PackageTypes
 		*out = make([]QuarkusPackageType, len(*in))
diff --git a/pkg/controller/integration/kits_test.go b/pkg/controller/integration/kits_test.go
index 4e316bace..0a12ab3c6 100644
--- a/pkg/controller/integration/kits_test.go
+++ b/pkg/controller/integration/kits_test.go
@@ -22,7 +22,6 @@ import (
 	"testing"
 
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/utils/pointer"
 
 	v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 	traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
@@ -157,9 +156,7 @@ func TestLookupKitForIntegration_DiscardKitsWithIncompatibleTraits(t *testing.T)
 				},
 				Traits: v1.IntegrationKitTraits{
 					Builder: &traitv1.BuilderTrait{
-						Trait: traitv1.Trait{
-							Enabled: pointer.Bool(false),
-						},
+						PlatformBaseTrait: traitv1.PlatformBaseTrait{},
 					},
 				},
 			},
@@ -188,9 +185,7 @@ func TestLookupKitForIntegration_DiscardKitsWithIncompatibleTraits(t *testing.T)
 				},
 				Traits: v1.IntegrationKitTraits{
 					Builder: &traitv1.BuilderTrait{
-						Trait: traitv1.Trait{
-							Enabled: pointer.Bool(true),
-						},
+						PlatformBaseTrait: traitv1.PlatformBaseTrait{},
 						Properties: []string{
 							"build-key1=build-value1",
 						},
@@ -221,9 +216,7 @@ func TestLookupKitForIntegration_DiscardKitsWithIncompatibleTraits(t *testing.T)
 		Spec: v1.IntegrationSpec{
 			Traits: v1.Traits{
 				Builder: &traitv1.BuilderTrait{
-					Trait: traitv1.Trait{
-						Enabled: pointer.Bool(true),
-					},
+					PlatformBaseTrait: traitv1.PlatformBaseTrait{},
 					Properties: []string{
 						"build-key1=build-value1",
 					},
@@ -257,9 +250,7 @@ func TestHasMatchingTraits_KitNoTraitShouldNotBePicked(t *testing.T) {
 		Spec: v1.IntegrationSpec{
 			Traits: v1.Traits{
 				Builder: &traitv1.BuilderTrait{
-					Trait: traitv1.Trait{
-						Enabled: pointer.Bool(true),
-					},
+					PlatformBaseTrait: traitv1.PlatformBaseTrait{},
 				},
 			},
 		},
@@ -297,9 +288,7 @@ func TestHasMatchingTraits_KitSameTraitShouldBePicked(t *testing.T) {
 		Spec: v1.IntegrationSpec{
 			Traits: v1.Traits{
 				Builder: &traitv1.BuilderTrait{
-					Trait: traitv1.Trait{
-						Enabled: pointer.Bool(true),
-					},
+					PlatformBaseTrait: traitv1.PlatformBaseTrait{},
 					Properties: []string{
 						"build-key1=build-value1",
 					},
@@ -320,9 +309,7 @@ func TestHasMatchingTraits_KitSameTraitShouldBePicked(t *testing.T) {
 		Spec: v1.IntegrationKitSpec{
 			Traits: v1.IntegrationKitTraits{
 				Builder: &traitv1.BuilderTrait{
-					Trait: traitv1.Trait{
-						Enabled: pointer.Bool(true),
-					},
+					PlatformBaseTrait: traitv1.PlatformBaseTrait{},
 					Properties: []string{
 						"build-key1=build-value1",
 					},
diff --git a/pkg/trait/builder.go b/pkg/trait/builder.go
index bd8bad40c..b9dc0c0a3 100644
--- a/pkg/trait/builder.go
+++ b/pkg/trait/builder.go
@@ -24,7 +24,6 @@ import (
 	"strings"
 
 	corev1 "k8s.io/api/core/v1"
-	"k8s.io/utils/pointer"
 
 	v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 	traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
@@ -41,21 +40,16 @@ const (
 var commandsRegexp = regexp.MustCompile(`"[^"]+"|[\w/-]+`)
 
 type builderTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.BuilderTrait `property:",squash"`
 }
 
 func newBuilderTrait() Trait {
 	return &builderTrait{
-		BaseTrait: NewBaseTrait(builderTraitID, 600),
+		BasePlatformTrait: NewBasePlatformTrait("builder", 600),
 	}
 }
 
-// IsPlatformTrait overrides base class method.
-func (t *builderTrait) IsPlatformTrait() bool {
-	return true
-}
-
 // InfluencesKit overrides base class method.
 func (t *builderTrait) InfluencesKit() bool {
 	return true
@@ -67,7 +61,7 @@ func (t *builderTrait) InfluencesBuild(this, prev map[string]interface{}) bool {
 }
 
 func (t *builderTrait) Configure(e *Environment) (bool, error) {
-	if e.IntegrationKit == nil || !pointer.BoolDeref(t.Enabled, true) {
+	if e.IntegrationKit == nil {
 		return false, nil
 	}
 
@@ -81,7 +75,7 @@ func (t *builderTrait) Configure(e *Environment) (bool, error) {
 			if err != nil {
 				return false, err
 			}
-			if ok && pointer.BoolDeref(quarkus.Enabled, true) && (isNativeIntegration || isNativeKit) {
+			if ok && (isNativeIntegration || isNativeKit) {
 				// TODO expect maven repository in local repo (need to change builder pod accordingly!)
 				command := builder.QuarkusRuntimeSupport(e.CamelCatalog.GetCamelQuarkusVersion()).BuildCommands()
 				nativeBuilderImage := quarkus.NativeBuilderImage
diff --git a/pkg/trait/builder_test.go b/pkg/trait/builder_test.go
index 651da6a22..66a5eab2a 100644
--- a/pkg/trait/builder_test.go
+++ b/pkg/trait/builder_test.go
@@ -25,7 +25,6 @@ import (
 
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/utils/pointer"
 
 	v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/v2/pkg/util/camel"
@@ -177,8 +176,6 @@ func TestMavenPropertyBuilderTrait(t *testing.T) {
 
 func createNominalBuilderTraitTest() *builderTrait {
 	builderTrait, _ := newBuilderTrait().(*builderTrait)
-	builderTrait.Enabled = pointer.Bool(true)
-
 	return builderTrait
 }
 
diff --git a/pkg/trait/camel.go b/pkg/trait/camel.go
index 149d6006b..6065a1fb0 100644
--- a/pkg/trait/camel.go
+++ b/pkg/trait/camel.go
@@ -28,7 +28,6 @@ import (
 	k8serrors "k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime/schema"
-	"k8s.io/utils/pointer"
 	ctrl "sigs.k8s.io/controller-runtime/pkg/client"
 
 	v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
@@ -40,21 +39,16 @@ import (
 )
 
 type camelTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.CamelTrait `property:",squash"`
 }
 
 func newCamelTrait() Trait {
 	return &camelTrait{
-		BaseTrait: NewBaseTrait("camel", 200),
+		BasePlatformTrait: NewBasePlatformTrait("camel", 200),
 	}
 }
 
-// IsPlatformTrait overrides base class method.
-func (t *camelTrait) IsPlatformTrait() bool {
-	return true
-}
-
 // InfluencesKit overrides base class method.
 func (t *camelTrait) InfluencesKit() bool {
 	return true
@@ -66,10 +60,6 @@ func (t *camelTrait) InfluencesBuild(this, prev map[string]interface{}) bool {
 }
 
 func (t *camelTrait) Configure(e *Environment) (bool, error) {
-	if !pointer.BoolDeref(t.Enabled, true) {
-		return false, errors.New("trait camel cannot be disabled")
-	}
-
 	if t.RuntimeVersion == "" {
 		t.RuntimeVersion = determineRuntimeVersion(e)
 	}
diff --git a/pkg/trait/camel_test.go b/pkg/trait/camel_test.go
index 1cde2b90a..f6edf5eaa 100644
--- a/pkg/trait/camel_test.go
+++ b/pkg/trait/camel_test.go
@@ -23,7 +23,6 @@ import (
 
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/utils/pointer"
 
 	v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/v2/pkg/util/camel"
@@ -41,15 +40,6 @@ func TestConfigureEnabledCamelTraitSucceeds(t *testing.T) {
 	assert.True(t, configured)
 }
 
-func TestConfigureDisabledCamelTraitFails(t *testing.T) {
-	trait, environment := createNominalCamelTest(false)
-	trait.Enabled = pointer.Bool(false)
-
-	configured, err := trait.Configure(environment)
-	assert.NotNil(t, err)
-	assert.False(t, configured)
-}
-
 func TestApplyCamelTraitSucceeds(t *testing.T) {
 	trait, environment := createNominalCamelTest(false)
 
@@ -88,7 +78,6 @@ func createNominalCamelTest(withSources bool) (*camelTrait, *Environment) {
 	client, _ := test.NewFakeClient()
 
 	trait, _ := newCamelTrait().(*camelTrait)
-	trait.Enabled = pointer.Bool(true)
 	var sources []v1.SourceSpec
 	if withSources {
 		sources = []v1.SourceSpec{
diff --git a/pkg/trait/container.go b/pkg/trait/container.go
index d2409c43e..62b905eb0 100644
--- a/pkg/trait/container.go
+++ b/pkg/trait/container.go
@@ -51,13 +51,13 @@ const (
 )
 
 type containerTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.ContainerTrait `property:",squash"`
 }
 
 func newContainerTrait() Trait {
 	return &containerTrait{
-		BaseTrait: NewBaseTrait(containerTraitID, 1600),
+		BasePlatformTrait: NewBasePlatformTrait(containerTraitID, 1600),
 		ContainerTrait: traitv1.ContainerTrait{
 			Port:            defaultContainerPort,
 			ServicePort:     defaultServicePort,
@@ -68,7 +68,7 @@ func newContainerTrait() Trait {
 }
 
 func (t *containerTrait) Configure(e *Environment) (bool, error) {
-	if e.Integration == nil || !pointer.BoolDeref(t.Enabled, true) {
+	if e.Integration == nil {
 		return false, nil
 	}
 
@@ -122,11 +122,6 @@ func (t *containerTrait) Apply(e *Environment) error {
 	return t.configureContainer(e)
 }
 
-// IsPlatformTrait overrides base class method.
-func (t *containerTrait) IsPlatformTrait() bool {
-	return true
-}
-
 func (t *containerTrait) configureImageIntegrationKit(e *Environment) error {
 	if t.Image != "" {
 		if e.Integration.Spec.IntegrationKit != nil {
diff --git a/pkg/trait/container_test.go b/pkg/trait/container_test.go
index de1c29fe8..78abb84cd 100644
--- a/pkg/trait/container_test.go
+++ b/pkg/trait/container_test.go
@@ -27,7 +27,6 @@ import (
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/types"
-	"k8s.io/utils/pointer"
 
 	ctrl "sigs.k8s.io/controller-runtime/pkg/client"
 
@@ -350,7 +349,6 @@ func TestRunKnativeEndpointWithKnativeNotInstalled(t *testing.T) {
 	environment := createEnvironment()
 
 	trait, _ := newContainerTrait().(*containerTrait)
-	trait.Enabled = pointer.Bool(true)
 
 	environment.Integration.Spec.Sources = []v1.SourceSpec{
 		{
@@ -375,7 +373,6 @@ func TestRunNonKnativeEndpointWithKnativeNotInstalled(t *testing.T) {
 
 	environment := createEnvironment()
 	trait, _ := newContainerTrait().(*containerTrait)
-	trait.Enabled = pointer.Bool(true)
 	environment.Integration.Spec.Sources = []v1.SourceSpec{
 		{
 			DataSpec: v1.DataSpec{
diff --git a/pkg/trait/dependencies.go b/pkg/trait/dependencies.go
index 30dd6f691..3aefec8bd 100644
--- a/pkg/trait/dependencies.go
+++ b/pkg/trait/dependencies.go
@@ -18,8 +18,6 @@ limitations under the License.
 package trait
 
 import (
-	"k8s.io/utils/pointer"
-
 	v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 	traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
 	"github.com/apache/camel-k/v2/pkg/metadata"
@@ -30,18 +28,18 @@ import (
 )
 
 type dependenciesTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.DependenciesTrait `property:",squash"`
 }
 
 func newDependenciesTrait() Trait {
 	return &dependenciesTrait{
-		BaseTrait: NewBaseTrait("dependencies", 500),
+		BasePlatformTrait: NewBasePlatformTrait("dependencies", 500),
 	}
 }
 
 func (t *dependenciesTrait) Configure(e *Environment) (bool, error) {
-	if e.Integration == nil || !pointer.BoolDeref(t.Enabled, true) {
+	if e.Integration == nil {
 		return false, nil
 	}
 
@@ -97,8 +95,3 @@ func (t *dependenciesTrait) Apply(e *Environment) error {
 
 	return nil
 }
-
-// IsPlatformTrait overrides base class method.
-func (t *dependenciesTrait) IsPlatformTrait() bool {
-	return true
-}
diff --git a/pkg/trait/deployer.go b/pkg/trait/deployer.go
index 1a050a15b..6ec537b8d 100644
--- a/pkg/trait/deployer.go
+++ b/pkg/trait/deployer.go
@@ -36,7 +36,7 @@ import (
 )
 
 type deployerTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.DeployerTrait `property:",squash"`
 }
 
@@ -46,12 +46,12 @@ var hasServerSideApply = true
 
 func newDeployerTrait() Trait {
 	return &deployerTrait{
-		BaseTrait: NewBaseTrait("deployer", 900),
+		BasePlatformTrait: NewBasePlatformTrait("deployer", 900),
 	}
 }
 
 func (t *deployerTrait) Configure(e *Environment) (bool, error) {
-	return e.Integration != nil && pointer.BoolDeref(t.Enabled, true), nil
+	return e.Integration != nil, nil
 }
 
 func (t *deployerTrait) Apply(e *Environment) error {
@@ -156,9 +156,6 @@ func isIncompatibleServerError(err error) bool {
 }
 
 func (t *deployerTrait) SelectControllerStrategy(e *Environment) (*ControllerStrategy, error) {
-	if !pointer.BoolDeref(t.Enabled, true) {
-		return nil, nil
-	}
 	if t.Kind != "" {
 		strategy := ControllerStrategy(t.Kind)
 		return &strategy, nil
@@ -170,11 +167,6 @@ func (t *deployerTrait) ControllerStrategySelectorOrder() int {
 	return 0
 }
 
-// IsPlatformTrait overrides base class method.
-func (t *deployerTrait) IsPlatformTrait() bool {
-	return true
-}
-
 // RequiresIntegrationPlatform overrides base class method.
 func (t *deployerTrait) RequiresIntegrationPlatform() bool {
 	return false
diff --git a/pkg/trait/deployment.go b/pkg/trait/deployment.go
index a1205f187..9424f4605 100644
--- a/pkg/trait/deployment.go
+++ b/pkg/trait/deployment.go
@@ -21,7 +21,6 @@ import (
 	"fmt"
 
 	"k8s.io/apimachinery/pkg/util/intstr"
-	"k8s.io/utils/pointer"
 
 	appsv1 "k8s.io/api/apps/v1"
 	corev1 "k8s.io/api/core/v1"
@@ -32,7 +31,7 @@ import (
 )
 
 type deploymentTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.DeploymentTrait `property:",squash"`
 }
 
@@ -40,26 +39,15 @@ var _ ControllerStrategySelector = &deploymentTrait{}
 
 func newDeploymentTrait() Trait {
 	return &deploymentTrait{
-		BaseTrait: NewBaseTrait("deployment", 1100),
+		BasePlatformTrait: NewBasePlatformTrait("deployment", 1100),
 	}
 }
 
 func (t *deploymentTrait) Configure(e *Environment) (bool, error) {
-
 	if !e.IntegrationInRunningPhases() {
 		return false, nil
 	}
 
-	if !pointer.BoolDeref(t.Enabled, true) {
-		e.Integration.Status.SetCondition(
-			v1.IntegrationConditionDeploymentAvailable,
-			corev1.ConditionFalse,
-			v1.IntegrationConditionDeploymentAvailableReason,
-			"explicitly disabled",
-		)
-		return false, nil
-	}
-
 	if e.IntegrationInPhase(v1.IntegrationPhaseRunning, v1.IntegrationPhaseError) {
 		condition := e.Integration.Status.GetCondition(v1.IntegrationConditionDeploymentAvailable)
 		return condition != nil && condition.Status == corev1.ConditionTrue, nil
@@ -91,9 +79,6 @@ func (t *deploymentTrait) Configure(e *Environment) (bool, error) {
 }
 
 func (t *deploymentTrait) SelectControllerStrategy(e *Environment) (*ControllerStrategy, error) {
-	if !pointer.BoolDeref(t.Enabled, true) {
-		return nil, nil
-	}
 	deploymentStrategy := ControllerStrategyDeployment
 	return &deploymentStrategy, nil
 }
@@ -116,11 +101,6 @@ func (t *deploymentTrait) Apply(e *Environment) error {
 	return nil
 }
 
-// IsPlatformTrait overrides base class method.
-func (t *deploymentTrait) IsPlatformTrait() bool {
-	return true
-}
-
 func (t *deploymentTrait) getDeploymentFor(e *Environment) *appsv1.Deployment {
 	// create a copy to avoid sharing the underlying annotation map
 	annotations := make(map[string]string)
diff --git a/pkg/trait/deployment_test.go b/pkg/trait/deployment_test.go
index f3013f359..018db540d 100644
--- a/pkg/trait/deployment_test.go
+++ b/pkg/trait/deployment_test.go
@@ -25,7 +25,6 @@ import (
 	appsv1 "k8s.io/api/apps/v1"
 	corev1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
-	"k8s.io/utils/pointer"
 
 	v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/v2/pkg/util/camel"
@@ -33,19 +32,6 @@ import (
 	"github.com/apache/camel-k/v2/pkg/util/test"
 )
 
-func TestConfigureDisabledDeploymentTraitDoesNotSucceed(t *testing.T) {
-	deploymentTrait, environment := createNominalDeploymentTest()
-	deploymentTrait.Enabled = pointer.Bool(false)
-
-	configured, err := deploymentTrait.Configure(environment)
-
-	assert.Nil(t, err)
-	assert.False(t, configured)
-	conditions := environment.Integration.Status.Conditions
-	assert.Len(t, conditions, 1)
-	assert.Equal(t, "explicitly disabled", conditions[0].Message)
-}
-
 func TestConfigureDeploymentTraitWhileIntegrationIsRunningDoesSucceed(t *testing.T) {
 	deploymentTrait, environment := createNominalDeploymentTest()
 	environment.Integration.Status.SetCondition(
@@ -238,7 +224,6 @@ func TestApplyDeploymentTraitWitRollingUpdateStrategy(t *testing.T) {
 
 func createNominalDeploymentTest() (*deploymentTrait, *Environment) {
 	trait, _ := newDeploymentTrait().(*deploymentTrait)
-	trait.Enabled = pointer.Bool(true)
 	trait.Client, _ = test.NewFakeClient(&appsv1.Deployment{
 		ObjectMeta: metav1.ObjectMeta{
 			Name:      "integration-name",
diff --git a/pkg/trait/environment.go b/pkg/trait/environment.go
index a19b1a2a7..4569c38a4 100644
--- a/pkg/trait/environment.go
+++ b/pkg/trait/environment.go
@@ -30,7 +30,7 @@ import (
 )
 
 type environmentTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.EnvironmentTrait `property:",squash"`
 }
 
@@ -54,7 +54,7 @@ const (
 
 func newEnvironmentTrait() Trait {
 	return &environmentTrait{
-		BaseTrait: NewBaseTrait("environment", 800),
+		BasePlatformTrait: NewBasePlatformTrait("environment", 800),
 		EnvironmentTrait: traitv1.EnvironmentTrait{
 			ContainerMeta: pointer.Bool(true),
 		},
@@ -62,7 +62,7 @@ func newEnvironmentTrait() Trait {
 }
 
 func (t *environmentTrait) Configure(e *Environment) (bool, error) {
-	if e.Integration == nil || !pointer.BoolDeref(t.Enabled, true) {
+	if e.Integration == nil {
 		return false, nil
 	}
 
@@ -105,8 +105,3 @@ func (t *environmentTrait) Apply(e *Environment) error {
 
 	return nil
 }
-
-// IsPlatformTrait overrides base class method.
-func (t *environmentTrait) IsPlatformTrait() bool {
-	return true
-}
diff --git a/pkg/trait/error_handler.go b/pkg/trait/error_handler.go
index 120b9e6ed..3da5efff1 100644
--- a/pkg/trait/error_handler.go
+++ b/pkg/trait/error_handler.go
@@ -23,8 +23,6 @@ import (
 
 	"gopkg.in/yaml.v2"
 
-	"k8s.io/utils/pointer"
-
 	v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 	traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait"
 
@@ -32,24 +30,19 @@ import (
 )
 
 type errorHandlerTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.ErrorHandlerTrait `property:",squash"`
 }
 
 func newErrorHandlerTrait() Trait {
 	return &errorHandlerTrait{
 		// NOTE: Must run before dependency trait
-		BaseTrait: NewBaseTrait("error-handler", 470),
+		BasePlatformTrait: NewBasePlatformTrait("error-handler", 470),
 	}
 }
 
-// IsPlatformTrait overrides base class method.
-func (t *errorHandlerTrait) IsPlatformTrait() bool {
-	return true
-}
-
 func (t *errorHandlerTrait) Configure(e *Environment) (bool, error) {
-	if e.Integration == nil || !pointer.BoolDeref(t.Enabled, true) {
+	if e.Integration == nil {
 		return false, nil
 	}
 
diff --git a/pkg/trait/jvm.go b/pkg/trait/jvm.go
index 68f603a06..5cc60c844 100644
--- a/pkg/trait/jvm.go
+++ b/pkg/trait/jvm.go
@@ -41,13 +41,13 @@ import (
 )
 
 type jvmTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.JVMTrait `property:",squash"`
 }
 
 func newJvmTrait() Trait {
 	return &jvmTrait{
-		BaseTrait: NewBaseTrait("jvm", 2000),
+		BasePlatformTrait: NewBasePlatformTrait("jvm", 2000),
 		JVMTrait: traitv1.JVMTrait{
 			DebugAddress: "*:5005",
 			PrintCommand: pointer.Bool(true),
@@ -56,17 +56,13 @@ func newJvmTrait() Trait {
 }
 
 func (t *jvmTrait) Configure(e *Environment) (bool, error) {
-	if !pointer.BoolDeref(t.Enabled, true) {
-		return false, nil
-	}
-
 	if !e.IntegrationKitInPhase(v1.IntegrationKitPhaseReady) || !e.IntegrationInRunningPhases() {
 		return false, nil
 	}
 
 	if trait := e.Catalog.GetTrait(quarkusTraitID); trait != nil {
 		// The JVM trait must be disabled in case the current IntegrationKit corresponds to a native build
-		if quarkus, ok := trait.(*quarkusTrait); ok && pointer.BoolDeref(quarkus.Enabled, true) && quarkus.isNativeIntegration(e) {
+		if quarkus, ok := trait.(*quarkusTrait); ok && quarkus.isNativeIntegration(e) {
 			return false, nil
 		}
 	}
@@ -251,8 +247,3 @@ func (t *jvmTrait) Apply(e *Environment) error {
 
 	return nil
 }
-
-// IsPlatformTrait overrides base class method.
-func (t *jvmTrait) IsPlatformTrait() bool {
-	return true
-}
diff --git a/pkg/trait/jvm_test.go b/pkg/trait/jvm_test.go
index 36dcf349a..41c3d8280 100644
--- a/pkg/trait/jvm_test.go
+++ b/pkg/trait/jvm_test.go
@@ -72,15 +72,6 @@ func TestConfigureJvmTraitInWrongIntegrationKitPhaseDoesNotSucceed(t *testing.T)
 	assert.False(t, configured)
 }
 
-func TestConfigureJvmDisabledTraitDoesNotSucceed(t *testing.T) {
-	trait, environment := createNominalJvmTest(v1.IntegrationKitTypePlatform)
-	trait.Enabled = pointer.Bool(false)
-
-	configured, err := trait.Configure(environment)
-	assert.Nil(t, err)
-	assert.False(t, configured)
-}
-
 func TestApplyJvmTraitWithDeploymentResource(t *testing.T) {
 	trait, environment := createNominalJvmTest(v1.IntegrationKitTypePlatform)
 
@@ -262,11 +253,8 @@ func TestApplyJvmTraitWithClasspath(t *testing.T) {
 
 func createNominalJvmTest(kitType string) (*jvmTrait, *Environment) {
 	catalog, _ := camel.DefaultCatalog()
-
 	client, _ := test.NewFakeClient()
-
 	trait, _ := newJvmTrait().(*jvmTrait)
-	trait.Enabled = pointer.Bool(true)
 	trait.PrintCommand = pointer.Bool(false)
 	trait.Client = client
 
diff --git a/pkg/trait/kamelets.go b/pkg/trait/kamelets.go
index 9d1b1c308..7f72a6a2b 100644
--- a/pkg/trait/kamelets.go
+++ b/pkg/trait/kamelets.go
@@ -40,10 +40,12 @@ import (
 	"github.com/apache/camel-k/v2/pkg/util/kamelets"
 )
 
-type kameletsTrait struct {
-	BaseTrait
-	traitv1.KameletsTrait `property:",squash"`
-}
+const (
+	contentKey = "content"
+
+	kameletLabel              = "camel.apache.org/kamelet"
+	kameletConfigurationLabel = "camel.apache.org/kamelet.configuration"
+)
 
 type configurationKey struct {
 	kamelet         string
@@ -57,26 +59,19 @@ func newConfigurationKey(kamelet, configurationID string) configurationKey {
 	}
 }
 
-const (
-	contentKey = "content"
-
-	kameletLabel              = "camel.apache.org/kamelet"
-	kameletConfigurationLabel = "camel.apache.org/kamelet.configuration"
-)
+type kameletsTrait struct {
+	BasePlatformTrait
+	traitv1.KameletsTrait `property:",squash"`
+}
 
 func newKameletsTrait() Trait {
 	return &kameletsTrait{
-		BaseTrait: NewBaseTrait("kamelets", 450),
+		BasePlatformTrait: NewBasePlatformTrait("kamelets", 450),
 	}
 }
 
-// IsPlatformTrait overrides base class method.
-func (t *kameletsTrait) IsPlatformTrait() bool {
-	return true
-}
-
 func (t *kameletsTrait) Configure(e *Environment) (bool, error) {
-	if e.Integration == nil || !pointer.BoolDeref(t.Enabled, true) {
+	if e.Integration == nil {
 		return false, nil
 	}
 
diff --git a/pkg/trait/knative_test.go b/pkg/trait/knative_test.go
index 248ed4e66..134819436 100644
--- a/pkg/trait/knative_test.go
+++ b/pkg/trait/knative_test.go
@@ -386,23 +386,6 @@ func TestKnativeConfigurationSorting(t *testing.T) {
 	}
 
 	environment := NewFakeEnvironment(t, v1.SourceSpec{})
-	// disable traits which are not really needed in this test
-	enabled := false
-	environment.Integration.Spec.Traits.Container = &traitv1.ContainerTrait{
-		Trait: traitv1.Trait{
-			Enabled: &enabled,
-		},
-	}
-	environment.Integration.Spec.Traits.Mount = &traitv1.MountTrait{
-		Trait: traitv1.Trait{
-			Enabled: &enabled,
-		},
-	}
-	environment.Integration.Spec.Traits.JVM = &traitv1.JVMTrait{
-		Trait: traitv1.Trait{
-			Enabled: &enabled,
-		},
-	}
 	environment.Integration.Status.Phase = v1.IntegrationPhaseRunning
 	environment.Integration.Spec.Sources = sources
 
@@ -411,8 +394,8 @@ func TestKnativeConfigurationSorting(t *testing.T) {
 	tc := NewCatalog(c)
 	err = tc.Configure(&environment)
 	assert.Nil(t, err)
-	err = tc.apply(&environment)
-	assert.Nil(t, err)
+	_ = tc.apply(&environment)
+	// no matter if there is any other trait error
 	camelEnv := knativeapi.NewCamelEnvironment()
 	err = camelEnv.Deserialize(envvar.Get(environment.EnvVars, "CAMEL_KNATIVE_CONFIGURATION").Value)
 	assert.Nil(t, err)
diff --git a/pkg/trait/mount.go b/pkg/trait/mount.go
index 815d01f2e..a99e3c9b0 100644
--- a/pkg/trait/mount.go
+++ b/pkg/trait/mount.go
@@ -25,7 +25,6 @@ import (
 	appsv1 "k8s.io/api/apps/v1"
 	batchv1 "k8s.io/api/batch/v1"
 	corev1 "k8s.io/api/core/v1"
-	"k8s.io/utils/pointer"
 
 	serving "knative.dev/serving/pkg/apis/serving/v1"
 
@@ -36,19 +35,19 @@ import (
 )
 
 type mountTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.MountTrait `property:",squash"`
 }
 
 func newMountTrait() Trait {
 	return &mountTrait{
 		// Must follow immediately the container trait
-		BaseTrait: NewBaseTrait("mount", 1610),
+		BasePlatformTrait: NewBasePlatformTrait("mount", 1610),
 	}
 }
 
 func (t *mountTrait) Configure(e *Environment) (bool, error) {
-	if e.Integration == nil || !pointer.BoolDeref(t.Enabled, true) {
+	if e.Integration == nil {
 		return false, nil
 	}
 
@@ -173,8 +172,3 @@ func (t *mountTrait) mountResource(vols *[]corev1.Volume, mnts *[]corev1.VolumeM
 	*vols = append(*vols, *vol)
 	*mnts = append(*mnts, *mnt)
 }
-
-// IsPlatformTrait overrides base class method.
-func (t *mountTrait) IsPlatformTrait() bool {
-	return true
-}
diff --git a/pkg/trait/openapi.go b/pkg/trait/openapi.go
index 5f2f8dc30..50ab972d5 100644
--- a/pkg/trait/openapi.go
+++ b/pkg/trait/openapi.go
@@ -30,7 +30,6 @@ import (
 	k8serrors "k8s.io/apimachinery/pkg/api/errors"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 	"k8s.io/apimachinery/pkg/runtime/schema"
-	"k8s.io/utils/pointer"
 
 	ctrl "sigs.k8s.io/controller-runtime/pkg/client"
 
@@ -46,23 +45,18 @@ import (
 )
 
 type openAPITrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.OpenAPITrait `property:",squash"`
 }
 
 func newOpenAPITrait() Trait {
 	return &openAPITrait{
-		BaseTrait: NewBaseTrait("openapi", 300),
+		BasePlatformTrait: NewBasePlatformTrait("openapi", 300),
 	}
 }
 
-// IsPlatformTrait overrides base class method.
-func (t *openAPITrait) IsPlatformTrait() bool {
-	return true
-}
-
 func (t *openAPITrait) Configure(e *Environment) (bool, error) {
-	if !e.IntegrationInPhase(v1.IntegrationPhaseInitialization) || !pointer.BoolDeref(t.Enabled, true) {
+	if !e.IntegrationInPhase(v1.IntegrationPhaseInitialization) {
 		return false, nil
 	}
 
diff --git a/pkg/trait/platform.go b/pkg/trait/platform.go
index 88468889e..3401d481a 100644
--- a/pkg/trait/platform.go
+++ b/pkg/trait/platform.go
@@ -33,18 +33,18 @@ import (
 )
 
 type platformTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.PlatformTrait `property:",squash"`
 }
 
 func newPlatformTrait() Trait {
 	return &platformTrait{
-		BaseTrait: NewBaseTrait("platform", 100),
+		BasePlatformTrait: NewBasePlatformTrait("platform", 100),
 	}
 }
 
 func (t *platformTrait) Configure(e *Environment) (bool, error) {
-	if e.Integration == nil || !pointer.BoolDeref(t.Enabled, true) {
+	if e.Integration == nil {
 		return false, nil
 	}
 
@@ -152,11 +152,6 @@ func (t *platformTrait) getOrCreatePlatform(e *Environment) (*v1.IntegrationPlat
 	return pl, err
 }
 
-// IsPlatformTrait overrides base class method.
-func (t *platformTrait) IsPlatformTrait() bool {
-	return true
-}
-
 // RequiresIntegrationPlatform overrides base class method.
 func (t *platformTrait) RequiresIntegrationPlatform() bool {
 	return false
diff --git a/pkg/trait/quarkus.go b/pkg/trait/quarkus.go
index a342af77f..fbe0618e1 100644
--- a/pkg/trait/quarkus.go
+++ b/pkg/trait/quarkus.go
@@ -54,7 +54,7 @@ var kitPriority = map[quarkusPackageType]string{
 }
 
 type quarkusTrait struct {
-	BaseTrait
+	BasePlatformTrait
 	traitv1.QuarkusTrait `property:",squash"`
 }
 type languageSettings struct {
@@ -101,15 +101,10 @@ func getLegacyLanguageSettings(language v1.Language) languageSettings {
 
 func newQuarkusTrait() Trait {
 	return &quarkusTrait{
-		BaseTrait: NewBaseTrait(quarkusTraitID, 1700),
+		BasePlatformTrait: NewBasePlatformTrait(quarkusTraitID, 1700),
 	}
 }
 
-// IsPlatformTrait overrides base class method.
-func (t *quarkusTrait) IsPlatformTrait() bool {
-	return true
-}
-
 // InfluencesKit overrides base class method.
 func (t *quarkusTrait) InfluencesKit() bool {
 	return true
@@ -128,10 +123,6 @@ func (t *quarkusTrait) Matches(trait Trait) bool {
 		return false
 	}
 
-	if pointer.BoolDeref(t.Enabled, true) && !pointer.BoolDeref(qt.Enabled, true) {
-		return false
-	}
-
 	if len(t.Modes) == 0 && len(qt.Modes) != 0 && !qt.containsMode(traitv1.JvmQuarkusMode) {
 		return false
 	}
@@ -150,10 +141,6 @@ func (t *quarkusTrait) Matches(trait Trait) bool {
 }
 
 func (t *quarkusTrait) Configure(e *Environment) (bool, error) {
-	if !pointer.BoolDeref(t.Enabled, true) {
-		return false, nil
-	}
-
 	t.adaptDeprecatedFields()
 
 	return e.IntegrationInPhase(v1.IntegrationPhaseBuildingKit) ||
diff --git a/pkg/trait/quarkus_test.go b/pkg/trait/quarkus_test.go
index ca8ca396c..e4a48d791 100644
--- a/pkg/trait/quarkus_test.go
+++ b/pkg/trait/quarkus_test.go
@@ -22,8 +22,6 @@ import (
 
 	"github.com/stretchr/testify/assert"
 
-	"k8s.io/utils/pointer"
-
 	v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 	"github.com/apache/camel-k/v2/pkg/builder"
 	"github.com/apache/camel-k/v2/pkg/util/camel"
@@ -51,16 +49,6 @@ func TestConfigureQuarkusTraitBuildSubmitted(t *testing.T) {
 	assert.Len(t, packageTask.Steps, 4)
 }
 
-func TestConfigureDisabledQuarkusTraitShouldFail(t *testing.T) {
-	quarkusTrait, environment := createNominalQuarkusTest()
-	quarkusTrait.Enabled = pointer.Bool(false)
-
-	configured, err := quarkusTrait.Configure(environment)
-
-	assert.False(t, configured)
-	assert.Nil(t, err)
-}
-
 func TestApplyQuarkusTraitDefaultKitLayout(t *testing.T) {
 	quarkusTrait, environment := createNominalQuarkusTest()
 	environment.Integration.Status.Phase = v1.IntegrationPhaseBuildingKit
@@ -95,8 +83,8 @@ func TestApplyQuarkusTraitAnnotationKitConfiguration(t *testing.T) {
 
 func createNominalQuarkusTest() (*quarkusTrait, *Environment) {
 	trait, _ := newQuarkusTrait().(*quarkusTrait)
-	trait.Enabled = pointer.Bool(true)
 	client, _ := test.NewFakeClient()
+
 	environment := &Environment{
 		Catalog:      NewCatalog(client),
 		CamelCatalog: &camel.RuntimeCatalog{},
diff --git a/pkg/trait/service_test.go b/pkg/trait/service_test.go
index 6de827890..a1aefa779 100644
--- a/pkg/trait/service_test.go
+++ b/pkg/trait/service_test.go
@@ -180,15 +180,13 @@ func TestService(t *testing.T) {
 						},
 					},
 					Container: &traitv1.ContainerTrait{
-						Trait: traitv1.Trait{
-							Enabled: pointer.Bool(true),
-						},
-						Auto:            pointer.Bool(false),
-						Expose:          pointer.Bool(true),
-						Port:            8081,
-						PortName:        "http-8081",
-						ServicePort:     81,
-						ServicePortName: "http-81",
+						PlatformBaseTrait: traitv1.PlatformBaseTrait{},
+						Auto:              pointer.Bool(false),
+						Expose:            pointer.Bool(true),
+						Port:              8081,
+						PortName:          "http-8081",
+						ServicePort:       81,
+						ServicePortName:   "http-81",
 					},
 				},
 			},
diff --git a/pkg/trait/trait_configure_test.go b/pkg/trait/trait_configure_test.go
index ec44a9d37..18b410a26 100644
--- a/pkg/trait/trait_configure_test.go
+++ b/pkg/trait/trait_configure_test.go
@@ -215,12 +215,10 @@ func TestTraitSplitConfiguration(t *testing.T) {
 
 func TestTraitDecode(t *testing.T) {
 	trait := traitToMap(t, traitv1.ContainerTrait{
-		Trait: traitv1.Trait{
-			Enabled: pointer.Bool(false),
-		},
-		Name: "test-container",
-		Port: 7071,
-		Auto: pointer.Bool(false),
+		PlatformBaseTrait: traitv1.PlatformBaseTrait{},
+		Name:              "test-container",
+		Port:              7071,
+		Auto:              pointer.Bool(false),
 	})
 
 	target, ok := newContainerTrait().(*containerTrait)
@@ -228,7 +226,6 @@ func TestTraitDecode(t *testing.T) {
 	err := decodeTrait(trait, target)
 	require.NoError(t, err)
 
-	assert.Equal(t, false, pointer.BoolDeref(target.Enabled, true))
 	assert.Equal(t, "test-container", target.Name)
 	assert.Equal(t, 7071, target.Port)
 	assert.Equal(t, false, pointer.BoolDeref(target.Auto, true))
diff --git a/pkg/trait/trait_types.go b/pkg/trait/trait_types.go
index 7114f5667..614f6fdc8 100644
--- a/pkg/trait/trait_types.go
+++ b/pkg/trait/trait_types.go
@@ -117,6 +117,16 @@ func NewBaseTrait(id string, order int) BaseTrait {
 	}
 }
 
+func NewBasePlatformTrait(id string, order int) BasePlatformTrait {
+	return BasePlatformTrait{
+		BaseTrait{
+			TraitID:        ID(id),
+			ExecutionOrder: order,
+			L:              log.Log.WithName("traits").WithValues("trait", id),
+		},
+	}
+}
+
 // BaseTrait is the root trait with noop implementations for hooks.
 type BaseTrait struct {
 	TraitID        ID            `json:"-"`
@@ -167,6 +177,16 @@ func (trait *BaseTrait) Order() int {
 	return trait.ExecutionOrder
 }
 
+// BasePlatformTrait is the root for platform traits with noop implementations for hooks.
+type BasePlatformTrait struct {
+	BaseTrait
+}
+
+// IsPlatformTrait marks all fundamental traits that allow the platform to work.
+func (trait *BasePlatformTrait) IsPlatformTrait() bool {
+	return true
+}
+
 // ControllerStrategySelector is the interface for traits that can determine the kind of controller that will run the integration.
 type ControllerStrategySelector interface {
 	// SelectControllerStrategy tells if the trait with current configuration can select a specific controller to use
diff --git a/pkg/trait/util_test.go b/pkg/trait/util_test.go
index 999f9fe98..aeaffa037 100644
--- a/pkg/trait/util_test.go
+++ b/pkg/trait/util_test.go
@@ -32,16 +32,14 @@ import (
 func TestToTraitMap(t *testing.T) {
 	traits := v1.Traits{
 		Container: &traitv1.ContainerTrait{
-			Trait: traitv1.Trait{
-				Enabled: pointer.Bool(true),
-			},
-			Name:            "test-container",
-			Auto:            pointer.Bool(false),
-			Expose:          pointer.Bool(true),
-			Port:            8081,
-			PortName:        "http-8081",
-			ServicePort:     81,
-			ServicePortName: "http-81",
+			PlatformBaseTrait: traitv1.PlatformBaseTrait{},
+			Name:              "test-container",
+			Auto:              pointer.Bool(false),
+			Expose:            pointer.Bool(true),
+			Port:              8081,
+			PortName:          "http-8081",
+			ServicePort:       81,
+			ServicePortName:   "http-81",
 		},
 		Service: &traitv1.ServiceTrait{
 			Trait: traitv1.Trait{
@@ -56,7 +54,6 @@ func TestToTraitMap(t *testing.T) {
 	}
 	expected := Options{
 		"container": {
-			"enabled":         true,
 			"auto":            false,
 			"expose":          true,
 			"port":            float64(8081),
@@ -83,19 +80,16 @@ func TestToTraitMap(t *testing.T) {
 
 func TestToPropertyMap(t *testing.T) {
 	trait := traitv1.ContainerTrait{
-		Trait: traitv1.Trait{
-			Enabled: pointer.Bool(true),
-		},
-		Name:            "test-container",
-		Auto:            pointer.Bool(false),
-		Expose:          pointer.Bool(true),
-		Port:            8081,
-		PortName:        "http-8081",
-		ServicePort:     81,
-		ServicePortName: "http-81",
+		PlatformBaseTrait: traitv1.PlatformBaseTrait{},
+		Name:              "test-container",
+		Auto:              pointer.Bool(false),
+		Expose:            pointer.Bool(true),
+		Port:              8081,
+		PortName:          "http-8081",
+		ServicePort:       81,
+		ServicePortName:   "http-81",
 	}
 	expected := map[string]interface{}{
-		"enabled":         true,
 		"auto":            false,
 		"expose":          true,
 		"port":            float64(8081),
@@ -152,7 +146,6 @@ func TestMigrateLegacyConfiguration_invalidConfiguration(t *testing.T) {
 
 func TestToTrait(t *testing.T) {
 	config := map[string]interface{}{
-		"enabled":         true,
 		"auto":            false,
 		"expose":          true,
 		"port":            8081,
@@ -162,16 +155,14 @@ func TestToTrait(t *testing.T) {
 		"name":            "test-container",
 	}
 	expected := traitv1.ContainerTrait{
-		Trait: traitv1.Trait{
-			Enabled: pointer.Bool(true),
-		},
-		Name:            "test-container",
-		Auto:            pointer.Bool(false),
-		Expose:          pointer.Bool(true),
-		Port:            8081,
-		PortName:        "http-8081",
-		ServicePort:     81,
-		ServicePortName: "http-81",
+		PlatformBaseTrait: traitv1.PlatformBaseTrait{},
+		Name:              "test-container",
+		Auto:              pointer.Bool(false),
+		Expose:            pointer.Bool(true),
+		Port:              8081,
+		PortName:          "http-8081",
+		ServicePort:       81,
+		ServicePortName:   "http-81",
 	}
 
 	trait := traitv1.ContainerTrait{}
diff --git a/resources/traits.yaml b/resources/traits.yaml
index ca60f9824..b92251df0 100755
--- a/resources/traits.yaml
+++ b/resources/traits.yaml
@@ -228,13 +228,12 @@ traits:
   - Kubernetes
   - Knative
   - OpenShift
-  description: BuilderTrait is internally used to determine the best strategy to build
-    and configure IntegrationKits.
+  description: The builder trait is internally used to determine the best strategy
+    to build and configure IntegrationKits.
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: verbose
     type: bool
     description: Enable verbose logging on build components that support it (e.g.
@@ -308,8 +307,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: runtime-version
     type: string
     description: The camel-k-runtime version to use for the integration. It overrides
@@ -329,8 +327,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: auto
     type: bool
     description: To automatically enable the trait
@@ -463,8 +460,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: kind
     type: string
     description: Allows to explicitly select the desired deployment kind between `deployment`,
@@ -486,8 +482,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: progress-deadline-seconds
     type: int32
     description: The maximum time in seconds for the deployment to make progress before
@@ -519,8 +514,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: container-meta
     type: bool
     description: Enables injection of `NAMESPACE` and `POD_NAME` environment variables
@@ -545,8 +539,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: ref
     type: string
     description: The error handler ref name provided or found in application properties
@@ -873,8 +866,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: debug
     type: bool
     description: Activates remote debugging, so that a debugger can be attached to
@@ -907,8 +899,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: auto
     type: bool
     description: Automatically inject all referenced Kamelets and their default configuration
@@ -1172,8 +1163,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: configs
     type: '[]string'
     description: 'A list of configuration pointing to configmap/secret. The configuration
@@ -1208,8 +1198,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: configmaps
     type: '[]string'
     description: The configmaps holding the spec of the OpenAPI
@@ -1271,8 +1260,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: create-default
     type: bool
     description: To create a default (empty) platform when the platform is missing.
@@ -1368,8 +1356,7 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: Can be used to enable or disable a trait. All traits share this common
-      property.
+    description: 'Deprecated: no longer in use.'
   - name: package-type
     type: '[]github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait.QuarkusPackageType'
     description: 'The Quarkus package types, `fast-jar` or `native` (default `fast-jar`).


[camel-k] 02/02: fix(traits): kamelets and jvm not platform traits

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

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

commit eb02913a8a0aef329dadef23120f288cdf4de6da
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Fri Oct 13 15:58:39 2023 +0200

    fix(traits): kamelets and jvm not platform traits
    
    At least, according our E2E tests.
---
 .../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 ++++--
 config/crd/bases/camel.apache.org_pipes.yaml           |  6 ++++--
 docs/modules/ROOT/partials/apis/camel-k-crds.adoc      | 18 +++++++++---------
 docs/modules/traits/pages/jvm.adoc                     |  4 +---
 docs/modules/traits/pages/kamelets.adoc                |  4 +---
 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 ++++--
 helm/camel-k/crds/crd-pipe.yaml                        |  6 ++++--
 pkg/apis/camel/v1/trait/jvm.go                         |  2 +-
 pkg/apis/camel/v1/trait/kamelets.go                    |  2 +-
 pkg/apis/camel/v1/trait/zz_generated.deepcopy.go       |  4 ++--
 pkg/trait/jvm.go                                       |  8 ++++++--
 pkg/trait/kamelets.go                                  |  6 +++---
 resources/traits.yaml                                  | 10 ++++++----
 17 files changed, 70 insertions(+), 48 deletions(-)

diff --git a/config/crd/bases/camel.apache.org_integrationplatforms.yaml b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
index 9ce27b07b..d34c2f432 100644
--- a/config/crd/bases/camel.apache.org_integrationplatforms.yaml
+++ b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
@@ -1157,7 +1157,8 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -1182,7 +1183,8 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
@@ -2969,7 +2971,8 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -2994,7 +2997,8 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
diff --git a/config/crd/bases/camel.apache.org_integrations.yaml b/config/crd/bases/camel.apache.org_integrations.yaml
index 4fa5b64be..608118fef 100644
--- a/config/crd/bases/camel.apache.org_integrations.yaml
+++ b/config/crd/bases/camel.apache.org_integrations.yaml
@@ -7074,7 +7074,8 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -7099,7 +7100,8 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
diff --git a/config/crd/bases/camel.apache.org_kameletbindings.yaml b/config/crd/bases/camel.apache.org_kameletbindings.yaml
index d0356a2a4..b40d8c9a8 100644
--- a/config/crd/bases/camel.apache.org_kameletbindings.yaml
+++ b/config/crd/bases/camel.apache.org_kameletbindings.yaml
@@ -7360,7 +7360,8 @@ spec:
                               the main class is loaded
                             type: boolean
                           enabled:
-                            description: 'Deprecated: no longer in use.'
+                            description: Can be used to enable or disable a trait.
+                              All traits share this common property.
                             type: boolean
                           options:
                             description: A list of JVM options
@@ -7385,7 +7386,8 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: 'Deprecated: no longer in use.'
+                            description: Can be used to enable or disable a trait.
+                              All traits share this common property.
                             type: boolean
                           list:
                             description: Comma separated list of Kamelet names to
diff --git a/config/crd/bases/camel.apache.org_pipes.yaml b/config/crd/bases/camel.apache.org_pipes.yaml
index 804c1667d..ca6c71c0e 100644
--- a/config/crd/bases/camel.apache.org_pipes.yaml
+++ b/config/crd/bases/camel.apache.org_pipes.yaml
@@ -7358,7 +7358,8 @@ spec:
                               the main class is loaded
                             type: boolean
                           enabled:
-                            description: 'Deprecated: no longer in use.'
+                            description: Can be used to enable or disable a trait.
+                              All traits share this common property.
                             type: boolean
                           options:
                             description: A list of JVM options
@@ -7383,7 +7384,8 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: 'Deprecated: no longer in use.'
+                            description: Can be used to enable or disable a trait.
+                              All traits share this common property.
                             type: boolean
                           list:
                             description: Comma separated list of Kamelet names to
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index 5cef30702..d280492a7 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -6731,9 +6731,9 @@ The JVM trait is used to configure the JVM that runs the integration.
 |Field
 |Description
 
-|`PlatformBaseTrait` +
-*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
-|(Members of `PlatformBaseTrait` are embedded into this type.)
+|`Trait` +
+*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
+|(Members of `Trait` are embedded into this type.)
 
 
 
@@ -6911,9 +6911,9 @@ The kamelets trait is a platform trait used to inject Kamelets into the integrat
 |Field
 |Description
 
-|`PlatformBaseTrait` +
-*xref:#_camel_apache_org_v1_trait_PlatformBaseTrait[PlatformBaseTrait]*
-|(Members of `PlatformBaseTrait` are embedded into this type.)
+|`Trait` +
+*xref:#_camel_apache_org_v1_trait_Trait[Trait]*
+|(Members of `Trait` are embedded into this type.)
 
 
 
@@ -7417,8 +7417,6 @@ Only one of `max-unavailable` and `min-available` can be specified.
 * <<#_camel_apache_org_v1_trait_DeploymentTrait, DeploymentTrait>>
 * <<#_camel_apache_org_v1_trait_EnvironmentTrait, EnvironmentTrait>>
 * <<#_camel_apache_org_v1_trait_ErrorHandlerTrait, ErrorHandlerTrait>>
-* <<#_camel_apache_org_v1_trait_JVMTrait, JVMTrait>>
-* <<#_camel_apache_org_v1_trait_KameletsTrait, KameletsTrait>>
 * <<#_camel_apache_org_v1_trait_MountTrait, MountTrait>>
 * <<#_camel_apache_org_v1_trait_OpenAPITrait, OpenAPITrait>>
 * <<#_camel_apache_org_v1_trait_PlatformTrait, PlatformTrait>>
@@ -8054,7 +8052,9 @@ The list of taints to tolerate, in the form `Key[=Value]:Effect[:Seconds]`
 * <<#_camel_apache_org_v1_trait_HealthTrait, HealthTrait>>
 * <<#_camel_apache_org_v1_trait_IngressTrait, IngressTrait>>
 * <<#_camel_apache_org_v1_trait_IstioTrait, IstioTrait>>
+* <<#_camel_apache_org_v1_trait_JVMTrait, JVMTrait>>
 * <<#_camel_apache_org_v1_trait_JolokiaTrait, JolokiaTrait>>
+* <<#_camel_apache_org_v1_trait_KameletsTrait, KameletsTrait>>
 * <<#_camel_apache_org_v1_trait_KnativeServiceTrait, KnativeServiceTrait>>
 * <<#_camel_apache_org_v1_trait_KnativeTrait, KnativeTrait>>
 * <<#_camel_apache_org_v1_trait_LoggingTrait, LoggingTrait>>
@@ -8069,7 +8069,7 @@ The list of taints to tolerate, in the form `Key[=Value]:Effect[:Seconds]`
 * <<#_camel_apache_org_v1_trait_ServiceTrait, ServiceTrait>>
 * <<#_camel_apache_org_v1_trait_TolerationTrait, TolerationTrait>>
 
-Trait is the base type for all traits. It could be disabled by the user
+Trait is the base type for all traits. It could be disabled by the user.
 
 [cols="2,2a",options="header"]
 |===
diff --git a/docs/modules/traits/pages/jvm.adoc b/docs/modules/traits/pages/jvm.adoc
index 5e6780e87..7c7056d5c 100755
--- a/docs/modules/traits/pages/jvm.adoc
+++ b/docs/modules/traits/pages/jvm.adoc
@@ -6,8 +6,6 @@ The JVM trait is used to configure the JVM that runs the integration.
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-NOTE: The jvm trait is a *platform trait* and cannot be disabled by the user.
-
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
 == Configuration
@@ -25,7 +23,7 @@ The following configuration options are available:
 
 | jvm.enabled
 | bool
-| Deprecated: no longer in use.
+| Can be used to enable or disable a trait. All traits share this common property.
 
 | jvm.debug
 | bool
diff --git a/docs/modules/traits/pages/kamelets.adoc b/docs/modules/traits/pages/kamelets.adoc
index 7930d7868..0336e0ff4 100755
--- a/docs/modules/traits/pages/kamelets.adoc
+++ b/docs/modules/traits/pages/kamelets.adoc
@@ -6,8 +6,6 @@ The kamelets trait is a platform trait used to inject Kamelets into the integrat
 
 This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
 
-NOTE: The kamelets trait is a *platform trait* and cannot be disabled by the user.
-
 // End of autogenerated code - DO NOT EDIT! (description)
 // Start of autogenerated code - DO NOT EDIT! (configuration)
 == Configuration
@@ -25,7 +23,7 @@ The following configuration options are available:
 
 | kamelets.enabled
 | bool
-| Deprecated: no longer in use.
+| Can be used to enable or disable a trait. All traits share this common property.
 
 | kamelets.auto
 | bool
diff --git a/helm/camel-k/crds/crd-integration-platform.yaml b/helm/camel-k/crds/crd-integration-platform.yaml
index 9ce27b07b..d34c2f432 100644
--- a/helm/camel-k/crds/crd-integration-platform.yaml
+++ b/helm/camel-k/crds/crd-integration-platform.yaml
@@ -1157,7 +1157,8 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -1182,7 +1183,8 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
@@ -2969,7 +2971,8 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -2994,7 +2997,8 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
diff --git a/helm/camel-k/crds/crd-integration.yaml b/helm/camel-k/crds/crd-integration.yaml
index 4fa5b64be..608118fef 100644
--- a/helm/camel-k/crds/crd-integration.yaml
+++ b/helm/camel-k/crds/crd-integration.yaml
@@ -7074,7 +7074,8 @@ spec:
                           main class is loaded
                         type: boolean
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       options:
                         description: A list of JVM options
@@ -7099,7 +7100,8 @@ spec:
                         type: object
                         x-kubernetes-preserve-unknown-fields: true
                       enabled:
-                        description: 'Deprecated: no longer in use.'
+                        description: Can be used to enable or disable a trait. All
+                          traits share this common property.
                         type: boolean
                       list:
                         description: Comma separated list of Kamelet names to load
diff --git a/helm/camel-k/crds/crd-kamelet-binding.yaml b/helm/camel-k/crds/crd-kamelet-binding.yaml
index d0356a2a4..b40d8c9a8 100644
--- a/helm/camel-k/crds/crd-kamelet-binding.yaml
+++ b/helm/camel-k/crds/crd-kamelet-binding.yaml
@@ -7360,7 +7360,8 @@ spec:
                               the main class is loaded
                             type: boolean
                           enabled:
-                            description: 'Deprecated: no longer in use.'
+                            description: Can be used to enable or disable a trait.
+                              All traits share this common property.
                             type: boolean
                           options:
                             description: A list of JVM options
@@ -7385,7 +7386,8 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: 'Deprecated: no longer in use.'
+                            description: Can be used to enable or disable a trait.
+                              All traits share this common property.
                             type: boolean
                           list:
                             description: Comma separated list of Kamelet names to
diff --git a/helm/camel-k/crds/crd-pipe.yaml b/helm/camel-k/crds/crd-pipe.yaml
index 804c1667d..ca6c71c0e 100644
--- a/helm/camel-k/crds/crd-pipe.yaml
+++ b/helm/camel-k/crds/crd-pipe.yaml
@@ -7358,7 +7358,8 @@ spec:
                               the main class is loaded
                             type: boolean
                           enabled:
-                            description: 'Deprecated: no longer in use.'
+                            description: Can be used to enable or disable a trait.
+                              All traits share this common property.
                             type: boolean
                           options:
                             description: A list of JVM options
@@ -7383,7 +7384,8 @@ spec:
                             type: object
                             x-kubernetes-preserve-unknown-fields: true
                           enabled:
-                            description: 'Deprecated: no longer in use.'
+                            description: Can be used to enable or disable a trait.
+                              All traits share this common property.
                             type: boolean
                           list:
                             description: Comma separated list of Kamelet names to
diff --git a/pkg/apis/camel/v1/trait/jvm.go b/pkg/apis/camel/v1/trait/jvm.go
index 8d35f1ac2..70bb3b7de 100644
--- a/pkg/apis/camel/v1/trait/jvm.go
+++ b/pkg/apis/camel/v1/trait/jvm.go
@@ -21,7 +21,7 @@ package trait
 //
 // +camel-k:trait=jvm.
 type JVMTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	Trait `property:",squash" json:",inline"`
 	// Activates remote debugging, so that a debugger can be attached to the JVM, e.g., using port-forwarding
 	Debug *bool `property:"debug" json:"debug,omitempty"`
 	// Suspends the target JVM immediately before the main class is loaded
diff --git a/pkg/apis/camel/v1/trait/kamelets.go b/pkg/apis/camel/v1/trait/kamelets.go
index ba0650da3..9467b4883 100644
--- a/pkg/apis/camel/v1/trait/kamelets.go
+++ b/pkg/apis/camel/v1/trait/kamelets.go
@@ -21,7 +21,7 @@ package trait
 //
 // +camel-k:trait=kamelets.
 type KameletsTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	Trait `property:",squash" json:",inline"`
 	// Automatically inject all referenced Kamelets and their default configuration (enabled by default)
 	Auto *bool `property:"auto" json:"auto,omitempty"`
 	// Comma separated list of Kamelet names to load into the current integration
diff --git a/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go b/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go
index 00e477ef7..5cfb02958 100644
--- a/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go
+++ b/pkg/apis/camel/v1/trait/zz_generated.deepcopy.go
@@ -443,7 +443,7 @@ func (in *IstioTrait) DeepCopy() *IstioTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *JVMTrait) DeepCopyInto(out *JVMTrait) {
 	*out = *in
-	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
+	in.Trait.DeepCopyInto(&out.Trait)
 	if in.Debug != nil {
 		in, out := &in.Debug, &out.Debug
 		*out = new(bool)
@@ -545,7 +545,7 @@ func (in *JolokiaTrait) DeepCopy() *JolokiaTrait {
 // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
 func (in *KameletsTrait) DeepCopyInto(out *KameletsTrait) {
 	*out = *in
-	in.PlatformBaseTrait.DeepCopyInto(&out.PlatformBaseTrait)
+	in.Trait.DeepCopyInto(&out.Trait)
 	if in.Auto != nil {
 		in, out := &in.Auto, &out.Auto
 		*out = new(bool)
diff --git a/pkg/trait/jvm.go b/pkg/trait/jvm.go
index 5cc60c844..720d22f64 100644
--- a/pkg/trait/jvm.go
+++ b/pkg/trait/jvm.go
@@ -41,13 +41,13 @@ import (
 )
 
 type jvmTrait struct {
-	BasePlatformTrait
+	BaseTrait
 	traitv1.JVMTrait `property:",squash"`
 }
 
 func newJvmTrait() Trait {
 	return &jvmTrait{
-		BasePlatformTrait: NewBasePlatformTrait("jvm", 2000),
+		BaseTrait: NewBaseTrait("jvm", 2000),
 		JVMTrait: traitv1.JVMTrait{
 			DebugAddress: "*:5005",
 			PrintCommand: pointer.Bool(true),
@@ -56,6 +56,10 @@ func newJvmTrait() Trait {
 }
 
 func (t *jvmTrait) Configure(e *Environment) (bool, error) {
+	if !pointer.BoolDeref(t.Enabled, true) {
+		return false, nil
+	}
+
 	if !e.IntegrationKitInPhase(v1.IntegrationKitPhaseReady) || !e.IntegrationInRunningPhases() {
 		return false, nil
 	}
diff --git a/pkg/trait/kamelets.go b/pkg/trait/kamelets.go
index 7f72a6a2b..b2c410a59 100644
--- a/pkg/trait/kamelets.go
+++ b/pkg/trait/kamelets.go
@@ -60,18 +60,18 @@ func newConfigurationKey(kamelet, configurationID string) configurationKey {
 }
 
 type kameletsTrait struct {
-	BasePlatformTrait
+	BaseTrait
 	traitv1.KameletsTrait `property:",squash"`
 }
 
 func newKameletsTrait() Trait {
 	return &kameletsTrait{
-		BasePlatformTrait: NewBasePlatformTrait("kamelets", 450),
+		BaseTrait: NewBaseTrait("kamelets", 450),
 	}
 }
 
 func (t *kameletsTrait) Configure(e *Environment) (bool, error) {
-	if e.Integration == nil {
+	if e.Integration == nil || !pointer.BoolDeref(t.Enabled, true) {
 		return false, nil
 	}
 
diff --git a/resources/traits.yaml b/resources/traits.yaml
index b92251df0..4489f2040 100755
--- a/resources/traits.yaml
+++ b/resources/traits.yaml
@@ -857,7 +857,7 @@ traits:
     description: A list of additional Jolokia options as defined in https://jolokia.org/reference/html/agents.html#agent-jvm-config[JVM
       agent configuration options]
 - name: jvm
-  platform: true
+  platform: false
   profiles:
   - Kubernetes
   - Knative
@@ -866,7 +866,8 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: 'Deprecated: no longer in use.'
+    description: Can be used to enable or disable a trait. All traits share this common
+      property.
   - name: debug
     type: bool
     description: Activates remote debugging, so that a debugger can be attached to
@@ -889,7 +890,7 @@ traits:
     type: string
     description: Additional JVM classpath (use `Linux` classpath separator)
 - name: kamelets
-  platform: true
+  platform: false
   profiles:
   - Kubernetes
   - Knative
@@ -899,7 +900,8 @@ traits:
   properties:
   - name: enabled
     type: bool
-    description: 'Deprecated: no longer in use.'
+    description: Can be used to enable or disable a trait. All traits share this common
+      property.
   - name: auto
     type: bool
     description: Automatically inject all referenced Kamelets and their default configuration