You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gf...@apache.org on 2025/11/19 06:38:32 UTC

(camel-k) branch main updated: fix(ci): enable forbidigo ,tagalign and fix violations

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

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


The following commit(s) were added to refs/heads/main by this push:
     new f07454ac6 fix(ci): enable forbidigo ,tagalign and fix violations
f07454ac6 is described below

commit f07454ac63d671433117c949acc1c4c095b06f83
Author: Pranjul Kalsi <pr...@gmail.com>
AuthorDate: Sat Nov 15 15:27:01 2025 +0530

    fix(ci): enable forbidigo ,tagalign and fix violations
---
 .golangci.yml                               |   2 -
 pkg/apis/camel/v1/camelcatalog_types.go     |   2 +-
 pkg/apis/camel/v1/common_types.go           | 106 ++++++++++++++--------------
 pkg/apis/camel/v1/health.go                 |   4 +-
 pkg/apis/camel/v1/integration_types.go      |  14 ++--
 pkg/apis/camel/v1/integrationkit_types.go   |   8 +--
 pkg/apis/camel/v1/maven_types.go            |  82 ++++++++++-----------
 pkg/apis/camel/v1/trait/affinity.go         |  12 ++--
 pkg/apis/camel/v1/trait/base.go             |   4 +-
 pkg/apis/camel/v1/trait/builder.go          |  42 +++++------
 pkg/apis/camel/v1/trait/camel.go            |   8 +--
 pkg/apis/camel/v1/trait/container.go        |  42 +++++------
 pkg/apis/camel/v1/trait/cron.go             |  20 +++---
 pkg/apis/camel/v1/trait/dependencies.go     |   2 +-
 pkg/apis/camel/v1/trait/deployer.go         |   6 +-
 pkg/apis/camel/v1/trait/deployment.go       |  10 +--
 pkg/apis/camel/v1/trait/environment.go      |   8 +--
 pkg/apis/camel/v1/trait/error_handler.go    |   4 +-
 pkg/apis/camel/v1/trait/gc.go               |   4 +-
 pkg/apis/camel/v1/trait/health.go           |  56 +++++++--------
 pkg/apis/camel/v1/trait/ingress.go          |  20 +++---
 pkg/apis/camel/v1/trait/init_containers.go  |   6 +-
 pkg/apis/camel/v1/trait/istio.go            |   6 +-
 pkg/apis/camel/v1/trait/jolokia.go          |  24 +++----
 pkg/apis/camel/v1/trait/jvm.go              |  18 ++---
 pkg/apis/camel/v1/trait/kamelets.go         |   8 +--
 pkg/apis/camel/v1/trait/keda.go             |  24 +++----
 pkg/apis/camel/v1/trait/knative.go          |  28 ++++----
 pkg/apis/camel/v1/trait/knative_service.go  |  22 +++---
 pkg/apis/camel/v1/trait/logging.go          |  12 ++--
 pkg/apis/camel/v1/trait/master.go           |  14 ++--
 pkg/apis/camel/v1/trait/mount.go            |  14 ++--
 pkg/apis/camel/v1/trait/openapi.go          |   4 +-
 pkg/apis/camel/v1/trait/owner.go            |   6 +-
 pkg/apis/camel/v1/trait/pdb.go              |   6 +-
 pkg/apis/camel/v1/trait/platform.go         |   8 +--
 pkg/apis/camel/v1/trait/pod.go              |   2 +-
 pkg/apis/camel/v1/trait/prometheus.go       |   6 +-
 pkg/apis/camel/v1/trait/pull_secret.go      |   8 +--
 pkg/apis/camel/v1/trait/quarkus.go          |  10 +--
 pkg/apis/camel/v1/trait/registry.go         |   2 +-
 pkg/apis/camel/v1/trait/route.go            |  26 +++----
 pkg/apis/camel/v1/trait/security_context.go |   8 +--
 pkg/apis/camel/v1/trait/service.go          |  14 ++--
 pkg/apis/camel/v1/trait/service_binding.go  |   4 +-
 pkg/apis/camel/v1/trait/telemetry.go        |  14 ++--
 pkg/apis/camel/v1/trait/toleration.go       |   4 +-
 pkg/cmd/bind.go                             |  20 +++---
 pkg/cmd/debug.go                            |   4 +-
 pkg/cmd/promote.go                          |   8 +--
 pkg/cmd/reset.go                            |   2 +-
 pkg/cmd/root.go                             |   2 +-
 pkg/cmd/run.go                              |  50 ++++++-------
 pkg/util/maven/maven_types.go               |  15 ++--
 54 files changed, 426 insertions(+), 429 deletions(-)

diff --git a/.golangci.yml b/.golangci.yml
index 34daf9034..a5aa51a6e 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -26,7 +26,6 @@ linters:
     - err113
     - exhaustive
     - exhaustruct
-    - forbidigo
     - funcorder
     - funlen
     - gochecknoglobals
@@ -40,7 +39,6 @@ linters:
     - noinlineerr
     - paralleltest
     - revive
-    - tagalign
     - tagliatelle
     - varnamelen
     - wrapcheck
diff --git a/pkg/apis/camel/v1/camelcatalog_types.go b/pkg/apis/camel/v1/camelcatalog_types.go
index 2195f5943..0ba20d6bf 100644
--- a/pkg/apis/camel/v1/camelcatalog_types.go
+++ b/pkg/apis/camel/v1/camelcatalog_types.go
@@ -39,7 +39,7 @@ const (
 
 // CamelCatalog represents the languages, components, data formats and capabilities enabled on a given runtime provider. The catalog may be statically generated.
 type CamelCatalog struct {
-	metav1.TypeMeta   `json:",inline" yaml:",inline"`
+	metav1.TypeMeta   `json:",inline"            yaml:",inline"`
 	metav1.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"`
 
 	// the actual state of the catalog
diff --git a/pkg/apis/camel/v1/common_types.go b/pkg/apis/camel/v1/common_types.go
index 80d77c26c..39d7fe9c5 100644
--- a/pkg/apis/camel/v1/common_types.go
+++ b/pkg/apis/camel/v1/common_types.go
@@ -47,23 +47,23 @@ type BuildConfiguration struct {
 	// The namespace where to run the builder Pod (must be the same of the operator in charge of this Build reconciliation).
 	BuilderPodNamespace string `json:"operatorNamespace,omitempty"`
 	// the strategy to adopt
-	Strategy BuildStrategy `property:"strategy" json:"strategy,omitempty"`
+	Strategy BuildStrategy `json:"strategy,omitempty" property:"strategy"`
 	// the build order strategy to adopt
-	OrderStrategy BuildOrderStrategy `property:"order-strategy" json:"orderStrategy,omitempty"`
+	OrderStrategy BuildOrderStrategy `json:"orderStrategy,omitempty" property:"order-strategy"`
 	// The minimum amount of CPU required. Only used for `pod` strategy
-	RequestCPU string `property:"request-cpu" json:"requestCPU,omitempty"`
+	RequestCPU string `json:"requestCPU,omitempty" property:"request-cpu"`
 	// The minimum amount of memory required. Only used for `pod` strategy
-	RequestMemory string `property:"request-memory" json:"requestMemory,omitempty"`
+	RequestMemory string `json:"requestMemory,omitempty" property:"request-memory"`
 	// The maximum amount of CPU required. Only used for `pod` strategy
-	LimitCPU string `property:"limit-cpu" json:"limitCPU,omitempty"`
+	LimitCPU string `json:"limitCPU,omitempty" property:"limit-cpu"`
 	// The maximum amount of memory required. Only used for `pod` strategy
-	LimitMemory string `property:"limit-memory" json:"limitMemory,omitempty"`
+	LimitMemory string `json:"limitMemory,omitempty" property:"limit-memory"`
 	// The node selector for the builder pod. Only used for `pod` strategy
-	NodeSelector map[string]string `property:"node-selector" json:"nodeSelector,omitempty"`
+	NodeSelector map[string]string `json:"nodeSelector,omitempty" property:"node-selector"`
 	// Annotation to use for the builder pod. Only used for `pod` strategy
-	Annotations map[string]string `property:"annotations" json:"annotations,omitempty"`
+	Annotations map[string]string `json:"annotations,omitempty" property:"annotations"`
 	// The list of platforms used in order to build a container image.
-	ImagePlatforms []string `property:"platforms" json:"platforms,omitempty"`
+	ImagePlatforms []string `json:"platforms,omitempty" property:"platforms"`
 }
 
 // BuildStrategy specifies how the Build should be executed.
@@ -128,7 +128,7 @@ type ConfigurationSpec struct {
 
 // Catalog represents the Camel Catalog runtime specification.
 type Catalog struct {
-	Version  string          `json:"version,omitempty" yaml:"version,omitempty"`
+	Version  string          `json:"version,omitempty"  yaml:"version,omitempty"`
 	Provider RuntimeProvider `json:"provider,omitempty" yaml:"provider,omitempty"`
 }
 
@@ -185,100 +185,100 @@ var AllTraitProfiles = []TraitProfile{TraitProfileKubernetes, TraitProfileKnativ
 // Traits represents the collection of trait configurations.
 type Traits struct {
 	// The configuration of Affinity trait
-	Affinity *trait.AffinityTrait `property:"affinity" json:"affinity,omitempty"`
+	Affinity *trait.AffinityTrait `json:"affinity,omitempty" property:"affinity"`
 	// The configuration of Builder trait
-	Builder *trait.BuilderTrait `property:"builder" json:"builder,omitempty"`
+	Builder *trait.BuilderTrait `json:"builder,omitempty" property:"builder"`
 	// The configuration of Camel trait
-	Camel *trait.CamelTrait `property:"camel" json:"camel,omitempty"`
+	Camel *trait.CamelTrait `json:"camel,omitempty" property:"camel"`
 	// The configuration of Container trait
-	Container *trait.ContainerTrait `property:"container" json:"container,omitempty"`
+	Container *trait.ContainerTrait `json:"container,omitempty" property:"container"`
 	// The configuration of Cron trait
-	Cron *trait.CronTrait `property:"cron" json:"cron,omitempty"`
+	Cron *trait.CronTrait `json:"cron,omitempty" property:"cron"`
 	// The configuration of Dependencies trait
-	Dependencies *trait.DependenciesTrait `property:"dependencies" json:"dependencies,omitempty"`
+	Dependencies *trait.DependenciesTrait `json:"dependencies,omitempty" property:"dependencies"`
 	// The configuration of Deployer trait
-	Deployer *trait.DeployerTrait `property:"deployer" json:"deployer,omitempty"`
+	Deployer *trait.DeployerTrait `json:"deployer,omitempty" property:"deployer"`
 	// The configuration of Deployment trait
-	Deployment *trait.DeploymentTrait `property:"deployment" json:"deployment,omitempty"`
+	Deployment *trait.DeploymentTrait `json:"deployment,omitempty" property:"deployment"`
 	// The configuration of Environment trait
-	Environment *trait.EnvironmentTrait `property:"environment" json:"environment,omitempty"`
+	Environment *trait.EnvironmentTrait `json:"environment,omitempty" property:"environment"`
 	// The configuration of Error Handler trait
 	// Deprecated: no longer in use.
-	ErrorHandler *trait.ErrorHandlerTrait `property:"error-handler" json:"error-handler,omitempty"`
+	ErrorHandler *trait.ErrorHandlerTrait `json:"error-handler,omitempty" property:"error-handler"`
 	// The configuration of GC trait
-	GC *trait.GCTrait `property:"gc" json:"gc,omitempty"`
+	GC *trait.GCTrait `json:"gc,omitempty" property:"gc"`
 	// The configuration of Health trait
-	Health *trait.HealthTrait `property:"health" json:"health,omitempty"`
+	Health *trait.HealthTrait `json:"health,omitempty" property:"health"`
 	// The configuration of Ingress trait
-	Ingress *trait.IngressTrait `property:"ingress" json:"ingress,omitempty"`
+	Ingress *trait.IngressTrait `json:"ingress,omitempty" property:"ingress"`
 	// The configuration of Init Containers trait
-	InitContainers *trait.InitContainersTrait `property:"init-containers" json:"init-containers,omitempty"`
+	InitContainers *trait.InitContainersTrait `json:"init-containers,omitempty" property:"init-containers"`
 	// The configuration of Istio trait
-	Istio *trait.IstioTrait `property:"istio" json:"istio,omitempty"`
+	Istio *trait.IstioTrait `json:"istio,omitempty" property:"istio"`
 	// The configuration of Jolokia trait
 	// Deprecated: use jvm.agent instead.
-	Jolokia *trait.JolokiaTrait `property:"jolokia" json:"jolokia,omitempty"`
+	Jolokia *trait.JolokiaTrait `json:"jolokia,omitempty" property:"jolokia"`
 	// The configuration of JVM trait
-	JVM *trait.JVMTrait `property:"jvm" json:"jvm,omitempty"`
+	JVM *trait.JVMTrait `json:"jvm,omitempty" property:"jvm"`
 	// The configuration of Kamelets trait
-	Kamelets *trait.KameletsTrait `property:"kamelets" json:"kamelets,omitempty"`
+	Kamelets *trait.KameletsTrait `json:"kamelets,omitempty" property:"kamelets"`
 	// The configuration of Keda trait
-	Keda *trait.KedaTrait `property:"keda" json:"keda,omitempty"`
+	Keda *trait.KedaTrait `json:"keda,omitempty" property:"keda"`
 	// The configuration of Knative trait
-	Knative *trait.KnativeTrait `property:"knative" json:"knative,omitempty"`
+	Knative *trait.KnativeTrait `json:"knative,omitempty" property:"knative"`
 	// The configuration of Knative Service trait
-	KnativeService *trait.KnativeServiceTrait `property:"knative-service" json:"knative-service,omitempty"`
+	KnativeService *trait.KnativeServiceTrait `json:"knative-service,omitempty" property:"knative-service"`
 	// The configuration of Logging trait
-	Logging *trait.LoggingTrait `property:"logging" json:"logging,omitempty"`
+	Logging *trait.LoggingTrait `json:"logging,omitempty" property:"logging"`
 	// The configuration of Master trait
-	Master *trait.MasterTrait `property:"master" json:"master,omitempty"`
+	Master *trait.MasterTrait `json:"master,omitempty" property:"master"`
 	// The configuration of Mount trait
-	Mount *trait.MountTrait `property:"mount" json:"mount,omitempty"`
+	Mount *trait.MountTrait `json:"mount,omitempty" property:"mount"`
 	// The configuration of OpenAPI trait
 	// Deprecated: no longer in use.
-	OpenAPI *trait.OpenAPITrait `property:"openapi" json:"openapi,omitempty"`
+	OpenAPI *trait.OpenAPITrait `json:"openapi,omitempty" property:"openapi"`
 	// The configuration of Owner trait
-	Owner *trait.OwnerTrait `property:"owner" json:"owner,omitempty"`
+	Owner *trait.OwnerTrait `json:"owner,omitempty" property:"owner"`
 	// The configuration of PDB trait
-	PDB *trait.PDBTrait `property:"pdb" json:"pdb,omitempty"`
+	PDB *trait.PDBTrait `json:"pdb,omitempty" property:"pdb"`
 	// The configuration of Platform trait
-	Platform *trait.PlatformTrait `property:"platform" json:"platform,omitempty"`
+	Platform *trait.PlatformTrait `json:"platform,omitempty" property:"platform"`
 	// The configuration of Pod trait
 	// Deprecated: use init-containers instead.
-	Pod *trait.PodTrait `property:"pod" json:"pod,omitempty"`
+	Pod *trait.PodTrait `json:"pod,omitempty" property:"pod"`
 	// The configuration of Prometheus trait
-	Prometheus *trait.PrometheusTrait `property:"prometheus" json:"prometheus,omitempty"`
+	Prometheus *trait.PrometheusTrait `json:"prometheus,omitempty" property:"prometheus"`
 	// The configuration of Pull Secret trait
-	PullSecret *trait.PullSecretTrait `property:"pull-secret" json:"pull-secret,omitempty"`
+	PullSecret *trait.PullSecretTrait `json:"pull-secret,omitempty" property:"pull-secret"`
 	// The configuration of Quarkus trait
-	Quarkus *trait.QuarkusTrait `property:"quarkus" json:"quarkus,omitempty"`
+	Quarkus *trait.QuarkusTrait `json:"quarkus,omitempty" property:"quarkus"`
 	// The configuration of Registry trait (support removed since version 2.5.0).
 	// Deprecated: use jvm trait or read documentation.
-	Registry *trait.RegistryTrait `property:"registry" json:"registry,omitempty"`
+	Registry *trait.RegistryTrait `json:"registry,omitempty" property:"registry"`
 	// The configuration of Route trait
 	// Deprecated: use ingress instead.
-	Route *trait.RouteTrait `property:"route" json:"route,omitempty"`
+	Route *trait.RouteTrait `json:"route,omitempty" property:"route"`
 	// The configuration of Security Context trait
-	SecurityContext *trait.SecurityContextTrait `property:"security-context" json:"security-context,omitempty"`
+	SecurityContext *trait.SecurityContextTrait `json:"security-context,omitempty" property:"security-context"`
 	// The configuration of Service trait
-	Service *trait.ServiceTrait `property:"service" json:"service,omitempty"`
+	Service *trait.ServiceTrait `json:"service,omitempty" property:"service"`
 	// The configuration of Service Binding trait
 	// Deprecated: no longer in use.
-	ServiceBinding *trait.ServiceBindingTrait `property:"service-binding" json:"service-binding,omitempty"`
+	ServiceBinding *trait.ServiceBindingTrait `json:"service-binding,omitempty" property:"service-binding"`
 	// The configuration of Telemetry trait
-	Telemetry *trait.TelemetryTrait `property:"telemetry" json:"telemetry,omitempty"`
+	Telemetry *trait.TelemetryTrait `json:"telemetry,omitempty" property:"telemetry"`
 	// The configuration of Toleration trait
-	Toleration *trait.TolerationTrait `property:"toleration" json:"toleration,omitempty"`
+	Toleration *trait.TolerationTrait `json:"toleration,omitempty" property:"toleration"`
 
 	// Deprecated: no longer in use.
 	Addons map[string]AddonTrait `json:"addons,omitempty"`
 
 	// Deprecated: no longer in use.
-	Strimzi *TraitSpec `property:"strimzi" json:"strimzi,omitempty"`
+	Strimzi *TraitSpec `json:"strimzi,omitempty" property:"strimzi"`
 	// Deprecated: no longer in use.
-	ThreeScale *TraitSpec `property:"3scale" json:"3scale,omitempty"`
+	ThreeScale *TraitSpec `json:"3scale,omitempty" property:"3scale"`
 	// Deprecated: no longer in use.
-	Tracing *TraitSpec `property:"tracing" json:"tracing,omitempty"`
+	Tracing *TraitSpec `json:"tracing,omitempty" property:"tracing"`
 }
 
 // AddonTrait represents the configuration of an addon trait.
@@ -381,7 +381,7 @@ type Capability struct {
 
 // CamelProperty represents a Camel property that may end up in an application.properties file.
 type CamelProperty struct {
-	Key   string `json:"key" yaml:"key"`
+	Key   string `json:"key"             yaml:"key"`
 	Value string `json:"value,omitempty" yaml:"value,omitempty"`
 }
 
diff --git a/pkg/apis/camel/v1/health.go b/pkg/apis/camel/v1/health.go
index de4983c7d..51fa667c3 100644
--- a/pkg/apis/camel/v1/health.go
+++ b/pkg/apis/camel/v1/health.go
@@ -30,7 +30,7 @@ type HealthCheck struct {
 }
 
 type HealthCheckResponse struct {
-	Name   string            `json:"name,omitempty" yaml:"name,omitempty"`
+	Name   string            `json:"name,omitempty"   yaml:"name,omitempty"`
 	Status HealthCheckStatus `json:"status,omitempty" yaml:"status,omitempty"`
-	Data   RawMessage        `json:"data,omitempty" yaml:"data,omitempty"`
+	Data   RawMessage        `json:"data,omitempty"   yaml:"data,omitempty"`
 }
diff --git a/pkg/apis/camel/v1/integration_types.go b/pkg/apis/camel/v1/integration_types.go
index bdb301e27..f52c76efe 100644
--- a/pkg/apis/camel/v1/integration_types.go
+++ b/pkg/apis/camel/v1/integration_types.go
@@ -308,13 +308,13 @@ type PodSpec struct {
 	// AutomountServiceAccountToken
 	AutomountServiceAccountToken *bool `json:"automountServiceAccountToken,omitempty" protobuf:"varint,21,opt,name=automountServiceAccountToken"`
 	// Volumes
-	Volumes []corev1.Volume `json:"volumes,omitempty" patchStrategy:"merge,retainKeys" patchMergeKey:"name" protobuf:"bytes,1,rep,name=volumes"`
+	Volumes []corev1.Volume `json:"volumes,omitempty" patchMergeKey:"name" patchStrategy:"merge,retainKeys" protobuf:"bytes,1,rep,name=volumes"`
 	// InitContainers
-	InitContainers []corev1.Container `json:"initContainers,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,20,rep,name=initContainers"`
+	InitContainers []corev1.Container `json:"initContainers,omitempty" patchMergeKey:"name" patchStrategy:"merge" protobuf:"bytes,20,rep,name=initContainers"`
 	// Containers
-	Containers []corev1.Container `json:"containers" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=containers"`
+	Containers []corev1.Container `json:"containers" patchMergeKey:"name" patchStrategy:"merge" protobuf:"bytes,2,rep,name=containers"`
 	// EphemeralContainers
-	EphemeralContainers []corev1.EphemeralContainer `json:"ephemeralContainers,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,34,rep,name=ephemeralContainers"`
+	EphemeralContainers []corev1.EphemeralContainer `json:"ephemeralContainers,omitempty" patchMergeKey:"name" patchStrategy:"merge" protobuf:"bytes,34,rep,name=ephemeralContainers"`
 	// RestartPolicy
 	RestartPolicy corev1.RestartPolicy `json:"restartPolicy,omitempty" protobuf:"bytes,3,opt,name=restartPolicy,casttype=RestartPolicy"`
 	// TerminationGracePeriodSeconds
@@ -326,13 +326,13 @@ type PodSpec struct {
 	// NodeSelector
 	NodeSelector map[string]string `json:"nodeSelector,omitempty" protobuf:"bytes,7,rep,name=nodeSelector"`
 	// TopologySpreadConstraints
-	TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty" patchStrategy:"merge" patchMergeKey:"topologyKey" protobuf:"bytes,33,opt,name=topologySpreadConstraints"`
+	TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty" patchMergeKey:"topologyKey" patchStrategy:"merge" protobuf:"bytes,33,opt,name=topologySpreadConstraints"`
 	// PodSecurityContext
 	SecurityContext corev1.PodSecurityContext `json:"securityContext,omitempty" protobuf:"bytes,34,opt,name=securityContext"`
 }
 
 type PodCondition struct {
-	Name      string                `json:"name,omitempty" yaml:"name,omitempty"`
-	Condition corev1.PodCondition   `json:"condition" yaml:"condition"`
+	Name      string                `json:"name,omitempty"   yaml:"name,omitempty"`
+	Condition corev1.PodCondition   `json:"condition"        yaml:"condition"`
 	Health    []HealthCheckResponse `json:"health,omitempty" yaml:"health,omitempty"`
 }
diff --git a/pkg/apis/camel/v1/integrationkit_types.go b/pkg/apis/camel/v1/integrationkit_types.go
index b50fc3115..2a35d4d4e 100644
--- a/pkg/apis/camel/v1/integrationkit_types.go
+++ b/pkg/apis/camel/v1/integrationkit_types.go
@@ -81,16 +81,16 @@ type IntegrationKitSpec struct {
 // IntegrationKitTraits defines traits assigned to an `IntegrationKit`.
 type IntegrationKitTraits struct {
 	// The builder trait is internally used to determine the best strategy to build and configure IntegrationKits.
-	Builder *trait.BuilderTrait `property:"builder" json:"builder,omitempty"`
+	Builder *trait.BuilderTrait `json:"builder,omitempty" property:"builder"`
 	// The Camel trait sets up Camel configuration.
-	Camel *trait.CamelTrait `property:"camel" json:"camel,omitempty"`
+	Camel *trait.CamelTrait `json:"camel,omitempty" property:"camel"`
 	// The Quarkus trait configures the Quarkus runtime.
 	// It's enabled by default.
 	// NOTE: Compiling to a native executable, requires at least 4GiB of memory, so the Pod running the native build must have enough memory available.
-	Quarkus *trait.QuarkusTrait `property:"quarkus" json:"quarkus,omitempty"`
+	Quarkus *trait.QuarkusTrait `json:"quarkus,omitempty" property:"quarkus"`
 	// The Registry trait sets up Maven to use the Image registry as a Maven repository (support removed since version 2.5.0).
 	// Deprecated: use jvm trait or read documentation.
-	Registry *trait.RegistryTrait `property:"registry" json:"registry,omitempty"`
+	Registry *trait.RegistryTrait `json:"registry,omitempty" property:"registry"`
 	// Deprecated: no longer in use.
 	Addons map[string]AddonTrait `json:"addons,omitempty"`
 }
diff --git a/pkg/apis/camel/v1/maven_types.go b/pkg/apis/camel/v1/maven_types.go
index e62ef46db..18af05277 100644
--- a/pkg/apis/camel/v1/maven_types.go
+++ b/pkg/apis/camel/v1/maven_types.go
@@ -57,57 +57,57 @@ type MavenSpec struct {
 // Repository defines a Maven repository.
 type Repository struct {
 	// identifies the repository
-	ID string `xml:"id" json:"id"`
+	ID string `json:"id" xml:"id"`
 	// name of the repository
-	Name string `xml:"name,omitempty" json:"name,omitempty"`
+	Name string `json:"name,omitempty" xml:"name,omitempty"`
 	// location of the repository
-	URL string `xml:"url" json:"url"`
+	URL string `json:"url" xml:"url"`
 	// can use snapshot
-	Snapshots RepositoryPolicy `xml:"snapshots,omitempty" json:"snapshots,omitempty"`
+	Snapshots RepositoryPolicy `json:"snapshots,omitempty" xml:"snapshots,omitempty"`
 	// can use stable releases
-	Releases RepositoryPolicy `xml:"releases,omitempty" json:"releases,omitempty"`
+	Releases RepositoryPolicy `json:"releases,omitempty" xml:"releases,omitempty"`
 }
 
 // RepositoryPolicy defines the policy associated to a Maven repository.
 type RepositoryPolicy struct {
 	// is the policy activated or not
-	Enabled bool `xml:"enabled" json:"enabled"`
+	Enabled bool `json:"enabled" xml:"enabled"`
 	// This element specifies how often updates should attempt to occur.
 	// Maven will compare the local POM's timestamp (stored in a repository's maven-metadata file) to the remote.
 	// The choices are: `always`, `daily` (default), `interval:X` (where X is an integer in minutes) or `never`
-	UpdatePolicy string `xml:"updatePolicy,omitempty" json:"updatePolicy,omitempty"`
+	UpdatePolicy string `json:"updatePolicy,omitempty" xml:"updatePolicy,omitempty"`
 	// When Maven deploys files to the repository, it also deploys corresponding checksum files.
 	// Your options are to `ignore`, `fail`, or `warn` on missing or incorrect checksums.
-	ChecksumPolicy string `xml:"checksumPolicy,omitempty" json:"checksumPolicy,omitempty"`
+	ChecksumPolicy string `json:"checksumPolicy,omitempty" xml:"checksumPolicy,omitempty"`
 }
 
 // MavenArtifact defines a GAV (Group:Artifact:Type:Version:Classifier) Maven artifact.
 type MavenArtifact struct {
 	// Maven Group
-	GroupID string `json:"groupId" yaml:"groupId" xml:"groupId"`
+	GroupID string `json:"groupId" xml:"groupId" yaml:"groupId"`
 	// Maven Artifact
-	ArtifactID string `json:"artifactId" yaml:"artifactId" xml:"artifactId"`
+	ArtifactID string `json:"artifactId" xml:"artifactId" yaml:"artifactId"`
 	// Maven Type
-	Type string `json:"type,omitempty" yaml:"type,omitempty" xml:"type,omitempty"`
+	Type string `json:"type,omitempty" xml:"type,omitempty" yaml:"type,omitempty"`
 	// Maven Version
-	Version string `json:"version,omitempty" yaml:"version,omitempty" xml:"version,omitempty"`
+	Version string `json:"version,omitempty" xml:"version,omitempty" yaml:"version,omitempty"`
 	// Maven Classifier
-	Classifier string `json:"classifier,omitempty" yaml:"classifier,omitempty" xml:"classifier,omitempty"`
+	Classifier string `json:"classifier,omitempty" xml:"classifier,omitempty" yaml:"classifier,omitempty"`
 }
 
 // Server see link:https://maven.apache.org/settings.html[Maven settings].
 type Server struct {
-	XMLName       xml.Name   `xml:"server" json:"-"`
-	ID            string     `xml:"id,omitempty" json:"id,omitempty"`
-	Username      string     `xml:"username,omitempty" json:"username,omitempty"`
-	Password      string     `xml:"password,omitempty" json:"password,omitempty"`
-	Configuration Properties `xml:"configuration,omitempty" json:"configuration,omitempty"`
+	XMLName       xml.Name   `json:"-"                       xml:"server"`
+	ID            string     `json:"id,omitempty"            xml:"id,omitempty"`
+	Username      string     `json:"username,omitempty"      xml:"username,omitempty"`
+	Password      string     `json:"password,omitempty"      xml:"password,omitempty"`
+	Configuration Properties `json:"configuration,omitempty" xml:"configuration,omitempty"`
 }
 
 // StringOrProperties -- .
 type StringOrProperties struct {
-	Value      string     `xml:",chardata" json:"-"`
-	Properties Properties `xml:"properties,omitempty" json:"properties,omitempty"`
+	Value      string     `json:"-"                    xml:",chardata"`
+	Properties Properties `json:"properties,omitempty" xml:"properties,omitempty"`
 }
 
 // Properties -- .
@@ -118,61 +118,61 @@ type PluginProperties map[string]StringOrProperties
 
 // PluginConfiguration see link:https://maven.apache.org/settings.html[Maven settings].
 type PluginConfiguration struct {
-	Container               Container        `xml:"container" json:"container"`
-	AllowInsecureRegistries string           `xml:"allowInsecureRegistries" json:"allowInsecureRegistries"`
-	ExtraDirectories        ExtraDirectories `xml:"extraDirectories" json:"extraDirectories"`
-	PluginExtensions        PluginExtensions `xml:"pluginExtensions" json:"pluginExtensions"`
+	Container               Container        `json:"container"               xml:"container"`
+	AllowInsecureRegistries string           `json:"allowInsecureRegistries" xml:"allowInsecureRegistries"`
+	ExtraDirectories        ExtraDirectories `json:"extraDirectories"        xml:"extraDirectories"`
+	PluginExtensions        PluginExtensions `json:"pluginExtensions"        xml:"pluginExtensions"`
 }
 
 // Container -- .
 type Container struct {
-	Entrypoint string `xml:"entrypoint" json:"entrypoint"`
-	Args       Args   `xml:"args" json:"args"`
+	Entrypoint string `json:"entrypoint" xml:"entrypoint"`
+	Args       Args   `json:"args"       xml:"args"`
 }
 
 // Args -- .
 type Args struct {
-	Arg string `xml:"arg" json:"arg"`
+	Arg string `json:"arg" xml:"arg"`
 }
 
 // ExtraDirectories -- .
 type ExtraDirectories struct {
-	Paths       []Path       `xml:"paths>path" json:"paths>path"`
-	Permissions []Permission `xml:"permissions>permission,omitempty" json:"permissions>permission,omitempty"`
+	Paths       []Path       `json:"paths>path"                       xml:"paths>path"`
+	Permissions []Permission `json:"permissions>permission,omitempty" xml:"permissions>permission,omitempty"`
 }
 
 // Path -- .
 type Path struct {
-	From     string   `xml:"from" json:"from"`
-	Into     string   `xml:"into" json:"into"`
-	Excludes []string `xml:"excludes>exclude,omitempty" json:"excludes>exclude,omitempty"`
+	From     string   `json:"from"                       xml:"from"`
+	Into     string   `json:"into"                       xml:"into"`
+	Excludes []string `json:"excludes>exclude,omitempty" xml:"excludes>exclude,omitempty"`
 }
 
 // Permission -- .
 type Permission struct {
-	File string `xml:"file" json:"file"`
-	Mode string `xml:"mode" json:"mode"`
+	File string `json:"file" xml:"file"`
+	Mode string `json:"mode" xml:"mode"`
 }
 
 // PluginExtensions -- .
 type PluginExtensions struct {
-	PluginExtension PluginExtension `xml:"pluginExtension" json:"pluginExtension"`
+	PluginExtension PluginExtension `json:"pluginExtension" xml:"pluginExtension"`
 }
 
 // PluginExtension -- .
 type PluginExtension struct {
-	Implementation string                       `xml:"implementation" json:"implementation"`
-	Configuration  PluginExtensionConfiguration `xml:"configuration" json:"configuration"`
+	Implementation string                       `json:"implementation" xml:"implementation"`
+	Configuration  PluginExtensionConfiguration `json:"configuration"  xml:"configuration"`
 }
 
 // PluginExtensionConfiguration -- .
 type PluginExtensionConfiguration struct {
-	Filters        []Filter `xml:"filters>Filter" json:"filters>Filter"`
-	Implementation string   `xml:"implementation,attr" json:"_implementation"`
+	Filters        []Filter `json:"filters>Filter"  xml:"filters>Filter"`
+	Implementation string   `json:"_implementation" xml:"implementation,attr"`
 }
 
 // Filter -- .
 type Filter struct {
-	Glob    string `xml:"glob" json:"glob"`
-	ToLayer string `xml:"toLayer,omitempty" json:"toLayer,omitempty"`
+	Glob    string `json:"glob"              xml:"glob"`
+	ToLayer string `json:"toLayer,omitempty" xml:"toLayer,omitempty"`
 }
diff --git a/pkg/apis/camel/v1/trait/affinity.go b/pkg/apis/camel/v1/trait/affinity.go
index 5c5b2b5ab..6b6470351 100644
--- a/pkg/apis/camel/v1/trait/affinity.go
+++ b/pkg/apis/camel/v1/trait/affinity.go
@@ -24,18 +24,18 @@ package trait
 //
 // +camel-k:trait=affinity.
 type AffinityTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Always co-locates multiple replicas of the integration in the same node (default `false`).
-	PodAffinity *bool `property:"pod-affinity" json:"podAffinity,omitempty"`
+	PodAffinity *bool `json:"podAffinity,omitempty" property:"pod-affinity"`
 	// Never co-locates multiple replicas of the integration in the same node (default `false`).
-	PodAntiAffinity *bool `property:"pod-anti-affinity" json:"podAntiAffinity,omitempty"`
+	PodAntiAffinity *bool `json:"podAntiAffinity,omitempty" property:"pod-anti-affinity"`
 	// Defines a set of nodes the integration pod(s) are eligible to be scheduled on, based on labels on the node.
-	NodeAffinityLabels []string `property:"node-affinity-labels" json:"nodeAffinityLabels,omitempty"`
+	NodeAffinityLabels []string `json:"nodeAffinityLabels,omitempty" property:"node-affinity-labels"`
 	// Defines a set of pods (namely those matching the label selector, relative to the given namespace) that the
 	// integration pod(s) should be co-located with.
-	PodAffinityLabels []string `property:"pod-affinity-labels" json:"podAffinityLabels,omitempty"`
+	PodAffinityLabels []string `json:"podAffinityLabels,omitempty" property:"pod-affinity-labels"`
 	// Defines a set of pods (namely those matching the label selector, relative to the given namespace) that the
 	// integration pod(s) should not be co-located with.
-	PodAntiAffinityLabels []string `property:"pod-anti-affinity-labels" json:"podAntiAffinityLabels,omitempty"`
+	PodAntiAffinityLabels []string `json:"podAntiAffinityLabels,omitempty" property:"pod-anti-affinity-labels"`
 }
diff --git a/pkg/apis/camel/v1/trait/base.go b/pkg/apis/camel/v1/trait/base.go
index 8f5fdd23e..12c4bc2fe 100644
--- a/pkg/apis/camel/v1/trait/base.go
+++ b/pkg/apis/camel/v1/trait/base.go
@@ -20,7 +20,7 @@ package trait
 // 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"`
+	Enabled *bool `json:"enabled,omitempty" property:"enabled"`
 
 	// Legacy trait configuration parameters.
 	// Deprecated: for backward compatibility.
@@ -30,7 +30,7 @@ type Trait struct {
 // 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"`
+	Enabled *bool `json:"enabled,omitempty" property:"enabled"`
 	// Legacy trait configuration parameters.
 	// Deprecated: for backward compatibility.
 	Configuration *Configuration `json:"configuration,omitempty"`
diff --git a/pkg/apis/camel/v1/trait/builder.go b/pkg/apis/camel/v1/trait/builder.go
index 2585c0831..6ef4a54c2 100644
--- a/pkg/apis/camel/v1/trait/builder.go
+++ b/pkg/apis/camel/v1/trait/builder.go
@@ -22,59 +22,59 @@ package trait
 //
 // +camel-k:trait=builder.
 type BuilderTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// Enable verbose logging on build components that support it (e.g. Kaniko build pod).
 	// Deprecated no longer in use
-	Verbose *bool `property:"verbose" json:"verbose,omitempty"`
+	Verbose *bool `json:"verbose,omitempty" property:"verbose"`
 	// A list of properties to be provided to the build task
-	Properties []string `property:"properties" json:"properties,omitempty"`
+	Properties []string `json:"properties,omitempty" property:"properties"`
 	// The strategy to use, either `pod` or `routine` (default `routine`)
 	// +kubebuilder:validation:Enum=pod;routine
-	Strategy string `property:"strategy" json:"strategy,omitempty"`
+	Strategy string `json:"strategy,omitempty" property:"strategy"`
 	// Specify a base image. In order to have the application working properly it must be a container image which has a Java JDK
 	// installed and ready to use on path (ie `/usr/bin/java`).
-	BaseImage string `property:"base-image" json:"baseImage,omitempty"`
+	BaseImage string `json:"baseImage,omitempty" property:"base-image"`
 	// Use the incremental image build option, to reuse existing containers (default `true`)
-	IncrementalImageBuild *bool `property:"incremental-image-build" json:"incrementalImageBuild,omitempty"`
+	IncrementalImageBuild *bool `json:"incrementalImageBuild,omitempty" property:"incremental-image-build"`
 	// The build order strategy to use, either `dependencies`, `fifo` or `sequential` (default is the platform default)
 	// +kubebuilder:validation:Enum=dependencies;fifo;sequential
-	OrderStrategy string `property:"order-strategy" json:"orderStrategy,omitempty"`
+	OrderStrategy string `json:"orderStrategy,omitempty" property:"order-strategy"`
 	// When using `pod` strategy, the minimum amount of CPU required by the pod builder.
 	// Deprecated: use TasksRequestCPU instead with task name `builder`.
-	RequestCPU string `property:"request-cpu" json:"requestCPU,omitempty"`
+	RequestCPU string `json:"requestCPU,omitempty" property:"request-cpu"`
 	// When using `pod` strategy, the minimum amount of memory required by the pod builder.
 	// Deprecated: use TasksRequestCPU instead with task name `builder`.
-	RequestMemory string `property:"request-memory" json:"requestMemory,omitempty"`
+	RequestMemory string `json:"requestMemory,omitempty" property:"request-memory"`
 	// When using `pod` strategy, the maximum amount of CPU required by the pod builder.
 	// Deprecated: use TasksRequestCPU instead with task name `builder`.
-	LimitCPU string `property:"limit-cpu" json:"limitCPU,omitempty"`
+	LimitCPU string `json:"limitCPU,omitempty" property:"limit-cpu"`
 	// When using `pod` strategy, the maximum amount of memory required by the pod builder.
 	// Deprecated: use TasksRequestCPU instead with task name `builder`.
-	LimitMemory string `property:"limit-memory" json:"limitMemory,omitempty"`
+	LimitMemory string `json:"limitMemory,omitempty" property:"limit-memory"`
 	// A list of references pointing to configmaps/secrets that contains a maven profile.
 	// This configmap/secret is a resource of the IntegrationKit created, therefore it needs to be present in the namespace where the operator is going to create the IntegrationKit.
 	// The content of the maven profile is expected to be a text containing a valid maven profile starting with `<profile>` and ending with `</profile>` that will be integrated as an inline profile in the POM.
 	// Syntax: [configmap|secret]:name[/key], where name represents the resource name, key optionally represents the resource key to be filtered (default key value = profile.xml).
-	MavenProfiles []string `property:"maven-profiles" json:"mavenProfiles,omitempty"`
+	MavenProfiles []string `json:"mavenProfiles,omitempty" property:"maven-profiles"`
 	// A list of tasks to be executed (available only when using `pod` strategy) with format `<name>;<container-image>;<container-command>`.
-	Tasks []string `property:"tasks" json:"tasks,omitempty"`
+	Tasks []string `json:"tasks,omitempty" property:"tasks"`
 	// A list of tasks sorted by the order of execution in a csv format, ie, `<taskName1>,<taskName2>,...`.
 	// Mind that you must include also the operator tasks (`builder`, `quarkus-native`, `package`, `jib`, `s2i`)
 	// if you need to execute them. Useful only with `pod` strategy.
-	TasksFilter string `property:"tasks-filter" json:"tasksFilter,omitempty"`
+	TasksFilter string `json:"tasksFilter,omitempty" property:"tasks-filter"`
 	// A list of request cpu configuration for the specific task with format `<task-name>:<request-cpu-conf>`.
-	TasksRequestCPU []string `property:"tasks-request-cpu" json:"tasksRequestCPU,omitempty"`
+	TasksRequestCPU []string `json:"tasksRequestCPU,omitempty" property:"tasks-request-cpu"`
 	// A list of request memory configuration for the specific task with format `<task-name>:<request-memory-conf>`.
-	TasksRequestMemory []string `property:"tasks-request-memory" json:"tasksRequestMemory,omitempty"`
+	TasksRequestMemory []string `json:"tasksRequestMemory,omitempty" property:"tasks-request-memory"`
 	// A list of limit cpu configuration for the specific task with format `<task-name>:<limit-cpu-conf>`.
-	TasksLimitCPU []string `property:"tasks-limit-cpu" json:"tasksLimitCPU,omitempty"`
+	TasksLimitCPU []string `json:"tasksLimitCPU,omitempty" property:"tasks-limit-cpu"`
 	// A list of limit memory configuration for the specific task with format `<task-name>:<limit-memory-conf>`.
-	TasksLimitMemory []string `property:"tasks-limit-memory" json:"tasksLimitMemory,omitempty"`
+	TasksLimitMemory []string `json:"tasksLimitMemory,omitempty" property:"tasks-limit-memory"`
 	// Defines a set of nodes the builder pod is eligible to be scheduled on, based on labels on the node.
-	NodeSelector map[string]string `property:"node-selector" json:"nodeSelector,omitempty"`
+	NodeSelector map[string]string `json:"nodeSelector,omitempty" property:"node-selector"`
 	// When using `pod` strategy, annotation to use for the builder pod.
-	Annotations map[string]string `property:"annotations" json:"annotations,omitempty"`
+	Annotations map[string]string `json:"annotations,omitempty" property:"annotations"`
 	// The list of manifest platforms to use to build a container image (default `linux/amd64`).
-	ImagePlatforms []string `property:"platforms" json:"platforms,omitempty"`
+	ImagePlatforms []string `json:"platforms,omitempty" property:"platforms"`
 }
diff --git a/pkg/apis/camel/v1/trait/camel.go b/pkg/apis/camel/v1/trait/camel.go
index 06bd43fc4..ff8e2ba73 100644
--- a/pkg/apis/camel/v1/trait/camel.go
+++ b/pkg/apis/camel/v1/trait/camel.go
@@ -21,15 +21,15 @@ package trait
 //
 // +camel-k:trait=camel.
 type CamelTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// The runtime provider to use for the integration. (Default, Camel K Runtime).
 	// +kubebuilder:validation:Enum=quarkus;plain-quarkus
-	RuntimeProvider string `property:"runtime-provider" json:"runtimeProvider,omitempty"`
+	RuntimeProvider string `json:"runtimeProvider,omitempty" property:"runtime-provider"`
 	// The runtime version to use for the integration. It overrides the default version set in the Integration Platform.
 	// You can use a fixed version (for example "3.2.3") or a semantic version (for example "3.x") which will try to resolve
 	// to the best matching Catalog existing on the cluster (Default, the one provided by the operator version).
-	RuntimeVersion string `property:"runtime-version" json:"runtimeVersion,omitempty"`
+	RuntimeVersion string `json:"runtimeVersion,omitempty" property:"runtime-version"`
 	// A list of properties to be provided to the Integration runtime
-	Properties []string `property:"properties" json:"properties,omitempty"`
+	Properties []string `json:"properties,omitempty" property:"properties"`
 }
diff --git a/pkg/apis/camel/v1/trait/container.go b/pkg/apis/camel/v1/trait/container.go
index 1c38a882e..c5bb18e29 100644
--- a/pkg/apis/camel/v1/trait/container.go
+++ b/pkg/apis/camel/v1/trait/container.go
@@ -25,54 +25,54 @@ import corev1 "k8s.io/api/core/v1"
 //
 // +camel-k:trait=container.
 type ContainerTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// To automatically enable the trait
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 	// The minimum amount of CPU required (default 125 millicores).
-	RequestCPU string `property:"request-cpu" json:"requestCPU,omitempty"`
+	RequestCPU string `json:"requestCPU,omitempty" property:"request-cpu"`
 	// The minimum amount of memory required (default 128 Mi).
-	RequestMemory string `property:"request-memory" json:"requestMemory,omitempty"`
+	RequestMemory string `json:"requestMemory,omitempty" property:"request-memory"`
 	// The maximum amount of CPU to be provided (default 500 millicores).
-	LimitCPU string `property:"limit-cpu" json:"limitCPU,omitempty"`
+	LimitCPU string `json:"limitCPU,omitempty" property:"limit-cpu"`
 	// The maximum amount of memory to be provided (default 512 Mi).
-	LimitMemory string `property:"limit-memory" json:"limitMemory,omitempty"`
+	LimitMemory string `json:"limitMemory,omitempty" property:"limit-memory"`
 	// List of container ports available in the container (syntax: <port-name>;<port-number>[;port-protocol]).
 	// When omitted, `port-protocol` (admitted values `TCP`, `UDP` or `SCTP`) is `TCP`.
 	// Don't use this for the primary http managed port (for which case you need to use `portName` and `port`).
 	// Don't use in Knative based environments.
-	Ports []string `property:"ports" json:"ports,omitempty"`
+	Ports []string `json:"ports,omitempty" property:"ports"`
 	// Can be used to enable/disable http exposure via kubernetes Service.
-	Expose *bool `property:"expose" json:"expose,omitempty"`
+	Expose *bool `json:"expose,omitempty" property:"expose"`
 	// To configure a different http port exposed by the container (default `8080`).
-	Port int32 `property:"port" json:"port,omitempty"`
+	Port int32 `json:"port,omitempty" property:"port"`
 	// To configure a different http port name for the port exposed by the container.
 	// It defaults to `http` only when the `expose` parameter is true.
-	PortName string `property:"port-name" json:"portName,omitempty"`
+	PortName string `json:"portName,omitempty" property:"port-name"`
 	// To configure under which service port the http container port is to be exposed (default `80`).
-	ServicePort int32 `property:"service-port" json:"servicePort,omitempty"`
+	ServicePort int32 `json:"servicePort,omitempty" property:"service-port"`
 	// To configure under which service port name the http container port is to be exposed (default `http`).
-	ServicePortName string `property:"service-port-name" json:"servicePortName,omitempty"`
+	ServicePortName string `json:"servicePortName,omitempty" property:"service-port-name"`
 	// The main container name. It's named `integration` by default.
-	Name string `property:"name" json:"name,omitempty"`
+	Name string `json:"name,omitempty" property:"name"`
 	// The main container image to use for the Integration. When using this parameter the operator will create a synthetic IntegrationKit which
 	// won't be able to execute traits requiring CamelCatalog. If the container image you're using is coming from an IntegrationKit, use instead
 	// Integration `.spec.integrationKit` parameter. If you're moving the Integration across environments, you will also need to create an "external" IntegrationKit.
-	Image string `property:"image" json:"image,omitempty"`
+	Image string `json:"image,omitempty" property:"image"`
 	// The pull policy: Always|Never|IfNotPresent
 	// +kubebuilder:validation:Enum=Always;Never;IfNotPresent
-	ImagePullPolicy corev1.PullPolicy `property:"image-pull-policy" json:"imagePullPolicy,omitempty"`
+	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty" property:"image-pull-policy"`
 	// Security Context RunAsUser configuration (default none): this value is automatically retrieved in Openshift clusters when not explicitly set.
-	RunAsUser *int64 `property:"run-as-user" json:"runAsUser,omitempty"`
+	RunAsUser *int64 `json:"runAsUser,omitempty" property:"run-as-user"`
 	// Security Context RunAsNonRoot configuration (default false).
-	RunAsNonRoot *bool `property:"run-as-non-root" json:"runAsNonRoot,omitempty"`
+	RunAsNonRoot *bool `json:"runAsNonRoot,omitempty" property:"run-as-non-root"`
 	// Security Context SeccompProfileType configuration (default RuntimeDefault).
 	// +kubebuilder:validation:Enum=Unconfined;RuntimeDefault
-	SeccompProfileType corev1.SeccompProfileType `property:"seccomp-profile-type" json:"seccompProfileType,omitempty"`
+	SeccompProfileType corev1.SeccompProfileType `json:"seccompProfileType,omitempty" property:"seccomp-profile-type"`
 	// Security Context AllowPrivilegeEscalation configuration (default false).
-	AllowPrivilegeEscalation *bool `property:"allow-privilege-escalation" json:"allowPrivilegeEscalation,omitempty"`
+	AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty" property:"allow-privilege-escalation"`
 	// Security Context Capabilities Drop configuration (default ALL).
-	CapabilitiesDrop []corev1.Capability `property:"capabilities-drop" json:"capabilitiesDrop,omitempty"`
+	CapabilitiesDrop []corev1.Capability `json:"capabilitiesDrop,omitempty" property:"capabilities-drop"`
 	// Security Context Capabilities Add configuration (default none).
-	CapabilitiesAdd []corev1.Capability `property:"capabilities-add" json:"capabilitiesAdd,omitempty"`
+	CapabilitiesAdd []corev1.Capability `json:"capabilitiesAdd,omitempty" property:"capabilities-add"`
 }
diff --git a/pkg/apis/camel/v1/trait/cron.go b/pkg/apis/camel/v1/trait/cron.go
index c627ce306..b98b03734 100644
--- a/pkg/apis/camel/v1/trait/cron.go
+++ b/pkg/apis/camel/v1/trait/cron.go
@@ -38,40 +38,40 @@ package trait
 //
 // +camel-k:trait=cron.
 type CronTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// The CronJob schedule for the whole integration. If multiple routes are declared, they must have the same schedule for this
 	// mechanism to work correctly.
-	Schedule string `property:"schedule" json:"schedule,omitempty"`
+	Schedule string `json:"schedule,omitempty" property:"schedule"`
 	// The timezone that the CronJob will run on
-	TimeZone *string `property:"timeZone" json:"timeZone,omitempty"`
+	TimeZone *string `json:"timeZone,omitempty" property:"timeZone"`
 	// A comma separated list of the Camel components that need to be customized in order for them to work when the schedule is triggered externally by Kubernetes.
 	// Supported components are currently: `cron`, `timer` and `quartz`.
-	Components string `property:"components" json:"components,omitempty"`
+	Components string `json:"components,omitempty" property:"components"`
 	// Use the default Camel implementation of the `cron` endpoint (`quartz`) instead of trying to materialize the integration
 	// as Kubernetes CronJob.
-	Fallback *bool `property:"fallback" json:"fallback,omitempty"`
+	Fallback *bool `json:"fallback,omitempty" property:"fallback"`
 	// Specifies how to treat concurrent executions of a Job.
 	// Valid values are:
 	// - "Allow": allows CronJobs to run concurrently;
 	// - "Forbid" (default): forbids concurrent runs, skipping next run if previous run hasn't finished yet;
 	// - "Replace": cancels currently running job and replaces it with a new one
 	// +kubebuilder:validation:Enum=Allow;Forbid;Replace
-	ConcurrencyPolicy string `property:"concurrency-policy" json:"concurrencyPolicy,omitempty"`
+	ConcurrencyPolicy string `json:"concurrencyPolicy,omitempty" property:"concurrency-policy"`
 	// Automatically deploy the integration as CronJob when all routes are
 	// either starting from a periodic consumer (only `cron`, `timer` and `quartz` are supported) or a passive consumer (e.g. `direct` is a passive consumer).
 	//
 	// It's required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`,
 	// while `35m` or `50s` cannot).
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 	// Optional deadline in seconds for starting the job if it misses scheduled
 	// time for any reason.  Missed jobs executions will be counted as failed ones.
-	StartingDeadlineSeconds *int64 `property:"starting-deadline-seconds" json:"startingDeadlineSeconds,omitempty"`
+	StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds,omitempty" property:"starting-deadline-seconds"`
 	// Specifies the duration in seconds, relative to the start time, that the job
 	// may be continuously active before it is considered to be failed.
 	// It defaults to 60s.
-	ActiveDeadlineSeconds *int64 `property:"active-deadline-seconds" json:"activeDeadlineSeconds,omitempty"`
+	ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty" property:"active-deadline-seconds"`
 	// Specifies the number of retries before marking the job failed.
 	// It defaults to 2.
-	BackoffLimit *int32 `property:"backoff-limit" json:"backoffLimit,omitempty"`
+	BackoffLimit *int32 `json:"backoffLimit,omitempty" property:"backoff-limit"`
 }
diff --git a/pkg/apis/camel/v1/trait/dependencies.go b/pkg/apis/camel/v1/trait/dependencies.go
index 9dc294c9e..167df7990 100644
--- a/pkg/apis/camel/v1/trait/dependencies.go
+++ b/pkg/apis/camel/v1/trait/dependencies.go
@@ -23,5 +23,5 @@ package trait
 // +camel-k:trait=dependencies.
 // +camel-k:internal.
 type DependenciesTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 }
diff --git a/pkg/apis/camel/v1/trait/deployer.go b/pkg/apis/camel/v1/trait/deployer.go
index b272c0fde..e822adfbc 100644
--- a/pkg/apis/camel/v1/trait/deployer.go
+++ b/pkg/apis/camel/v1/trait/deployer.go
@@ -22,13 +22,13 @@ package trait
 //
 // +camel-k:trait=deployer.
 type DeployerTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// Deprecated: this feature will be removed in future releases.
 	// 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"`
+	Kind string `json:"kind,omitempty" property:"kind"`
 	// Deprecated: no longer in use.
-	UseSSA *bool `property:"use-ssa" json:"useSSA,omitempty"`
+	UseSSA *bool `json:"useSSA,omitempty" property:"use-ssa"`
 }
diff --git a/pkg/apis/camel/v1/trait/deployment.go b/pkg/apis/camel/v1/trait/deployment.go
index 624304244..86dd834da 100644
--- a/pkg/apis/camel/v1/trait/deployment.go
+++ b/pkg/apis/camel/v1/trait/deployment.go
@@ -27,25 +27,25 @@ import (
 //
 // +camel-k:trait=deployment.
 type DeploymentTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// 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"`
+	ProgressDeadlineSeconds *int32 `json:"progressDeadlineSeconds,omitempty" property:"progress-deadline-seconds"`
 	// The deployment strategy to use to replace existing pods with new ones.
 	// +kubebuilder:validation:Enum=Recreate;RollingUpdate
-	Strategy appsv1.DeploymentStrategyType `property:"strategy" json:"strategy,omitempty"`
+	Strategy appsv1.DeploymentStrategyType `json:"strategy,omitempty" property:"strategy"`
 	// The maximum number of pods that can be unavailable during the update.
 	// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
 	// Absolute number is calculated from percentage by rounding down.
 	// This can not be 0 if MaxSurge is 0.
 	// Defaults to `25%`.
-	RollingUpdateMaxUnavailable *intstr.IntOrString `property:"rolling-update-max-unavailable" json:"rollingUpdateMaxUnavailable,omitempty"`
+	RollingUpdateMaxUnavailable *intstr.IntOrString `json:"rollingUpdateMaxUnavailable,omitempty" property:"rolling-update-max-unavailable"`
 	// The maximum number of pods that can be scheduled above the desired number of
 	// pods.
 	// Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
 	// This can not be 0 if MaxUnavailable is 0.
 	// Absolute number is calculated from percentage by rounding up.
 	// Defaults to `25%`.
-	RollingUpdateMaxSurge *intstr.IntOrString `property:"rolling-update-max-surge" json:"rollingUpdateMaxSurge,omitempty"`
+	RollingUpdateMaxSurge *intstr.IntOrString `json:"rollingUpdateMaxSurge,omitempty" property:"rolling-update-max-surge"`
 }
diff --git a/pkg/apis/camel/v1/trait/environment.go b/pkg/apis/camel/v1/trait/environment.go
index b0dab6101..4f9dafd70 100644
--- a/pkg/apis/camel/v1/trait/environment.go
+++ b/pkg/apis/camel/v1/trait/environment.go
@@ -22,15 +22,15 @@ package trait
 //
 // +camel-k:trait=environment.
 type EnvironmentTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// Enables injection of `NAMESPACE` and `POD_NAME` environment variables (default `true`)
-	ContainerMeta *bool `property:"container-meta" json:"containerMeta,omitempty"`
+	ContainerMeta *bool `json:"containerMeta,omitempty" property:"container-meta"`
 	// Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment variables (default `true`)
-	HTTPProxy *bool `property:"http-proxy" json:"httpProxy,omitempty"`
+	HTTPProxy *bool `json:"httpProxy,omitempty" property:"http-proxy"`
 	// A list of environment variables to be added to the integration container.
 	// The syntax is either VAR=VALUE or VAR=[configmap|secret]:name/key, where name represents the resource name,
 	// and key represents the resource key to be mapped as and environment variable.
 	// These take precedence over any previously defined environment variables.
-	Vars []string `property:"vars" json:"vars,omitempty"`
+	Vars []string `json:"vars,omitempty" property:"vars"`
 }
diff --git a/pkg/apis/camel/v1/trait/error_handler.go b/pkg/apis/camel/v1/trait/error_handler.go
index c032eaf24..4670522b4 100644
--- a/pkg/apis/camel/v1/trait/error_handler.go
+++ b/pkg/apis/camel/v1/trait/error_handler.go
@@ -24,8 +24,8 @@ package trait
 // +camel-k:trait=error-handler.
 // +camel-k:internal.
 type ErrorHandlerTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// The error handler ref name provided or found in application properties
-	ErrorHandlerRef string `property:"ref" json:"ref,omitempty"`
+	ErrorHandlerRef string `json:"ref,omitempty" property:"ref"`
 }
diff --git a/pkg/apis/camel/v1/trait/gc.go b/pkg/apis/camel/v1/trait/gc.go
index 37bb46801..799e55f3b 100644
--- a/pkg/apis/camel/v1/trait/gc.go
+++ b/pkg/apis/camel/v1/trait/gc.go
@@ -22,11 +22,11 @@ package trait
 // +camel-k:trait=gc.
 // +camel-k:internal.
 type GCTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Discovery client cache to be used, either `disabled`, `disk` or `memory` (default `memory`).
 	// Deprecated: no longer in use.
-	DiscoveryCache *DiscoveryCacheType `property:"discovery-cache" json:"discoveryCache,omitempty"`
+	DiscoveryCache *DiscoveryCacheType `json:"discoveryCache,omitempty" property:"discovery-cache"`
 }
 
 // +kubebuilder:validation:Enum=disabled;disk;memory
diff --git a/pkg/apis/camel/v1/trait/health.go b/pkg/apis/camel/v1/trait/health.go
index c216672e9..35e6c08c9 100644
--- a/pkg/apis/camel/v1/trait/health.go
+++ b/pkg/apis/camel/v1/trait/health.go
@@ -23,62 +23,62 @@ package trait
 //
 // +camel-k:trait=health.
 type HealthTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Configures the liveness probe for the integration container (default `false`).
-	LivenessProbeEnabled *bool `property:"liveness-probe-enabled" json:"livenessProbeEnabled,omitempty"`
+	LivenessProbeEnabled *bool `json:"livenessProbeEnabled,omitempty" property:"liveness-probe-enabled"`
 	// Scheme to use when connecting to the liveness probe (default `HTTP`).
-	LivenessScheme string `property:"liveness-scheme" json:"livenessScheme,omitempty"`
+	LivenessScheme string `json:"livenessScheme,omitempty" property:"liveness-scheme"`
 	// Number of seconds after the container has started before the liveness probe is initiated.
-	LivenessInitialDelay int32 `property:"liveness-initial-delay" json:"livenessInitialDelay,omitempty"`
+	LivenessInitialDelay int32 `json:"livenessInitialDelay,omitempty" property:"liveness-initial-delay"`
 	// Number of seconds after which the liveness probe times out.
-	LivenessTimeout int32 `property:"liveness-timeout" json:"livenessTimeout,omitempty"`
+	LivenessTimeout int32 `json:"livenessTimeout,omitempty" property:"liveness-timeout"`
 	// How often to perform the liveness probe.
-	LivenessPeriod int32 `property:"liveness-period" json:"livenessPeriod,omitempty"`
+	LivenessPeriod int32 `json:"livenessPeriod,omitempty" property:"liveness-period"`
 	// Minimum consecutive successes for the liveness probe to be considered successful after having failed.
-	LivenessSuccessThreshold int32 `property:"liveness-success-threshold" json:"livenessSuccessThreshold,omitempty"`
+	LivenessSuccessThreshold int32 `json:"livenessSuccessThreshold,omitempty" property:"liveness-success-threshold"`
 	// Minimum consecutive failures for the liveness probe to be considered failed after having succeeded.
-	LivenessFailureThreshold int32 `property:"liveness-failure-threshold" json:"livenessFailureThreshold,omitempty"`
+	LivenessFailureThreshold int32 `json:"livenessFailureThreshold,omitempty" property:"liveness-failure-threshold"`
 	// The liveness probe path to use (default provided by the Catalog runtime used).
-	LivenessProbe string `property:"liveness-probe" json:"livenessProbe,omitempty"`
+	LivenessProbe string `json:"livenessProbe,omitempty" property:"liveness-probe"`
 	// The liveness port to use (default 8080).
-	LivenessPort int32 `property:"liveness-port" json:"livenessPort,omitempty"`
+	LivenessPort int32 `json:"livenessPort,omitempty" property:"liveness-port"`
 
 	// Configures the readiness probe for the integration container (default `true`).
-	ReadinessProbeEnabled *bool `property:"readiness-probe-enabled" json:"readinessProbeEnabled,omitempty"`
+	ReadinessProbeEnabled *bool `json:"readinessProbeEnabled,omitempty" property:"readiness-probe-enabled"`
 	// Scheme to use when connecting to the readiness probe (default `HTTP`).
-	ReadinessScheme string `property:"readiness-scheme" json:"readinessScheme,omitempty"`
+	ReadinessScheme string `json:"readinessScheme,omitempty" property:"readiness-scheme"`
 	// Number of seconds after the container has started before the readiness probe is initiated.
-	ReadinessInitialDelay int32 `property:"readiness-initial-delay" json:"readinessInitialDelay,omitempty"`
+	ReadinessInitialDelay int32 `json:"readinessInitialDelay,omitempty" property:"readiness-initial-delay"`
 	// Number of seconds after which the readiness probe times out.
-	ReadinessTimeout int32 `property:"readiness-timeout" json:"readinessTimeout,omitempty"`
+	ReadinessTimeout int32 `json:"readinessTimeout,omitempty" property:"readiness-timeout"`
 	// How often to perform the readiness probe.
-	ReadinessPeriod int32 `property:"readiness-period" json:"readinessPeriod,omitempty"`
+	ReadinessPeriod int32 `json:"readinessPeriod,omitempty" property:"readiness-period"`
 	// Minimum consecutive successes for the readiness probe to be considered successful after having failed.
-	ReadinessSuccessThreshold int32 `property:"readiness-success-threshold" json:"readinessSuccessThreshold,omitempty"`
+	ReadinessSuccessThreshold int32 `json:"readinessSuccessThreshold,omitempty" property:"readiness-success-threshold"`
 	// Minimum consecutive failures for the readiness probe to be considered failed after having succeeded.
-	ReadinessFailureThreshold int32 `property:"readiness-failure-threshold" json:"readinessFailureThreshold,omitempty"`
+	ReadinessFailureThreshold int32 `json:"readinessFailureThreshold,omitempty" property:"readiness-failure-threshold"`
 	// The readiness probe path to use (default provided by the Catalog runtime used).
-	ReadinessProbe string `property:"readiness-probe" json:"readinessProbe,omitempty"`
+	ReadinessProbe string `json:"readinessProbe,omitempty" property:"readiness-probe"`
 	// The readiness port to use (default 8080).
-	ReadinessPort int32 `property:"readiness-port" json:"readinessPort,omitempty"`
+	ReadinessPort int32 `json:"readinessPort,omitempty" property:"readiness-port"`
 
 	// Configures the startup probe for the integration container (default `false`).
-	StartupProbeEnabled *bool `property:"startup-probe-enabled" json:"startupProbeEnabled,omitempty"`
+	StartupProbeEnabled *bool `json:"startupProbeEnabled,omitempty" property:"startup-probe-enabled"`
 	// Scheme to use when connecting to the startup probe (default `HTTP`).
-	StartupScheme string `property:"startup-scheme" json:"startupScheme,omitempty"`
+	StartupScheme string `json:"startupScheme,omitempty" property:"startup-scheme"`
 	// Number of seconds after the container has started before the startup probe is initiated.
-	StartupInitialDelay int32 `property:"startup-initial-delay" json:"startupInitialDelay,omitempty"`
+	StartupInitialDelay int32 `json:"startupInitialDelay,omitempty" property:"startup-initial-delay"`
 	// Number of seconds after which the startup probe times out.
-	StartupTimeout int32 `property:"startup-timeout" json:"startupTimeout,omitempty"`
+	StartupTimeout int32 `json:"startupTimeout,omitempty" property:"startup-timeout"`
 	// How often to perform the startup probe.
-	StartupPeriod int32 `property:"startup-period" json:"startupPeriod,omitempty"`
+	StartupPeriod int32 `json:"startupPeriod,omitempty" property:"startup-period"`
 	// Minimum consecutive successes for the startup probe to be considered successful after having failed.
-	StartupSuccessThreshold int32 `property:"startup-success-threshold" json:"startupSuccessThreshold,omitempty"`
+	StartupSuccessThreshold int32 `json:"startupSuccessThreshold,omitempty" property:"startup-success-threshold"`
 	// Minimum consecutive failures for the startup probe to be considered failed after having succeeded.
-	StartupFailureThreshold int32 `property:"startup-failure-threshold" json:"startupFailureThreshold,omitempty"`
+	StartupFailureThreshold int32 `json:"startupFailureThreshold,omitempty" property:"startup-failure-threshold"`
 	// The startup probe path to use (default provided by the Catalog runtime used).
-	StartupProbe string `property:"startup-probe" json:"startupProbe,omitempty"`
+	StartupProbe string `json:"startupProbe,omitempty" property:"startup-probe"`
 	// The startup port to use (default 8080).
-	StartupPort int32 `property:"startup-port" json:"startupPort,omitempty"`
+	StartupPort int32 `json:"startupPort,omitempty" property:"startup-port"`
 }
diff --git a/pkg/apis/camel/v1/trait/ingress.go b/pkg/apis/camel/v1/trait/ingress.go
index 6c416fd4c..354ed0172 100644
--- a/pkg/apis/camel/v1/trait/ingress.go
+++ b/pkg/apis/camel/v1/trait/ingress.go
@@ -26,30 +26,30 @@ import networkingv1 "k8s.io/api/networking/v1"
 //
 // +camel-k:trait=ingress.
 type IngressTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// The Ingress class name as defined by the Ingress spec
 	// See https://kubernetes.io/docs/concepts/services-networking/ingress/
-	IngressClassName string `property:"ingress-class-name" json:"ingressClassName,omitempty"`
+	IngressClassName string `json:"ingressClassName,omitempty" property:"ingress-class-name"`
 	// The annotations added to the ingress.
 	// This can be used to set controller specific annotations, e.g., when using the NGINX Ingress controller:
 	// See https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
-	Annotations map[string]string `property:"annotations" json:"annotations,omitempty"`
+	Annotations map[string]string `json:"annotations,omitempty" property:"annotations"`
 	// To configure the host exposed by the ingress.
-	Host string `property:"host" json:"host,omitempty"`
+	Host string `json:"host,omitempty" property:"host"`
 	// To configure the path exposed by the ingress (default `/`).
 	// Deprecated: In favor of `paths` - left for backward compatibility.
-	Path string `property:"path" json:"path,omitempty"`
+	Path string `json:"path,omitempty" property:"path"`
 	// To configure the paths exposed by the ingress (default `['/']`).
-	Paths []string `property:"paths" json:"paths,omitempty"`
+	Paths []string `json:"paths,omitempty" property:"paths"`
 	// To configure the path type exposed by the ingress.
 	// One of `Exact`, `Prefix`, `ImplementationSpecific` (default to `Prefix`).
 	// +kubebuilder:validation:Enum=Exact;Prefix;ImplementationSpecific
-	PathType *networkingv1.PathType `property:"path-type" json:"pathType,omitempty"`
+	PathType *networkingv1.PathType `json:"pathType,omitempty" property:"path-type"`
 	// To automatically add an ingress whenever the integration uses an HTTP endpoint consumer.
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 	// To configure tls hosts
-	TLSHosts []string `property:"tls-hosts" json:"tlsHosts,omitempty"`
+	TLSHosts []string `json:"tlsHosts,omitempty" property:"tls-hosts"`
 	// To configure tls secret name
-	TLSSecretName string `property:"tls-secret-name" json:"tlsSecretName,omitempty"`
+	TLSSecretName string `json:"tlsSecretName,omitempty" property:"tls-secret-name"`
 }
diff --git a/pkg/apis/camel/v1/trait/init_containers.go b/pkg/apis/camel/v1/trait/init_containers.go
index 7f25c0d2c..bbb0272b0 100644
--- a/pkg/apis/camel/v1/trait/init_containers.go
+++ b/pkg/apis/camel/v1/trait/init_containers.go
@@ -21,10 +21,10 @@ package trait
 //
 // +camel-k:trait=init-containers.
 type InitContainersTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// A list of init tasks to be executed with format `<name>;<container-image>;<container-command>`.
-	InitTasks []string `property:"init-tasks" json:"initTasks,omitempty"`
+	InitTasks []string `json:"initTasks,omitempty" property:"init-tasks"`
 	// A list of sidecar tasks to be executed with format `<name>;<container-image>;<container-command>`.
-	SidecarTasks []string `property:"sidecar-tasks" json:"sideCarTasks,omitempty"`
+	SidecarTasks []string `json:"sideCarTasks,omitempty" property:"sidecar-tasks"`
 }
diff --git a/pkg/apis/camel/v1/trait/istio.go b/pkg/apis/camel/v1/trait/istio.go
index 7e7b5d7b0..3164a3a5c 100644
--- a/pkg/apis/camel/v1/trait/istio.go
+++ b/pkg/apis/camel/v1/trait/istio.go
@@ -22,10 +22,10 @@ package trait
 //
 // +camel-k:trait=istio.
 type IstioTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Configures a (comma-separated) list of CIDR subnets that should not be intercepted by the Istio proxy (`10.0.0.0/8,172.16.0.0/12,192.168.0.0/16` by default).
-	Allow string `property:"allow" json:"allow,omitempty"`
+	Allow string `json:"allow,omitempty" property:"allow"`
 	// Forces the value for labels `sidecar.istio.io/inject`. By default the label is set to `true` on deployment and not set on Knative Service.
-	Inject *bool `property:"inject" json:"inject,omitempty"`
+	Inject *bool `json:"inject,omitempty" property:"inject"`
 }
diff --git a/pkg/apis/camel/v1/trait/jolokia.go b/pkg/apis/camel/v1/trait/jolokia.go
index beed6c964..bf45d36fd 100644
--- a/pkg/apis/camel/v1/trait/jolokia.go
+++ b/pkg/apis/camel/v1/trait/jolokia.go
@@ -29,36 +29,36 @@ package trait
 // +camel-k:trait=jolokia.
 // +camel-k:deprecated=2.8.0.
 type JolokiaTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// The PEM encoded CA certification file path, used to verify client certificates,
 	// applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true`
 	// (default `/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt` for OpenShift).
-	CaCert *string `property:"ca-cert" json:"CACert,omitempty"`
+	CaCert *string `json:"CACert,omitempty" property:"ca-cert"`
 	// The principal(s) which must be given in a client certificate to allow access to the Jolokia endpoint,
 	// applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true`
 	// (default `clientPrincipal=cn=system:master-proxy`, `cn=hawtio-online.hawtio.svc` and `cn=fuse-console.fuse.svc` for OpenShift).
-	ClientPrincipal []string `property:"client-principal" json:"clientPrincipal,omitempty"`
+	ClientPrincipal []string `json:"clientPrincipal,omitempty" property:"client-principal"`
 	// Listen for multicast requests (default `false`)
-	DiscoveryEnabled *bool `property:"discovery-enabled" json:"discoveryEnabled,omitempty"`
+	DiscoveryEnabled *bool `json:"discoveryEnabled,omitempty" property:"discovery-enabled"`
 	// Mandate the client certificate contains a client flag in the extended key usage section,
 	// applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true`
 	// (default `true` for OpenShift).
-	ExtendedClientCheck *bool `property:"extended-client-check" json:"extendedClientCheck,omitempty"`
+	ExtendedClientCheck *bool `json:"extendedClientCheck,omitempty" property:"extended-client-check"`
 	// The Host address to which the Jolokia agent should bind to. If `"\*"` or `"0.0.0.0"` is given,
 	// the servers binds to every network interface (default `"*"`).
-	Host *string `property:"host" json:"host,omitempty"`
+	Host *string `json:"host,omitempty" property:"host"`
 	// The password used for authentication, applicable when the `user` option is set.
-	Password *string `property:"password" json:"password,omitempty"`
+	Password *string `json:"password,omitempty" property:"password"`
 	// The Jolokia endpoint port (default `8778`).
-	Port int32 `property:"port" json:"port,omitempty"`
+	Port int32 `json:"port,omitempty" property:"port"`
 	// The protocol to use, either `http` or `https` (default `https` for OpenShift)
-	Protocol *string `property:"protocol" json:"protocol,omitempty"`
+	Protocol *string `json:"protocol,omitempty" property:"protocol"`
 	// The user to be used for authentication
-	User *string `property:"user" json:"user,omitempty"`
+	User *string `json:"user,omitempty" property:"user"`
 	// Whether client certificates should be used for authentication (default `true` for OpenShift).
-	UseSslClientAuthentication *bool `property:"use-ssl-client-authentication" json:"useSSLClientAuthentication,omitempty"`
+	UseSslClientAuthentication *bool `json:"useSSLClientAuthentication,omitempty" property:"use-ssl-client-authentication"`
 	// A list of additional Jolokia options as defined
 	// in https://jolokia.org/reference/html/agents.html#agent-jvm-config[JVM agent configuration options]
-	Options []string `property:"options" json:"options,omitempty"`
+	Options []string `json:"options,omitempty" property:"options"`
 }
diff --git a/pkg/apis/camel/v1/trait/jvm.go b/pkg/apis/camel/v1/trait/jvm.go
index 76482fbf3..5ce4353c8 100644
--- a/pkg/apis/camel/v1/trait/jvm.go
+++ b/pkg/apis/camel/v1/trait/jvm.go
@@ -23,23 +23,23 @@ package trait
 //
 // +camel-k:trait=jvm.
 type JVMTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// 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"`
+	Debug *bool `json:"debug,omitempty" property:"debug"`
 	// Suspends the target JVM immediately before the main class is loaded
-	DebugSuspend *bool `property:"debug-suspend" json:"debugSuspend,omitempty"`
+	DebugSuspend *bool `json:"debugSuspend,omitempty" property:"debug-suspend"`
 	// Prints the command used the start the JVM in the container logs (default `true`)
 	// Deprecated: no longer in use.
-	PrintCommand *bool `property:"print-command" json:"printCommand,omitempty"`
+	PrintCommand *bool `json:"printCommand,omitempty" property:"print-command"`
 	// Transport address at which to listen for the newly launched JVM (default `*:5005`)
-	DebugAddress string `property:"debug-address" json:"debugAddress,omitempty"`
+	DebugAddress string `json:"debugAddress,omitempty" property:"debug-address"`
 	// A list of JVM options
-	Options []string `property:"options" json:"options,omitempty"`
+	Options []string `json:"options,omitempty" property:"options"`
 	// Additional JVM classpath (use `Linux` classpath separator)
-	Classpath string `property:"classpath" json:"classpath,omitempty"`
+	Classpath string `json:"classpath,omitempty" property:"classpath"`
 	// The Jar dependency which will run the application. Leave it empty for managed Integrations.
-	Jar string `property:"jar" json:"jar,omitempty"`
+	Jar string `json:"jar,omitempty" property:"jar"`
 	// A list of JVM agents to download and execute with format `<agent-name>;<agent-url>[;<jvm-agent-options>]`.
-	Agents []string `property:"agents" json:"agents,omitempty"`
+	Agents []string `json:"agents,omitempty" property:"agents"`
 }
diff --git a/pkg/apis/camel/v1/trait/kamelets.go b/pkg/apis/camel/v1/trait/kamelets.go
index 79865da14..9b7d6bfd5 100644
--- a/pkg/apis/camel/v1/trait/kamelets.go
+++ b/pkg/apis/camel/v1/trait/kamelets.go
@@ -21,12 +21,12 @@ package trait
 //
 // +camel-k:trait=kamelets.
 type KameletsTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Automatically inject all referenced Kamelets and their default configuration (enabled by default)
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 	// Comma separated list of Kamelet names to load into the current integration
-	List string `property:"list" json:"list,omitempty"`
+	List string `json:"list,omitempty" property:"list"`
 	// The directory where the application mounts and reads Kamelet spec (default `/etc/camel/kamelets`)
-	MountPoint string `property:"mount-point" json:"mountPoint,omitempty"`
+	MountPoint string `json:"mountPoint,omitempty" property:"mount-point"`
 }
diff --git a/pkg/apis/camel/v1/trait/keda.go b/pkg/apis/camel/v1/trait/keda.go
index 828a250dd..e1bcb8335 100644
--- a/pkg/apis/camel/v1/trait/keda.go
+++ b/pkg/apis/camel/v1/trait/keda.go
@@ -21,36 +21,36 @@ package trait
 //
 // +camel-k:trait=keda.
 type KedaTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Interval (seconds) to check each trigger on.
-	PollingInterval *int32 `property:"polling-interval" json:"pollingInterval,omitempty"`
+	PollingInterval *int32 `json:"pollingInterval,omitempty" property:"polling-interval"`
 	// The wait period between the last active trigger reported and scaling the resource back to 0.
-	CooldownPeriod *int32 `property:"cooldown-period" json:"cooldownPeriod,omitempty"`
+	CooldownPeriod *int32 `json:"cooldownPeriod,omitempty" property:"cooldown-period"`
 	// Enabling this property allows KEDA to scale the resource down to the specified number of replicas.
-	IdleReplicaCount *int32 `property:"idle-replica-count" json:"idleReplicaCount,omitempty"`
+	IdleReplicaCount *int32 `json:"idleReplicaCount,omitempty" property:"idle-replica-count"`
 	// Minimum number of replicas.
-	MinReplicaCount *int32 `property:"min-replica-count" json:"minReplicaCount,omitempty"`
+	MinReplicaCount *int32 `json:"minReplicaCount,omitempty" property:"min-replica-count"`
 	// Maximum number of replicas.
-	MaxReplicaCount *int32 `property:"max-replica-count" json:"maxReplicaCount,omitempty"`
+	MaxReplicaCount *int32 `json:"maxReplicaCount,omitempty" property:"max-replica-count"`
 	// Definition of triggers according to the KEDA format. Each trigger must contain `type` field corresponding
 	// to the name of a KEDA autoscaler and a key/value map named `metadata` containing specific trigger options
 	// and optionally a mapping of secrets, used by Keda operator to poll resources according to the autoscaler type.
-	Triggers []KedaTrigger `property:"triggers" json:"triggers,omitempty"`
+	Triggers []KedaTrigger `json:"triggers,omitempty" property:"triggers"`
 }
 
 type KedaTrigger struct {
 	// The autoscaler type.
-	Type string `property:"type" json:"type,omitempty"`
+	Type string `json:"type,omitempty" property:"type"`
 	// The trigger metadata (see Keda documentation to learn how to fill for each type).
-	Metadata map[string]string `property:"metadata" json:"metadata,omitempty"`
+	Metadata map[string]string `json:"metadata,omitempty" property:"metadata"`
 	// The secrets mapping to use. Keda allows the possibility to use values coming from different secrets.
-	Secrets []*KedaSecret `property:"secrets" json:"secrets,omitempty"`
+	Secrets []*KedaSecret `json:"secrets,omitempty" property:"secrets"`
 }
 
 type KedaSecret struct {
 	// The name of the secret to use.
-	Name string `property:"name" json:"name,omitempty"`
+	Name string `json:"name,omitempty" property:"name"`
 	// The mapping to use for this secret (eg, `database-secret-key:keda-secret-key`)
-	Mapping map[string]string `property:"mapping" json:"mapping,omitempty"`
+	Mapping map[string]string `json:"mapping,omitempty" property:"mapping"`
 }
diff --git a/pkg/apis/camel/v1/trait/knative.go b/pkg/apis/camel/v1/trait/knative.go
index 3f401d61f..a5fd5d7d5 100644
--- a/pkg/apis/camel/v1/trait/knative.go
+++ b/pkg/apis/camel/v1/trait/knative.go
@@ -26,47 +26,47 @@ package trait
 //
 // +camel-k:trait=knative.
 type KnativeTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Can be used to inject a Knative complete configuration in JSON format.
-	Configuration string `property:"configuration" json:"config,omitempty"`
+	Configuration string `json:"config,omitempty" property:"configuration"`
 	// List of channels used as source of integration routes.
 	// Can contain simple channel names or full Camel URIs.
-	ChannelSources []string `property:"channel-sources" json:"channelSources,omitempty"`
+	ChannelSources []string `json:"channelSources,omitempty" property:"channel-sources"`
 	// List of channels used as destination of integration routes.
 	// Can contain simple channel names or full Camel URIs.
-	ChannelSinks []string `property:"channel-sinks" json:"channelSinks,omitempty"`
+	ChannelSinks []string `json:"channelSinks,omitempty" property:"channel-sinks"`
 	// List of channels used as source of integration routes.
-	EndpointSources []string `property:"endpoint-sources" json:"endpointSources,omitempty"`
+	EndpointSources []string `json:"endpointSources,omitempty" property:"endpoint-sources"`
 	// List of endpoints used as destination of integration routes.
 	// Can contain simple endpoint names or full Camel URIs.
-	EndpointSinks []string `property:"endpoint-sinks" json:"endpointSinks,omitempty"`
+	EndpointSinks []string `json:"endpointSinks,omitempty" property:"endpoint-sinks"`
 	// List of event types that the integration will be subscribed to.
 	// Can contain simple event types or full Camel URIs (to use a specific broker different from "default").
-	EventSources []string `property:"event-sources" json:"eventSources,omitempty"`
+	EventSources []string `json:"eventSources,omitempty" property:"event-sources"`
 	// List of event types that the integration will produce.
 	// Can contain simple event types or full Camel URIs (to use a specific broker).
-	EventSinks []string `property:"event-sinks" json:"eventSinks,omitempty"`
+	EventSinks []string `json:"eventSinks,omitempty" property:"event-sinks"`
 	// Enables filtering on events based on the header "ce-knativehistory". Since this header has been removed in newer versions of
 	// Knative, filtering is disabled by default.
-	FilterSourceChannels *bool `property:"filter-source-channels" json:"filterSourceChannels,omitempty"`
+	FilterSourceChannels *bool `json:"filterSourceChannels,omitempty" property:"filter-source-channels"`
 	// Allows binding the integration to a sink via a Knative SinkBinding resource.
 	// This can be used when the integration targets a single sink.
 	// It's enabled by default when the integration targets a single sink
 	// (except when the integration is owned by a Knative source).
-	SinkBinding *bool `property:"sink-binding" json:"sinkBinding,omitempty"`
+	SinkBinding *bool `json:"sinkBinding,omitempty" property:"sink-binding"`
 	// Enable automatic discovery of all trait properties.
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 	// Enables the camel-k-operator to set the "bindings.knative.dev/include=true" label to the namespace
 	// As Knative requires this label to perform injection of K_SINK URL into the service.
 	// If this is false, the integration pod may start and fail, read the SinkBinding Knative documentation. (default: true)
-	NamespaceLabel *bool `property:"namespace-label" json:"namespaceLabel,omitempty"`
+	NamespaceLabel *bool `json:"namespaceLabel,omitempty" property:"namespace-label"`
 	// Sets filter attributes on the event stream (such as event type, source, subject and so on).
 	// A list of key-value pairs that represent filter attributes and its values.
 	// The syntax is KEY=VALUE, e.g., `source="my.source"`.
 	// Filter attributes get set on the Knative trigger that is being created as part of this integration.
-	Filters []string `property:"filters" json:"filters,omitempty"`
+	Filters []string `json:"filters,omitempty" property:"filters"`
 	// Enables the default filtering for the Knative trigger using the event type
 	// If this is true, the created Knative trigger uses the event type as a filter on the event stream when no other filter criteria is given. (default: true)
-	FilterEventType *bool `property:"filter-event-type" json:"filterEventType,omitempty"`
+	FilterEventType *bool `json:"filterEventType,omitempty" property:"filter-event-type"`
 }
diff --git a/pkg/apis/camel/v1/trait/knative_service.go b/pkg/apis/camel/v1/trait/knative_service.go
index f2ef9fb93..ffe44b25a 100644
--- a/pkg/apis/camel/v1/trait/knative_service.go
+++ b/pkg/apis/camel/v1/trait/knative_service.go
@@ -25,53 +25,53 @@ package trait
 //
 // +camel-k:trait=knative-service.
 type KnativeServiceTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// The annotations added to route.
 	// This can be used to set knative service specific annotations
 	// CLI usage example: -t "knative-service.annotations.'haproxy.router.openshift.io/balance'=true"
-	Annotations map[string]string `property:"annotations" json:"annotations,omitempty"`
+	Annotations map[string]string `json:"annotations,omitempty" property:"annotations"`
 	// Configures the Knative autoscaling class property (e.g. to set `hpa.autoscaling.knative.dev` or `kpa.autoscaling.knative.dev` autoscaling).
 	//
 	// Refer to the Knative documentation for more information.
 	// +kubebuilder:validation:Enum=kpa.autoscaling.knative.dev;hpa.autoscaling.knative.dev
-	Class string `property:"autoscaling-class" json:"class,omitempty"`
+	Class string `json:"class,omitempty" property:"autoscaling-class"`
 	// Configures the Knative autoscaling metric property (e.g. to set `concurrency` based or `cpu` based autoscaling).
 	//
 	// Refer to the Knative documentation for more information.
-	Metric string `property:"autoscaling-metric" json:"autoscalingMetric,omitempty"`
+	Metric string `json:"autoscalingMetric,omitempty" property:"autoscaling-metric"`
 	// Sets the allowed concurrency level or CPU percentage (depending on the autoscaling metric) for each Pod.
 	//
 	// Refer to the Knative documentation for more information.
-	Target *int `property:"autoscaling-target" json:"autoscalingTarget,omitempty"`
+	Target *int `json:"autoscalingTarget,omitempty" property:"autoscaling-target"`
 	// The minimum number of Pods that should be running at any time for the integration. It's **zero** by default, meaning that
 	// the integration is scaled down to zero when not used for a configured amount of time.
 	//
 	// Refer to the Knative documentation for more information.
-	MinScale *int `property:"min-scale" json:"minScale,omitempty"`
+	MinScale *int `json:"minScale,omitempty" property:"min-scale"`
 	// An upper bound for the number of Pods that can be running in parallel for the integration.
 	// Knative has its own cap value that depends on the installation.
 	//
 	// Refer to the Knative documentation for more information.
-	MaxScale *int `property:"max-scale" json:"maxScale,omitempty"`
+	MaxScale *int `json:"maxScale,omitempty" property:"max-scale"`
 	// Enables to gradually shift traffic to the latest Revision and sets the rollout duration.
 	// It's disabled by default and must be expressed as a Golang `time.Duration` string representation,
 	// rounded to a second precision.
-	RolloutDuration string `property:"rollout-duration" json:"rolloutDuration,omitempty"`
+	RolloutDuration string `json:"rolloutDuration,omitempty" property:"rollout-duration"`
 	// Setting `cluster-local`, Knative service becomes a private service.
 	// Specifically, this option applies the `networking.knative.dev/visibility` label to Knative service.
 	//
 	// Refer to the Knative documentation for more information.
 	// +kubebuilder:validation:Enum=cluster-local
-	Visibility string `property:"visibility" json:"visibility,omitempty"`
+	Visibility string `json:"visibility,omitempty" property:"visibility"`
 	// Automatically deploy the integration as Knative service when all conditions hold:
 	//
 	// * Integration is using the Knative profile
 	// * All routes are either starting from an HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer)
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 	// The maximum duration in seconds that the request instance is allowed to respond to a request.
 	// This field propagates to the integration pod's terminationGracePeriodSeconds
 	//
 	// Refer to the Knative documentation for more information.
-	TimeoutSeconds *int64 `property:"timeout-seconds" json:"timeoutSeconds,omitempty"`
+	TimeoutSeconds *int64 `json:"timeoutSeconds,omitempty" property:"timeout-seconds"`
 }
diff --git a/pkg/apis/camel/v1/trait/logging.go b/pkg/apis/camel/v1/trait/logging.go
index 272d70513..a6738b494 100644
--- a/pkg/apis/camel/v1/trait/logging.go
+++ b/pkg/apis/camel/v1/trait/logging.go
@@ -22,17 +22,17 @@ package trait
 //
 // +camel-k:trait=logging.
 type LoggingTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Colorize the log output
-	Color *bool `property:"color" json:"color,omitempty"`
+	Color *bool `json:"color,omitempty" property:"color"`
 	// Logs message format
-	Format string `property:"format" json:"format,omitempty"`
+	Format string `json:"format,omitempty" property:"format"`
 	// Adjust the logging level (defaults to `INFO`)
 	// +kubebuilder:validation:Enum=FATAL;WARN;INFO;DEBUG;TRACE
-	Level string `property:"level" json:"level,omitempty"`
+	Level string `json:"level,omitempty" property:"level"`
 	// Output the logs in JSON
-	JSON *bool `property:"json" json:"json,omitempty"`
+	JSON *bool `json:"json,omitempty" property:"json"`
 	// Enable "pretty printing" of the JSON logs
-	JSONPrettyPrint *bool `property:"json-pretty-print" json:"jsonPrettyPrint,omitempty"`
+	JSONPrettyPrint *bool `json:"jsonPrettyPrint,omitempty" property:"json-pretty-print"`
 }
diff --git a/pkg/apis/camel/v1/trait/master.go b/pkg/apis/camel/v1/trait/master.go
index 83ca09d74..9a08bb378 100644
--- a/pkg/apis/camel/v1/trait/master.go
+++ b/pkg/apis/camel/v1/trait/master.go
@@ -27,21 +27,21 @@ package trait
 //
 // +camel-k:trait=master.
 type MasterTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Enables automatic configuration of the trait.
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 	// When this flag is active, the operator analyzes the source code to add dependencies required by delegate endpoints.
 	// E.g. when using `master:lockname:timer`, then `camel:timer` is automatically added to the set of dependencies.
 	// It's enabled by default.
-	IncludeDelegateDependencies *bool `property:"include-delegate-dependencies" json:"includeDelegateDependencies,omitempty"`
+	IncludeDelegateDependencies *bool `json:"includeDelegateDependencies,omitempty" property:"include-delegate-dependencies"`
 	// Name of the configmap that will be used to store the lock. Defaults to "<integration-name>-lock".
 	// Name of the configmap/lease resource that will be used to store the lock. Defaults to "<integration-name>-lock".
-	ResourceName *string `property:"resource-name" json:"resourceName,omitempty"`
+	ResourceName *string `json:"resourceName,omitempty" property:"resource-name"`
 	// Type of Kubernetes resource to use for locking ("ConfigMap" or "Lease"). Defaults to "Lease".
-	ResourceType *string `property:"resource-type" json:"resourceType,omitempty"`
+	ResourceType *string `json:"resourceType,omitempty" property:"resource-type"`
 	// Label that will be used to identify all pods contending the lock. Defaults to "camel.apache.org/integration".
-	LabelKey *string `property:"label-key" json:"labelKey,omitempty"`
+	LabelKey *string `json:"labelKey,omitempty" property:"label-key"`
 	// Label value that will be used to identify all pods contending the lock. Defaults to the integration name.
-	LabelValue *string `property:"label-value" json:"labelValue,omitempty"`
+	LabelValue *string `json:"labelValue,omitempty" property:"label-value"`
 }
diff --git a/pkg/apis/camel/v1/trait/mount.go b/pkg/apis/camel/v1/trait/mount.go
index 9c3930ff3..882d7e32c 100644
--- a/pkg/apis/camel/v1/trait/mount.go
+++ b/pkg/apis/camel/v1/trait/mount.go
@@ -21,29 +21,29 @@ package trait
 //
 // +camel-k:trait=mount.
 type MountTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// 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.
 	// Syntax: [configmap|secret]:name[/key], where name represents the resource name and key optionally represents the resource key to be filtered
-	Configs []string `property:"configs" json:"configs,omitempty"`
+	Configs []string `json:"configs,omitempty" property:"configs"`
 	// A list of resources (text or binary content) pointing to configmap/secret.
 	// The resources are expected to be any resource type (text or binary content).
 	// The destination path can be either a default location or any path specified by the user.
 	// Syntax: [configmap|secret]:name[/key][@path], where name represents the resource name, key optionally represents the resource key to be filtered and path represents the destination path
-	Resources []string `property:"resources" json:"resources,omitempty"`
+	Resources []string `json:"resources,omitempty" property:"resources"`
 	// A list of Persistent Volume Claims to be mounted. Syntax: [pvcname:/container/path]. If the PVC is not found, the Integration fails.
 	// You can use the syntax [pvcname:/container/path:size:accessMode<:storageClass>] to create a dynamic PVC based on the Storage Class provided
 	// or the default cluster Storage Class. However, if the PVC exists, the operator would mount it.
-	Volumes []string `property:"volumes" json:"volumes,omitempty"`
+	Volumes []string `json:"volumes,omitempty" property:"volumes"`
 	// A list of EmptyDir volumes to be mounted. An optional size limit may be configured (default 500Mi).
 	// Syntax: name:/container/path[:sizeLimit]
-	EmptyDirs []string `property:"empty-dirs" json:"emptyDirs,omitempty"`
+	EmptyDirs []string `json:"emptyDirs,omitempty" property:"empty-dirs"`
 	// Enable "hot reload" when a secret/configmap mounted is edited (default `false`). The configmap/secret must be
 	// marked with `camel.apache.org/integration` label to be taken in account. The resource will be watched for any kind change, also for
 	// changes in metadata.
-	HotReload *bool `property:"hot-reload" json:"hotReload,omitempty"`
+	HotReload *bool `json:"hotReload,omitempty" property:"hot-reload"`
 	// Deprecated: no longer available since version 2.5.
-	ScanKameletsImplicitLabelSecrets *bool `property:"scan-kamelets-implicit-label-secrets" json:"scanKameletsImplicitLabelSecrets,omitempty"`
+	ScanKameletsImplicitLabelSecrets *bool `json:"scanKameletsImplicitLabelSecrets,omitempty" property:"scan-kamelets-implicit-label-secrets"`
 }
diff --git a/pkg/apis/camel/v1/trait/openapi.go b/pkg/apis/camel/v1/trait/openapi.go
index 2ebb95a2c..fae3559ce 100644
--- a/pkg/apis/camel/v1/trait/openapi.go
+++ b/pkg/apis/camel/v1/trait/openapi.go
@@ -27,8 +27,8 @@ package trait
 // +camel-k:trait=openapi.
 // +camel-k:internal.
 type OpenAPITrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// The configmaps holding the spec of the OpenAPI (compatible with > 3.0 spec only).
-	Configmaps []string `property:"configmaps" json:"configmaps,omitempty"`
+	Configmaps []string `json:"configmaps,omitempty" property:"configmaps"`
 }
diff --git a/pkg/apis/camel/v1/trait/owner.go b/pkg/apis/camel/v1/trait/owner.go
index e22d8c515..f5d952e3e 100644
--- a/pkg/apis/camel/v1/trait/owner.go
+++ b/pkg/apis/camel/v1/trait/owner.go
@@ -22,10 +22,10 @@ package trait
 //
 // +camel-k:trait=owner.
 type OwnerTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// The set of annotations to be transferred
-	TargetAnnotations []string `property:"target-annotations" json:"targetAnnotations,omitempty"`
+	TargetAnnotations []string `json:"targetAnnotations,omitempty" property:"target-annotations"`
 	// The set of labels to be transferred
-	TargetLabels []string `property:"target-labels" json:"targetLabels,omitempty"`
+	TargetLabels []string `json:"targetLabels,omitempty" property:"target-labels"`
 }
diff --git a/pkg/apis/camel/v1/trait/pdb.go b/pkg/apis/camel/v1/trait/pdb.go
index 269fd2fbb..3e158532e 100644
--- a/pkg/apis/camel/v1/trait/pdb.go
+++ b/pkg/apis/camel/v1/trait/pdb.go
@@ -21,14 +21,14 @@ package trait
 //
 // +camel-k:trait=pdb.
 type PDBTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// The number of pods for the Integration that must still be available after an eviction.
 	// It can be either an absolute number or a percentage.
 	// Only one of `min-available` and `max-unavailable` can be specified.
-	MinAvailable string `property:"min-available" json:"minAvailable,omitempty"`
+	MinAvailable string `json:"minAvailable,omitempty" property:"min-available"`
 	// The number of pods for the Integration that can be unavailable after an eviction.
 	// It can be either an absolute number or a percentage (default `1` if `min-available` is also not set).
 	// Only one of `max-unavailable` and `min-available` can be specified.
-	MaxUnavailable string `property:"max-unavailable" json:"maxUnavailable,omitempty"`
+	MaxUnavailable string `json:"maxUnavailable,omitempty" property:"max-unavailable"`
 }
diff --git a/pkg/apis/camel/v1/trait/platform.go b/pkg/apis/camel/v1/trait/platform.go
index 1a22beaf6..9b338fb25 100644
--- a/pkg/apis/camel/v1/trait/platform.go
+++ b/pkg/apis/camel/v1/trait/platform.go
@@ -22,12 +22,12 @@ package trait
 // +camel-k:trait=platform.
 // +camel-k:internal.
 type PlatformTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// Deprecated: no longer in use.
-	CreateDefault *bool `property:"create-default" json:"createDefault,omitempty"`
+	CreateDefault *bool `json:"createDefault,omitempty" property:"create-default"`
 	// Deprecated: no longer in use.
-	Global *bool `property:"global" json:"global,omitempty"`
+	Global *bool `json:"global,omitempty" property:"global"`
 	// Deprecated: no longer in use.
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 }
diff --git a/pkg/apis/camel/v1/trait/pod.go b/pkg/apis/camel/v1/trait/pod.go
index 781e073d6..ad7a64769 100644
--- a/pkg/apis/camel/v1/trait/pod.go
+++ b/pkg/apis/camel/v1/trait/pod.go
@@ -30,5 +30,5 @@ package trait
 // +camel-k:trait=pod.
 // +camel-k:deprecated=2.8.0.
 type PodTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 }
diff --git a/pkg/apis/camel/v1/trait/prometheus.go b/pkg/apis/camel/v1/trait/prometheus.go
index c31d110ce..642eb5f69 100644
--- a/pkg/apis/camel/v1/trait/prometheus.go
+++ b/pkg/apis/camel/v1/trait/prometheus.go
@@ -32,10 +32,10 @@ package trait
 //
 // +camel-k:trait=prometheus.
 type PrometheusTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Whether a `PodMonitor` resource is created (default `true`).
-	PodMonitor *bool `property:"pod-monitor" json:"podMonitor,omitempty"`
+	PodMonitor *bool `json:"podMonitor,omitempty" property:"pod-monitor"`
 	// The `PodMonitor` resource labels, applicable when `pod-monitor` is `true`.
-	PodMonitorLabels []string `property:"pod-monitor-labels" json:"podMonitorLabels,omitempty"`
+	PodMonitorLabels []string `json:"podMonitorLabels,omitempty" property:"pod-monitor-labels"`
 }
diff --git a/pkg/apis/camel/v1/trait/pull_secret.go b/pkg/apis/camel/v1/trait/pull_secret.go
index d70077e76..c84b20519 100644
--- a/pkg/apis/camel/v1/trait/pull_secret.go
+++ b/pkg/apis/camel/v1/trait/pull_secret.go
@@ -30,12 +30,12 @@ package trait
 //
 // +camel-k:trait=pull-secret.
 type PullSecretTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// The pull secret name to set on the Pod. If left empty this is automatically taken from the `IntegrationPlatform` registry configuration.
-	SecretName string `property:"secret-name" json:"secretName,omitempty"`
+	SecretName string `json:"secretName,omitempty" property:"secret-name"`
 	// When using a global operator with a shared platform, this enables delegation of the `system:image-puller` cluster role on the operator namespace to the integration service account.
-	ImagePullerDelegation *bool `property:"image-puller-delegation" json:"imagePullerDelegation,omitempty"`
+	ImagePullerDelegation *bool `json:"imagePullerDelegation,omitempty" property:"image-puller-delegation"`
 	// Automatically configures the platform registry secret on the pod if it is of type `kubernetes.io/dockerconfigjson`.
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 }
diff --git a/pkg/apis/camel/v1/trait/quarkus.go b/pkg/apis/camel/v1/trait/quarkus.go
index 9fe76b3bf..cf44c9b3f 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 {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// 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,
@@ -36,15 +36,15 @@ type QuarkusTrait struct {
 	// The kit corresponding to the first package type will be assigned to the
 	// integration in case no existing kit that matches the integration exists.
 	// Deprecated: use `build-mode` instead.
-	PackageTypes []QuarkusPackageType `property:"package-type" json:"packageTypes,omitempty"`
+	PackageTypes []QuarkusPackageType `json:"packageTypes,omitempty" property:"package-type"`
 	// The Quarkus mode to run: either `jvm` or `native` (default `jvm`).
 	// In case both `jvm` and `native` are specified, two `IntegrationKit` resources are created,
 	// with the `native` kit having precedence over the `jvm` one once ready.
-	Modes []QuarkusMode `property:"build-mode" json:"buildMode,omitempty"`
+	Modes []QuarkusMode `json:"buildMode,omitempty" property:"build-mode"`
 	// The base image to use when running a native build (default `quay.io/quarkus/quarkus-micro-image:2.0`)
-	NativeBaseImage string `property:"native-base-image" json:"nativeBaseImage,omitempty"`
+	NativeBaseImage string `json:"nativeBaseImage,omitempty" property:"native-base-image"`
 	// The image containing the tooling required for a native build (by default it will use the one provided in the runtime catalog)
-	NativeBuilderImage string `property:"native-builder-image" json:"nativeBuilderImage,omitempty"`
+	NativeBuilderImage string `json:"nativeBuilderImage,omitempty" property:"native-builder-image"`
 }
 
 // QuarkusMode is the type of Quarkus build packaging.
diff --git a/pkg/apis/camel/v1/trait/registry.go b/pkg/apis/camel/v1/trait/registry.go
index 257216583..053650fef 100644
--- a/pkg/apis/camel/v1/trait/registry.go
+++ b/pkg/apis/camel/v1/trait/registry.go
@@ -25,5 +25,5 @@ package trait
 // +camel-k:trait=registry.
 // +camel-k:internal.
 type RegistryTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 }
diff --git a/pkg/apis/camel/v1/trait/route.go b/pkg/apis/camel/v1/trait/route.go
index b1287bf97..ec110e552 100644
--- a/pkg/apis/camel/v1/trait/route.go
+++ b/pkg/apis/camel/v1/trait/route.go
@@ -32,44 +32,44 @@ package trait
 // +camel-k:trait=route.
 // +camel-k:deprecated=2.6.0.
 type RouteTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// The annotations added to route.
 	// This can be used to set route specific annotations
 	// For annotations options see https://docs.openshift.com/container-platform/3.11/architecture/networking/routes.html#route-specific-annotations
 	// CLI usage example: -t "route.annotations.'haproxy.router.openshift.io/balance'=true"
-	Annotations map[string]string `property:"annotations" json:"annotations,omitempty"`
+	Annotations map[string]string `json:"annotations,omitempty" property:"annotations"`
 	// To configure the host exposed by the route.
-	Host string `property:"host" json:"host,omitempty"`
+	Host string `json:"host,omitempty" property:"host"`
 	// The TLS termination type, like `edge`, `passthrough` or `reencrypt`.
 	//
 	// Refer to the OpenShift route documentation for additional information.
 	// +kubebuilder:validation:Enum=edge;reencrypt;passthrough
-	TLSTermination string `property:"tls-termination" json:"tlsTermination,omitempty"`
+	TLSTermination string `json:"tlsTermination,omitempty" property:"tls-termination"`
 	// The TLS certificate contents.
 	//
 	// Refer to the OpenShift route documentation for additional information.
-	TLSCertificate string `property:"tls-certificate" json:"tlsCertificate,omitempty"`
+	TLSCertificate string `json:"tlsCertificate,omitempty" property:"tls-certificate"`
 	// The secret name and key reference to the TLS certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/".
 	//
 	// Refer to the OpenShift route documentation for additional information.
-	TLSCertificateSecret string `property:"tls-certificate-secret" json:"tlsCertificateSecret,omitempty"`
+	TLSCertificateSecret string `json:"tlsCertificateSecret,omitempty" property:"tls-certificate-secret"`
 	// The TLS certificate key contents.
 	//
 	// Refer to the OpenShift route documentation for additional information.
-	TLSKey string `property:"tls-key" json:"tlsKey,omitempty"`
+	TLSKey string `json:"tlsKey,omitempty" property:"tls-key"`
 	// The secret name and key reference to the TLS certificate key. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/".
 	//
 	// Refer to the OpenShift route documentation for additional information.
-	TLSKeySecret string `property:"tls-key-secret" json:"tlsKeySecret,omitempty"`
+	TLSKeySecret string `json:"tlsKeySecret,omitempty" property:"tls-key-secret"`
 	// The TLS CA certificate contents.
 	//
 	// Refer to the OpenShift route documentation for additional information.
-	TLSCACertificate string `property:"tls-ca-certificate" json:"tlsCACertificate,omitempty"`
+	TLSCACertificate string `json:"tlsCACertificate,omitempty" property:"tls-ca-certificate"`
 	// The secret name and key reference to the TLS CA certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/".
 	//
 	// Refer to the OpenShift route documentation for additional information.
-	TLSCACertificateSecret string `property:"tls-ca-certificate-secret" json:"tlsCACertificateSecret,omitempty"`
+	TLSCACertificateSecret string `json:"tlsCACertificateSecret,omitempty" property:"tls-ca-certificate-secret"`
 	// The destination CA certificate provides the contents of the ca certificate of the final destination.  When using reencrypt
 	// termination this file should be provided in order to have routers use it for health checks on the secure connection.
 	// If this field is not specified, the router may provide its own destination CA and perform hostname validation using
@@ -77,14 +77,14 @@ type RouteTrait struct {
 	// verify.
 	//
 	// Refer to the OpenShift route documentation for additional information.
-	TLSDestinationCACertificate string `property:"tls-destination-ca-certificate" json:"tlsDestinationCACertificate,omitempty"`
+	TLSDestinationCACertificate string `json:"tlsDestinationCACertificate,omitempty" property:"tls-destination-ca-certificate"`
 	// The secret name and key reference to the destination CA certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/".
 	//
 	// Refer to the OpenShift route documentation for additional information.
-	TLSDestinationCACertificateSecret string `property:"tls-destination-ca-certificate-secret" json:"tlsDestinationCACertificateSecret,omitempty"`
+	TLSDestinationCACertificateSecret string `json:"tlsDestinationCACertificateSecret,omitempty" property:"tls-destination-ca-certificate-secret"`
 	// To configure how to deal with insecure traffic, e.g. `Allow`, `Disable` or `Redirect` traffic.
 	//
 	// Refer to the OpenShift route documentation for additional information.
 	// +kubebuilder:validation:Enum=None;Allow;Redirect
-	TLSInsecureEdgeTerminationPolicy string `property:"tls-insecure-edge-termination-policy" json:"tlsInsecureEdgeTerminationPolicy,omitempty"`
+	TLSInsecureEdgeTerminationPolicy string `json:"tlsInsecureEdgeTerminationPolicy,omitempty" property:"tls-insecure-edge-termination-policy"`
 }
diff --git a/pkg/apis/camel/v1/trait/security_context.go b/pkg/apis/camel/v1/trait/security_context.go
index 2c098997f..b90dd4ff1 100644
--- a/pkg/apis/camel/v1/trait/security_context.go
+++ b/pkg/apis/camel/v1/trait/security_context.go
@@ -23,13 +23,13 @@ import corev1 "k8s.io/api/core/v1"
 //
 // +camel-k:trait=security-context.
 type SecurityContextTrait struct {
-	PlatformBaseTrait `property:",squash" json:",inline"`
+	PlatformBaseTrait `json:",inline" property:",squash"`
 
 	// Security Context RunAsUser configuration (default none): this value is automatically retrieved in Openshift clusters when not explicitly set.
-	RunAsUser *int64 `property:"run-as-user" json:"runAsUser,omitempty"`
+	RunAsUser *int64 `json:"runAsUser,omitempty" property:"run-as-user"`
 	// Security Context RunAsNonRoot configuration (default false).
-	RunAsNonRoot *bool `property:"run-as-non-root" json:"runAsNonRoot,omitempty"`
+	RunAsNonRoot *bool `json:"runAsNonRoot,omitempty" property:"run-as-non-root"`
 	// Security Context SeccompProfileType configuration (default RuntimeDefault).
 	// +kubebuilder:validation:Enum=Unconfined;RuntimeDefault
-	SeccompProfileType corev1.SeccompProfileType `property:"seccomp-profile-type" json:"seccompProfileType,omitempty"`
+	SeccompProfileType corev1.SeccompProfileType `json:"seccompProfileType,omitempty" property:"seccomp-profile-type"`
 }
diff --git a/pkg/apis/camel/v1/trait/service.go b/pkg/apis/camel/v1/trait/service.go
index 2c0a2a425..fdc0c996a 100644
--- a/pkg/apis/camel/v1/trait/service.go
+++ b/pkg/apis/camel/v1/trait/service.go
@@ -26,26 +26,26 @@ package trait
 //
 // +camel-k:trait=service.
 type ServiceTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// To automatically detect from the code if a Service needs to be created.
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 	// Enable Service to be exposed as NodePort (default `false`).
 	// Deprecated: Use service type instead.
-	NodePort *bool `property:"node-port" json:"nodePort,omitempty"`
+	NodePort *bool `json:"nodePort,omitempty" property:"node-port"`
 	// The type of service to be used, either 'ClusterIP', 'NodePort' or 'LoadBalancer'.
 	// +kubebuilder:validation:Enum=ClusterIP;NodePort;LoadBalancer
-	Type *ServiceType `property:"type" json:"type,omitempty"`
+	Type *ServiceType `json:"type,omitempty" property:"type"`
 	// The annotations added to the Service object.
-	Annotations map[string]string `property:"annotations" json:"annotations,omitempty"`
+	Annotations map[string]string `json:"annotations,omitempty" property:"annotations"`
 	// The labels added to the Service object.
-	Labels map[string]string `property:"labels" json:"labels,omitempty"`
+	Labels map[string]string `json:"labels,omitempty" property:"labels"`
 	// List of container ports available in the container to expose
 	// (syntax: <port-name>;<port-number>;<container-port-number>[;<port-protocol]).
 	// When omitted, `port-protocol` (admitted values `TCP`, `UDP` or `SCTP`) is `TCP`.
 	// Don't use this for the primary http managed port (which is managed by container trait).
 	// Don't use in Knative based environments.
-	Ports []string `property:"ports" json:"ports,omitempty"`
+	Ports []string `json:"ports,omitempty" property:"ports"`
 }
 
 type ServiceType string
diff --git a/pkg/apis/camel/v1/trait/service_binding.go b/pkg/apis/camel/v1/trait/service_binding.go
index 3ddc9d713..341506a95 100644
--- a/pkg/apis/camel/v1/trait/service_binding.go
+++ b/pkg/apis/camel/v1/trait/service_binding.go
@@ -27,8 +27,8 @@ package trait
 // +camel-k:trait=service-binding.
 // +camel-k:internal.
 type ServiceBindingTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// List of Services in the form [[apigroup/]version:]kind:[namespace/]name
-	Services []string `property:"services" json:"services,omitempty"`
+	Services []string `json:"services,omitempty" property:"services"`
 }
diff --git a/pkg/apis/camel/v1/trait/telemetry.go b/pkg/apis/camel/v1/trait/telemetry.go
index 40e29e527..1109a2708 100644
--- a/pkg/apis/camel/v1/trait/telemetry.go
+++ b/pkg/apis/camel/v1/trait/telemetry.go
@@ -27,18 +27,18 @@ package trait
 //
 // +camel-k:trait=telemetry.
 type TelemetryTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// Enables automatic configuration of the trait, including automatic discovery of the telemetry endpoint.
-	Auto *bool `property:"auto" json:"auto,omitempty"`
+	Auto *bool `json:"auto,omitempty" property:"auto"`
 	// The name of the service that publishes telemetry data (defaults to the integration name)
-	ServiceName string `property:"service-name" json:"serviceName,omitempty"`
+	ServiceName string `json:"serviceName,omitempty" property:"service-name"`
 	// The target endpoint of the Telemetry service (automatically discovered by default)
-	Endpoint string `property:"endpoint" json:"endpoint,omitempty"`
+	Endpoint string `json:"endpoint,omitempty" property:"endpoint"`
 	// The sampler of the telemetry used for tracing (default "on")
-	Sampler string `property:"sampler" json:"sampler,omitempty"`
+	Sampler string `json:"sampler,omitempty" property:"sampler"`
 	// The sampler ratio of the telemetry used for tracing
-	SamplerRatio string `property:"sampler-ratio" json:"sampler-ratio,omitempty"`
+	SamplerRatio string `json:"sampler-ratio,omitempty" property:"sampler-ratio"`
 	// The sampler of the telemetry used for tracing is parent based (default "true")
-	SamplerParentBased *bool `property:"sampler-parent-based" json:"sampler-parent-based,omitempty"`
+	SamplerParentBased *bool `json:"sampler-parent-based,omitempty" property:"sampler-parent-based"`
 }
diff --git a/pkg/apis/camel/v1/trait/toleration.go b/pkg/apis/camel/v1/trait/toleration.go
index fa0163c32..b6a94a969 100644
--- a/pkg/apis/camel/v1/trait/toleration.go
+++ b/pkg/apis/camel/v1/trait/toleration.go
@@ -32,8 +32,8 @@ package trait
 //
 // +camel-k:trait=toleration.
 type TolerationTrait struct {
-	Trait `property:",squash" json:",inline"`
+	Trait `json:",inline" property:",squash"`
 
 	// The list of taints to tolerate, in the form `Key[=Value]:Effect[:Seconds]`
-	Taints []string `property:"taints" json:"taints,omitempty"`
+	Taints []string `json:"taints,omitempty" property:"taints"`
 }
diff --git a/pkg/cmd/bind.go b/pkg/cmd/bind.go
index cf381be9a..ed37e9e09 100644
--- a/pkg/cmd/bind.go
+++ b/pkg/cmd/bind.go
@@ -78,17 +78,17 @@ const (
 type bindCmdOptions struct {
 	*RootCmdOptions
 
-	ErrorHandler   string   `mapstructure:"error-handler" yaml:",omitempty"`
-	Name           string   `mapstructure:"name" yaml:",omitempty"`
-	OutputFormat   string   `mapstructure:"output" yaml:",omitempty"`
-	Properties     []string `mapstructure:"properties" yaml:",omitempty"`
-	SkipChecks     bool     `mapstructure:"skip-checks" yaml:",omitempty"`
-	Steps          []string `mapstructure:"steps" yaml:",omitempty"`
-	Traits         []string `mapstructure:"traits" yaml:",omitempty"`
-	OperatorID     string   `mapstructure:"operator-id" yaml:",omitempty"`
-	Annotations    []string `mapstructure:"annotations" yaml:",omitempty"`
+	ErrorHandler   string   `mapstructure:"error-handler"   yaml:",omitempty"`
+	Name           string   `mapstructure:"name"            yaml:",omitempty"`
+	OutputFormat   string   `mapstructure:"output"          yaml:",omitempty"`
+	Properties     []string `mapstructure:"properties"      yaml:",omitempty"`
+	SkipChecks     bool     `mapstructure:"skip-checks"     yaml:",omitempty"`
+	Steps          []string `mapstructure:"steps"           yaml:",omitempty"`
+	Traits         []string `mapstructure:"traits"          yaml:",omitempty"`
+	OperatorID     string   `mapstructure:"operator-id"     yaml:",omitempty"`
+	Annotations    []string `mapstructure:"annotations"     yaml:",omitempty"`
 	ServiceAccount string   `mapstructure:"service-account" yaml:",omitempty"`
-	Dependencies   []string `mapstructure:"dependencies" yaml:",omitempty"`
+	Dependencies   []string `mapstructure:"dependencies"    yaml:",omitempty"`
 }
 
 func (o *bindCmdOptions) preRunE(cmd *cobra.Command, args []string) error {
diff --git a/pkg/cmd/debug.go b/pkg/cmd/debug.go
index a4c6ede1a..2a1b482c0 100644
--- a/pkg/cmd/debug.go
+++ b/pkg/cmd/debug.go
@@ -61,8 +61,8 @@ func newCmdDebug(rootCmdOptions *RootCmdOptions) (*cobra.Command, *debugCmdOptio
 type debugCmdOptions struct {
 	*RootCmdOptions `json:"-"`
 
-	Suspend    bool `mapstructure:"suspend" yaml:",omitempty"`
-	Port       uint `mapstructure:"port" yaml:",omitempty"`
+	Suspend    bool `mapstructure:"suspend"     yaml:",omitempty"`
+	Port       uint `mapstructure:"port"        yaml:",omitempty"`
 	RemotePort uint `mapstructure:"remote-port" yaml:",omitempty"`
 }
 
diff --git a/pkg/cmd/promote.go b/pkg/cmd/promote.go
index 5c2e93626..b9d1e5abe 100644
--- a/pkg/cmd/promote.go
+++ b/pkg/cmd/promote.go
@@ -62,10 +62,10 @@ func newCmdPromote(rootCmdOptions *RootCmdOptions) (*cobra.Command, *promoteCmdO
 type promoteCmdOptions struct {
 	*RootCmdOptions
 
-	To           string `mapstructure:"to" yaml:",omitempty"`
-	ToOperator   string `mapstructure:"to-operator" yaml:",omitempty"`
-	OutputFormat string `mapstructure:"output" yaml:",omitempty"`
-	Image        bool   `mapstructure:"image" yaml:",omitempty"`
+	To           string `mapstructure:"to"                yaml:",omitempty"`
+	ToOperator   string `mapstructure:"to-operator"       yaml:",omitempty"`
+	OutputFormat string `mapstructure:"output"            yaml:",omitempty"`
+	Image        bool   `mapstructure:"image"             yaml:",omitempty"`
 	ToGitOpsDir  string `mapstructure:"export-gitops-dir" yaml:",omitempty"`
 }
 
diff --git a/pkg/cmd/reset.go b/pkg/cmd/reset.go
index 773a101fd..b71930307 100644
--- a/pkg/cmd/reset.go
+++ b/pkg/cmd/reset.go
@@ -59,7 +59,7 @@ type resetCmdOptions struct {
 
 func (o *resetCmdOptions) reset(cmd *cobra.Command, _ []string) {
 	if !o.Force {
-		fmt.Printf("Reset will delete Camel K resources in namespace '%s'.\n", o.Namespace)
+		fmt.Fprintf(cmd.OutOrStdout(), "Reset will delete Camel K resources in namespace '%s'.\n", o.Namespace)
 		fmt.Fprint(cmd.OutOrStdout(), "Type the namespace to confirm: ")
 
 		var input string
diff --git a/pkg/cmd/root.go b/pkg/cmd/root.go
index 715e583c0..b672b5aa6 100644
--- a/pkg/cmd/root.go
+++ b/pkg/cmd/root.go
@@ -50,7 +50,7 @@ type RootCmdOptions struct {
 	Flags         *viper.Viper       `mapstructure:"-"`
 	KubeConfig    string             `mapstructure:"kube-config"`
 	Namespace     string             `mapstructure:"namespace"`
-	Verbose       bool               `mapstructure:"verbose" yaml:",omitempty"`
+	Verbose       bool               `mapstructure:"verbose"     yaml:",omitempty"`
 }
 
 // NewKamelCommand --.
diff --git a/pkg/cmd/run.go b/pkg/cmd/run.go
index 1a93e441c..9c9149c64 100644
--- a/pkg/cmd/run.go
+++ b/pkg/cmd/run.go
@@ -126,44 +126,44 @@ type runCmdOptions struct {
 
 	// Deprecated: won't be supported in the future
 	Compression bool `mapstructure:"compression" yaml:",omitempty"`
-	Wait        bool `mapstructure:"wait" yaml:",omitempty"`
-	Logs        bool `mapstructure:"logs" yaml:",omitempty"`
+	Wait        bool `mapstructure:"wait"        yaml:",omitempty"`
+	Logs        bool `mapstructure:"logs"        yaml:",omitempty"`
 	// Deprecated: won't be supported in the future
 	Sync bool `mapstructure:"sync" yaml:",omitempty"`
 	// Deprecated: won't be supported in the future
-	Dev      bool `mapstructure:"dev" yaml:",omitempty"`
+	Dev      bool `mapstructure:"dev"       yaml:",omitempty"`
 	UseFlows bool `mapstructure:"use-flows" yaml:",omitempty"`
-	Save     bool `mapstructure:"save" yaml:",omitempty" kamel:"omitsave"`
+	Save     bool `kamel:"omitsave"         mapstructure:"save" yaml:",omitempty"`
 	// Deprecated: won't be supported in the future
-	IntegrationKit     string `mapstructure:"kit" yaml:",omitempty"`
-	IntegrationName    string `mapstructure:"name" yaml:",omitempty"`
-	ContainerImage     string `mapstructure:"image" yaml:",omitempty"`
-	GitRepo            string `mapstructure:"git" yaml:",omitempty"`
-	GitBranch          string `mapstructure:"git-branch" yaml:",omitempty"`
-	GitTag             string `mapstructure:"git-tag" yaml:",omitempty"`
-	GitCommit          string `mapstructure:"git-commit" yaml:",omitempty"`
-	Profile            string `mapstructure:"profile" yaml:",omitempty"`
+	IntegrationKit     string `mapstructure:"kit"                 yaml:",omitempty"`
+	IntegrationName    string `mapstructure:"name"                yaml:",omitempty"`
+	ContainerImage     string `mapstructure:"image"               yaml:",omitempty"`
+	GitRepo            string `mapstructure:"git"                 yaml:",omitempty"`
+	GitBranch          string `mapstructure:"git-branch"          yaml:",omitempty"`
+	GitTag             string `mapstructure:"git-tag"             yaml:",omitempty"`
+	GitCommit          string `mapstructure:"git-commit"          yaml:",omitempty"`
+	Profile            string `mapstructure:"profile"             yaml:",omitempty"`
 	IntegrationProfile string `mapstructure:"integration-profile" yaml:",omitempty"`
-	OperatorID         string `mapstructure:"operator-id" yaml:",omitempty"`
-	OutputFormat       string `mapstructure:"output" yaml:",omitempty"`
+	OperatorID         string `mapstructure:"operator-id"         yaml:",omitempty"`
+	OutputFormat       string `mapstructure:"output"              yaml:",omitempty"`
 	// Deprecated: won't be supported in the future
-	PodTemplate    string   `mapstructure:"pod-template" yaml:",omitempty"`
+	PodTemplate    string   `mapstructure:"pod-template"    yaml:",omitempty"`
 	ServiceAccount string   `mapstructure:"service-account" yaml:",omitempty"`
-	Resources      []string `mapstructure:"resources" yaml:",omitempty"`
-	Dependencies   []string `mapstructure:"dependencies" yaml:",omitempty"`
+	Resources      []string `mapstructure:"resources"       yaml:",omitempty"`
+	Dependencies   []string `mapstructure:"dependencies"    yaml:",omitempty"`
 	// Deprecated: won't be supported in the future
 	Properties []string `mapstructure:"properties" yaml:",omitempty"`
 	// Deprecated: won't be supported in the future
-	BuildProperties []string `mapstructure:"build-properties" yaml:",omitempty"`
-	Configs         []string `mapstructure:"configs" yaml:",omitempty"`
+	BuildProperties []string `mapstructure:"build-properties"   yaml:",omitempty"`
+	Configs         []string `mapstructure:"configs"            yaml:",omitempty"`
 	Repositories    []string `mapstructure:"maven-repositories" yaml:",omitempty"`
-	Traits          []string `mapstructure:"traits" yaml:",omitempty"`
-	Volumes         []string `mapstructure:"volumes" yaml:",omitempty"`
+	Traits          []string `mapstructure:"traits"             yaml:",omitempty"`
+	Volumes         []string `mapstructure:"volumes"            yaml:",omitempty"`
 	// Deprecated: won't be supported in the future
-	EnvVars           []string `mapstructure:"envs" yaml:",omitempty"`
-	Labels            []string `mapstructure:"labels" yaml:",omitempty"`
-	Annotations       []string `mapstructure:"annotations" yaml:",omitempty"`
-	Sources           []string `mapstructure:"sources" yaml:",omitempty"`
+	EnvVars           []string `mapstructure:"envs"                 yaml:",omitempty"`
+	Labels            []string `mapstructure:"labels"               yaml:",omitempty"`
+	Annotations       []string `mapstructure:"annotations"          yaml:",omitempty"`
+	Sources           []string `mapstructure:"sources"              yaml:",omitempty"`
 	DontRunAfterBuild bool     `mapstructure:"dont-run-after-build" yaml:",omitempty"`
 }
 
diff --git a/pkg/util/maven/maven_types.go b/pkg/util/maven/maven_types.go
index f361c5723..0f292ce30 100644
--- a/pkg/util/maven/maven_types.go
+++ b/pkg/util/maven/maven_types.go
@@ -86,7 +86,7 @@ type Project struct {
 
 // Exclusion models a dependency exclusion.
 type Exclusion struct {
-	GroupID    string `xml:"groupId" yaml:"groupId"`
+	GroupID    string `xml:"groupId"    yaml:"groupId"`
 	ArtifactID string `xml:"artifactId" yaml:"artifactId"`
 }
 
@@ -95,14 +95,13 @@ type DependencyManagement struct {
 	Dependencies []Dependency `xml:"dependencies>dependency,omitempty"`
 }
 
-// Dependency models a dependency.
 type Dependency struct {
-	GroupID    string       `xml:"groupId" yaml:"groupId"`
-	ArtifactID string       `xml:"artifactId" yaml:"artifactId"`
-	Version    string       `xml:"version,omitempty" yaml:"version,omitempty"`
-	Type       string       `xml:"type,omitempty" yaml:"type,omitempty"`
-	Classifier string       `xml:"classifier,omitempty" yaml:"classifier,omitempty"`
-	Scope      string       `xml:"scope,omitempty" yaml:"scope,omitempty"`
+	GroupID    string       `xml:"groupId"                        yaml:"groupId"`
+	ArtifactID string       `xml:"artifactId"                     yaml:"artifactId"`
+	Version    string       `xml:"version,omitempty"              yaml:"version,omitempty"`
+	Type       string       `xml:"type,omitempty"                 yaml:"type,omitempty"`
+	Classifier string       `xml:"classifier,omitempty"           yaml:"classifier,omitempty"`
+	Scope      string       `xml:"scope,omitempty"                yaml:"scope,omitempty"`
 	Exclusions *[]Exclusion `xml:"exclusions>exclusion,omitempty" yaml:"exclusions,omitempty"`
 }