You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2022/03/01 17:07:33 UTC

[camel-k] 01/02: chore(api): v1 full spec

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

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

commit ea0f0a042fd9442a2e85831ee2e9fac6f656aaac
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Thu Feb 10 17:34:27 2022 +0100

    chore(api): v1 full spec
---
 config/crd/bases/camel.apache.org_builds.yaml      | 213 ++++++++--
 .../crd/bases/camel.apache.org_camelcatalogs.yaml  | 118 +++++-
 .../bases/camel.apache.org_integrationkits.yaml    |  62 ++-
 .../camel.apache.org_integrationplatforms.yaml     | 170 ++++++--
 .../crd/bases/camel.apache.org_integrations.yaml   |  84 +++-
 .../bases/camel.apache.org_kameletbindings.yaml    |  42 +-
 config/crd/bases/camel.apache.org_kamelets.yaml    |  14 +-
 docs/modules/ROOT/partials/apis/camel-k-crds.adoc  | 444 +++++++++++----------
 docs/modules/ROOT/partials/apis/kamelets-crds.adoc |  12 +-
 helm/camel-k/crds/crd-build.yaml                   | 213 ++++++++--
 helm/camel-k/crds/crd-camel-catalog.yaml           | 118 +++++-
 helm/camel-k/crds/crd-integration-kit.yaml         |  62 ++-
 helm/camel-k/crds/crd-integration-platform.yaml    | 170 ++++++--
 helm/camel-k/crds/crd-integration.yaml             |  84 +++-
 helm/camel-k/crds/crd-kamelet-binding.yaml         |  42 +-
 helm/camel-k/crds/crd-kamelet.yaml                 |  14 +-
 pkg/apis/camel/v1/build_types.go                   | 123 ++++--
 pkg/apis/camel/v1/camelcatalog_types.go            | 144 ++++---
 pkg/apis/camel/v1/common_types.go                  | 206 ++++++----
 pkg/apis/camel/v1/integration_types_support.go     |  12 -
 pkg/apis/camel/v1/integrationkit_types.go          |  83 ++--
 pkg/apis/camel/v1/integrationplatform_types.go     | 116 ++++--
 pkg/apis/camel/v1/maven_types.go                   |  32 +-
 pkg/apis/camel/v1/zz_generated.deepcopy.go         |  14 -
 pkg/util/source/inspector.go                       |   6 +-
 25 files changed, 1830 insertions(+), 768 deletions(-)

diff --git a/config/crd/bases/camel.apache.org_builds.yaml b/config/crd/bases/camel.apache.org_builds.yaml
index 3f1f5bd..339d273 100644
--- a/config/crd/bases/camel.apache.org_builds.yaml
+++ b/config/crd/bases/camel.apache.org_builds.yaml
@@ -77,7 +77,7 @@ spec:
           metadata:
             type: object
           spec:
-            description: BuildSpec defines the Build to be executed
+            description: BuildSpec defines the Build operation to be executed
             properties:
               strategy:
                 description: The strategy that should be used to perform the Build.
@@ -89,50 +89,66 @@ spec:
                 description: The sequence of Build tasks to be performed as part of
                   the Build execution.
                 items:
-                  description: Task --
+                  description: Task represents the abstract task. Only one of the
+                    task should be configured to represent the specific task chosen.
                   properties:
                     buildah:
-                      description: BuildahTask --
+                      description: a BuildahTask, for Buildah strategy
                       properties:
                         baseImage:
+                          description: base image layer
                           type: string
                         contextDir:
+                          description: can be useful to share info with other tasks
                           type: string
                         image:
+                          description: final image name
                           type: string
                         name:
+                          description: name of the task
                           type: string
                         registry:
-                          description: RegistrySpec provides the configuration for
-                            the container registry
+                          description: where to publish the final image
                           properties:
                             address:
+                              description: the URI to access
                               type: string
                             ca:
+                              description: the configmap which stores the Certificate
+                                Authority
                               type: string
                             insecure:
+                              description: if the container registry is insecure (ie,
+                                http only)
                               type: boolean
                             organization:
+                              description: the registry organization
                               type: string
                             secret:
+                              description: the secret where credentials are stored
                               type: string
                           type: object
                         verbose:
+                          description: log more information
                           type: boolean
                       type: object
                     builder:
-                      description: BuilderTask --
+                      description: a BuilderTask (base task)
                       properties:
                         baseImage:
+                          description: the base image layer
                           type: string
                         buildDir:
+                          description: workspace directory to use
                           type: string
                         dependencies:
+                          description: the list of dependencies to use for this build
                           items:
                             type: string
                           type: array
                         maven:
-                          description: MavenBuildSpec --
+                          description: the configuration required by Maven for the
+                            application build phase
                           properties:
                             caSecret:
                               description: The Secret name and key, containing the
@@ -171,13 +187,17 @@ spec:
                             extension:
                               description: The Maven build extensions. See https://maven.apache.org/guides/mini/guide-using-extensions.html.
                               items:
-                                description: MavenArtifact defines a Maven artifact
+                                description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                                  Maven artifact
                                 properties:
                                   artifactId:
+                                    description: Maven Artifact
                                     type: string
                                   groupId:
+                                    description: Maven Group
                                     type: string
                                   version:
+                                    description: Maven Version
                                     type: string
                                 required:
                                 - artifactId
@@ -193,41 +213,68 @@ spec:
                               description: The Maven properties.
                               type: object
                             repositories:
-                              description: The Maven repositories.
+                              description: additional repositories
                               items:
                                 description: Repository defines a Maven repository
                                 properties:
                                   id:
+                                    description: identifies the repository
                                     type: string
                                   name:
+                                    description: name of the repository
                                     type: string
                                   releases:
-                                    description: RepositoryPolicy defines the policy
-                                      associated to a Maven repository
+                                    description: can use stable releases
                                     properties:
                                       checksumPolicy:
+                                        description: 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.
                                         type: string
                                       enabled:
+                                        description: is the policy activated or not
                                         type: boolean
                                       updatePolicy:
+                                        description: '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`'
                                         type: string
                                     required:
                                     - enabled
                                     type: object
                                   snapshots:
-                                    description: RepositoryPolicy defines the policy
-                                      associated to a Maven repository
+                                    description: can use snapshot
                                     properties:
                                       checksumPolicy:
+                                        description: 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.
                                         type: string
                                       enabled:
+                                        description: is the policy activated or not
                                         type: boolean
                                       updatePolicy:
+                                        description: '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`'
                                         type: string
                                     required:
                                     - enabled
                                     type: object
                                   url:
+                                    description: location of the repository
                                     type: string
                                 required:
                                 - id
@@ -280,53 +327,76 @@ spec:
                               type: object
                           type: object
                         name:
+                          description: name of the task
                           type: string
                         resources:
+                          description: 'Deprecated: no longer in use'
                           items:
-                            description: ResourceSpec --
+                            description: 'ResourceSpec represent an attached resource
+                              which will be materialized as a file on the running
+                              `Pod` TODO: we should deprecate in future releases in
+                              favour of mount, openapi or camel traits'
                             properties:
                               compression:
+                                description: if the content is compressed (base64
+                                  encrypted)
                                 type: boolean
                               content:
+                                description: the source code (plain text)
                                 type: string
                               contentKey:
+                                description: the confimap key holding the source content
                                 type: string
                               contentRef:
+                                description: the confimap reference holding the source
+                                  content
                                 type: string
                               contentType:
+                                description: the content type (tipically text or binary)
                                 type: string
                               mountPath:
+                                description: the mount path on destination `Pod`
                                 type: string
                               name:
+                                description: the name of the specification
                                 type: string
                               path:
+                                description: the path where the file is stored
                                 type: string
                               rawContent:
+                                description: the source code (binary)
                                 format: byte
                                 type: string
                               type:
-                                description: ResourceType --
+                                description: the kind of data to expect
                                 type: string
                             type: object
                           type: array
                         runtime:
-                          description: RuntimeSpec --
+                          description: the configuration required for the runtime
+                            application
                           properties:
                             applicationClass:
+                              description: application entry point (main) to be executed
                               type: string
                             capabilities:
                               additionalProperties:
-                                description: Capability --
+                                description: Capability is a particular feature which
+                                  requires a well known set of dependencies
                                 properties:
                                   dependencies:
                                     items:
-                                      description: MavenArtifact defines a Maven artifact
+                                      description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                                        Maven artifact
                                       properties:
                                         artifactId:
+                                          description: Maven Artifact
                                           type: string
                                         groupId:
+                                          description: Maven Group
                                           type: string
                                         version:
+                                          description: Maven Version
                                           type: string
                                       required:
                                       - artifactId
@@ -336,20 +406,28 @@ spec:
                                   metadata:
                                     additionalProperties:
                                       type: string
+                                    description: 'Deprecated: not in use'
                                     type: object
                                 required:
                                 - dependencies
                                 type: object
+                              description: features offered by this runtime
                               type: object
                             dependencies:
+                              description: list of dependencies needed to run the
+                                application
                               items:
-                                description: MavenArtifact defines a Maven artifact
+                                description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                                  Maven artifact
                                 properties:
                                   artifactId:
+                                    description: Maven Artifact
                                     type: string
                                   groupId:
+                                    description: Maven Group
                                     type: string
                                   version:
+                                    description: Maven Version
                                     type: string
                                 required:
                                 - artifactId
@@ -359,11 +437,14 @@ spec:
                             metadata:
                               additionalProperties:
                                 type: string
+                              description: set of metadata
                               type: object
                             provider:
-                              description: RuntimeProvider --
+                              description: Camel main application provider, ie, Camel
+                                Quarkus
                               type: string
                             version:
+                              description: Camel K Runtime version
                               type: string
                           required:
                           - applicationClass
@@ -372,18 +453,29 @@ spec:
                           - version
                           type: object
                         sources:
+                          description: 'the source code for the Route(s) Deprecated:
+                            no longer in use'
                           items:
-                            description: SourceSpec --
+                            description: SourceSpec defines the configuration for
+                              one or more routes to be executed in a certain Camel
+                              DSL language
                             properties:
                               compression:
+                                description: if the content is compressed (base64
+                                  encrypted)
                                 type: boolean
                               content:
+                                description: the source code (plain text)
                                 type: string
                               contentKey:
+                                description: the confimap key holding the source content
                                 type: string
                               contentRef:
+                                description: the confimap reference holding the source
+                                  content
                                 type: string
                               contentType:
+                                description: the content type (tipically text or binary)
                                 type: string
                               interceptors:
                                 description: Interceptors are optional identifiers
@@ -393,15 +485,18 @@ spec:
                                   type: string
                                 type: array
                               language:
-                                description: Language --
+                                description: specify which is the language (Camel
+                                  DSL) used to interpret this source code
                                 type: string
                               loader:
                                 description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                                   that will interpret this source at runtime
                                 type: string
                               name:
+                                description: the name of the specification
                                 type: string
                               path:
+                                description: the path where the file is stored
                                 type: string
                               property-names:
                                 description: List of property names defined in the
@@ -410,6 +505,7 @@ spec:
                                   type: string
                                 type: array
                               rawContent:
+                                description: the source code (binary)
                                 format: byte
                                 type: string
                               type:
@@ -419,81 +515,108 @@ spec:
                             type: object
                           type: array
                         steps:
+                          description: the list of steps to execute (see pkg/builder/)
                           items:
                             type: string
                           type: array
                       type: object
                     kaniko:
-                      description: KanikoTask --
+                      description: a KanikoTask, for Kaniko strategy
                       properties:
                         baseImage:
+                          description: base image layer
                           type: string
                         cache:
-                          description: KanikoTaskCache --
+                          description: use a cache
                           properties:
                             enabled:
+                              description: true if a cache is enabled
                               type: boolean
                             persistentVolumeClaim:
+                              description: the PVC used to store the cache
                               type: string
                           type: object
                         contextDir:
+                          description: can be useful to share info with other tasks
                           type: string
                         image:
+                          description: final image name
                           type: string
                         name:
+                          description: name of the task
                           type: string
                         registry:
-                          description: RegistrySpec provides the configuration for
-                            the container registry
+                          description: where to publish the final image
                           properties:
                             address:
+                              description: the URI to access
                               type: string
                             ca:
+                              description: the configmap which stores the Certificate
+                                Authority
                               type: string
                             insecure:
+                              description: if the container registry is insecure (ie,
+                                http only)
                               type: boolean
                             organization:
+                              description: the registry organization
                               type: string
                             secret:
+                              description: the secret where credentials are stored
                               type: string
                           type: object
                         verbose:
+                          description: log more information
                           type: boolean
                       type: object
                     s2i:
-                      description: S2iTask --
+                      description: a S2iTask, for S2I strategy
                       properties:
                         contextDir:
+                          description: can be useful to share info with other tasks
                           type: string
                         name:
+                          description: name of the task
                           type: string
                         tag:
+                          description: used by the ImageStream
                           type: string
                       type: object
                     spectrum:
-                      description: SpectrumTask --
+                      description: a SpectrumTask, for Spectrum strategy
                       properties:
                         baseImage:
+                          description: base image layer
                           type: string
                         contextDir:
+                          description: can be useful to share info with other tasks
                           type: string
                         image:
+                          description: final image name
                           type: string
                         name:
+                          description: name of the task
                           type: string
                         registry:
-                          description: RegistrySpec provides the configuration for
-                            the container registry
+                          description: where to publish the final image
                           properties:
                             address:
+                              description: the URI to access
                               type: string
                             ca:
+                              description: the configmap which stores the Certificate
+                                Authority
                               type: string
                             insecure:
+                              description: if the container registry is insecure (ie,
+                                http only)
                               type: boolean
                             organization:
+                              description: the registry organization
                               type: string
                             secret:
+                              description: the secret where credentials are stored
                               type: string
                           type: object
                       type: object
@@ -511,24 +634,33 @@ spec:
             description: BuildStatus defines the observed state of Build
             properties:
               artifacts:
+                description: a list of artifacts contained in the build
                 items:
-                  description: Artifact --
+                  description: Artifact represents a materialized artifact (a jar
+                    dependency or in general a file used by the build)
                   properties:
                     checksum:
+                      description: a checksum (SHA1) of the content
                       type: string
                     id:
+                      description: the identification (GAV for maven dependencies
+                        or file name for other file types)
                       type: string
                     location:
+                      description: where it is located in the builder `Pod`
                       type: string
                     target:
+                      description: the expected location in the runtime
                       type: string
                   required:
                   - id
                   type: object
                 type: array
               baseImage:
+                description: the base image used for this build
                 type: string
               conditions:
+                description: a list of conditions occurred during the build
                 items:
                   description: BuildCondition describes the state of a resource at
                     a certain point.
@@ -561,26 +693,32 @@ spec:
                   type: object
                 type: array
               digest:
+                description: the digest from image
                 type: string
               duration:
-                description: Change to Duration / ISO 8601 when CRD uses OpenAPI spec
-                  v3 https://github.com/OAI/OpenAPI-Specification/issues/845
+                description: how long it took for the build Change to Duration / ISO
+                  8601 when CRD uses OpenAPI spec v3 https://github.com/OAI/OpenAPI-Specification/issues/845
                 type: string
               error:
+                description: the error description (if any)
                 type: string
               failure:
-                description: Failure --
+                description: the reason of the failure (if any)
                 properties:
                   reason:
+                    description: a short text specifying the reason
                     type: string
                   recovery:
-                    description: FailureRecovery --
+                    description: the recovery attempted for this failure
                     properties:
                       attempt:
+                        description: attempt number
                         type: integer
                       attemptMax:
+                        description: maximum number of attempts
                         type: integer
                       attemptTime:
+                        description: time of the attempt execution
                         format: date-time
                         type: string
                     required:
@@ -588,6 +726,7 @@ spec:
                     - attemptMax
                     type: object
                   time:
+                    description: the time when the failure has happened
                     format: date-time
                     type: string
                 required:
@@ -596,11 +735,13 @@ spec:
                 - time
                 type: object
               image:
+                description: the image name built
                 type: string
               phase:
-                description: BuildPhase --
+                description: describes the phase
                 type: string
               startedAt:
+                description: the time when it started
                 format: date-time
                 type: string
             type: object
diff --git a/config/crd/bases/camel.apache.org_camelcatalogs.yaml b/config/crd/bases/camel.apache.org_camelcatalogs.yaml
index 4dfe8c8..8866162 100644
--- a/config/crd/bases/camel.apache.org_camelcatalogs.yaml
+++ b/config/crd/bases/camel.apache.org_camelcatalogs.yaml
@@ -50,7 +50,9 @@ spec:
     name: v1
     schema:
       openAPIV3Schema:
-        description: CamelCatalog is the Schema for the camelcatalogs API
+        description: CamelCatalog represents the languages, components, data formats
+          and capabilities enabled on a given runtime provider. The catalog may be
+          statically generated.
         properties:
           apiVersion:
             description: 'APIVersion defines the versioned schema of this representation
@@ -65,31 +67,41 @@ spec:
           metadata:
             type: object
           spec:
-            description: CamelCatalogSpec defines the desired state of CamelCatalog
+            description: the desired state of the catalog
             properties:
               artifacts:
                 additionalProperties:
-                  description: CamelArtifact --
+                  description: CamelArtifact represent the configuration for a feature
+                    offered by Camel
                   properties:
                     artifactId:
+                      description: Maven Artifact
                       type: string
                     dataformats:
+                      description: accepted data formats
                       items:
                         type: string
                       type: array
                     dependencies:
+                      description: required dependencies
                       items:
                         description: CamelArtifactDependency represent a maven's dependency
                         properties:
                           artifactId:
+                            description: Maven Artifact
                             type: string
                           exclusions:
+                            description: provide a list of artifacts to exclude for
+                              this dependency
                             items:
-                              description: CamelArtifactExclusion --
+                              description: CamelArtifactExclusion represents an exclusion
+                                clause
                               properties:
                                 artifactId:
+                                  description: Maven Artifact
                                   type: string
                                 groupId:
+                                  description: Maven Group
                                   type: string
                               required:
                               - artifactId
@@ -97,8 +109,10 @@ spec:
                               type: object
                             type: array
                           groupId:
+                            description: Maven Group
                             type: string
                           version:
+                            description: Maven Version
                             type: string
                         required:
                         - artifactId
@@ -106,12 +120,17 @@ spec:
                         type: object
                       type: array
                     exclusions:
+                      description: provide a list of artifacts to exclude for this
+                        dependency
                       items:
-                        description: CamelArtifactExclusion --
+                        description: CamelArtifactExclusion represents an exclusion
+                          clause
                         properties:
                           artifactId:
+                            description: Maven Artifact
                             type: string
                           groupId:
+                            description: Maven Group
                             type: string
                         required:
                         - artifactId
@@ -119,37 +138,51 @@ spec:
                         type: object
                       type: array
                     groupId:
+                      description: Maven Group
                       type: string
                     javaTypes:
+                      description: the Java types used by the artifact feature (ie,
+                        component, data format, ...)
                       items:
                         type: string
                       type: array
                     languages:
+                      description: accepted languages
                       items:
                         type: string
                       type: array
                     schemes:
+                      description: accepted URI schemes
                       items:
-                        description: CamelScheme --
+                        description: CamelScheme represents the scheme used to identify
+                          a component in a URI (ie, timer in a timer:xyz endpoint
+                          URI)
                         properties:
                           consumer:
-                            description: CamelSchemeScope contains scoped information
-                              about a scheme
+                            description: required scope for consumer
                             properties:
                               dependencies:
+                                description: list of dependencies needed for this
+                                  scope
                                 items:
                                   description: CamelArtifactDependency represent a
                                     maven's dependency
                                   properties:
                                     artifactId:
+                                      description: Maven Artifact
                                       type: string
                                     exclusions:
+                                      description: provide a list of artifacts to
+                                        exclude for this dependency
                                       items:
-                                        description: CamelArtifactExclusion --
+                                        description: CamelArtifactExclusion represents
+                                          an exclusion clause
                                         properties:
                                           artifactId:
+                                            description: Maven Artifact
                                             type: string
                                           groupId:
+                                            description: Maven Group
                                             type: string
                                         required:
                                         - artifactId
@@ -157,8 +190,10 @@ spec:
                                         type: object
                                       type: array
                                     groupId:
+                                      description: Maven Group
                                       type: string
                                     version:
+                                      description: Maven Version
                                       type: string
                                   required:
                                   - artifactId
@@ -167,29 +202,39 @@ spec:
                                 type: array
                             type: object
                           http:
+                            description: is a HTTP based scheme
                             type: boolean
                           id:
+                            description: the ID (ie, timer in a timer:xyz URI)
                             type: string
                           passive:
+                            description: is a passive scheme
                             type: boolean
                           producer:
-                            description: CamelSchemeScope contains scoped information
-                              about a scheme
+                            description: required scope for producers
                             properties:
                               dependencies:
+                                description: list of dependencies needed for this
+                                  scope
                                 items:
                                   description: CamelArtifactDependency represent a
                                     maven's dependency
                                   properties:
                                     artifactId:
+                                      description: Maven Artifact
                                       type: string
                                     exclusions:
+                                      description: provide a list of artifacts to
+                                        exclude for this dependency
                                       items:
-                                        description: CamelArtifactExclusion --
+                                        description: CamelArtifactExclusion represents
+                                          an exclusion clause
                                         properties:
                                           artifactId:
+                                            description: Maven Artifact
                                             type: string
                                           groupId:
+                                            description: Maven Group
                                             type: string
                                         required:
                                         - artifactId
@@ -197,8 +242,10 @@ spec:
                                         type: object
                                       type: array
                                     groupId:
+                                      description: Maven Group
                                       type: string
                                     version:
+                                      description: Maven Version
                                       type: string
                                   required:
                                   - artifactId
@@ -213,27 +260,37 @@ spec:
                         type: object
                       type: array
                     version:
+                      description: Maven Version
                       type: string
                   required:
                   - artifactId
                   - groupId
                   type: object
+                description: artifacts required by this catalog
                 type: object
               loaders:
                 additionalProperties:
-                  description: CamelLoader --
+                  description: CamelLoader represents the configuration required to
+                    load a DSL
                   properties:
                     artifactId:
+                      description: Maven Artifact
                       type: string
                     dependencies:
+                      description: a list of additional dependencies required beside
+                        the base one
                       items:
-                        description: MavenArtifact defines a Maven artifact
+                        description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                          Maven artifact
                         properties:
                           artifactId:
+                            description: Maven Artifact
                             type: string
                           groupId:
+                            description: Maven Group
                             type: string
                           version:
+                            description: Maven Version
                             type: string
                         required:
                         - artifactId
@@ -241,40 +298,52 @@ spec:
                         type: object
                       type: array
                     groupId:
+                      description: Maven Group
                       type: string
                     languages:
+                      description: a list of DSLs supported
                       items:
                         type: string
                       type: array
                     metadata:
                       additionalProperties:
                         type: string
+                      description: 'Deprecated: never used a set of general metadata
+                        for various purposes'
                       type: object
                     version:
+                      description: Maven Version
                       type: string
                   required:
                   - artifactId
                   - groupId
                   type: object
+                description: loaders required by this catalog
                 type: object
               runtime:
-                description: RuntimeSpec --
+                description: the runtime targeted for the catalog
                 properties:
                   applicationClass:
+                    description: application entry point (main) to be executed
                     type: string
                   capabilities:
                     additionalProperties:
-                      description: Capability --
+                      description: Capability is a particular feature which requires
+                        a well known set of dependencies
                       properties:
                         dependencies:
                           items:
-                            description: MavenArtifact defines a Maven artifact
+                            description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                              Maven artifact
                             properties:
                               artifactId:
+                                description: Maven Artifact
                                 type: string
                               groupId:
+                                description: Maven Group
                                 type: string
                               version:
+                                description: Maven Version
                                 type: string
                             required:
                             - artifactId
@@ -284,20 +353,27 @@ spec:
                         metadata:
                           additionalProperties:
                             type: string
+                          description: 'Deprecated: not in use'
                           type: object
                       required:
                       - dependencies
                       type: object
+                    description: features offered by this runtime
                     type: object
                   dependencies:
+                    description: list of dependencies needed to run the application
                     items:
-                      description: MavenArtifact defines a Maven artifact
+                      description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                        Maven artifact
                       properties:
                         artifactId:
+                          description: Maven Artifact
                           type: string
                         groupId:
+                          description: Maven Group
                           type: string
                         version:
+                          description: Maven Version
                           type: string
                       required:
                       - artifactId
@@ -307,11 +383,13 @@ spec:
                   metadata:
                     additionalProperties:
                       type: string
+                    description: set of metadata
                     type: object
                   provider:
-                    description: RuntimeProvider --
+                    description: Camel main application provider, ie, Camel Quarkus
                     type: string
                   version:
+                    description: Camel K Runtime version
                     type: string
                 required:
                 - applicationClass
@@ -325,7 +403,7 @@ spec:
             - runtime
             type: object
           status:
-            description: CamelCatalogStatus defines the observed state of CamelCatalog
+            description: the actual state of the catalog
             type: object
         type: object
     served: true
diff --git a/config/crd/bases/camel.apache.org_integrationkits.yaml b/config/crd/bases/camel.apache.org_integrationkits.yaml
index 6d7ac30..0aa8a43 100644
--- a/config/crd/bases/camel.apache.org_integrationkits.yaml
+++ b/config/crd/bases/camel.apache.org_integrationkits.yaml
@@ -54,7 +54,12 @@ spec:
     name: v1
     schema:
       openAPIV3Schema:
-        description: IntegrationKit is the Schema for the integrationkits API
+        description: IntegrationKit defines a container image and additional configuration
+          needed to run an `Integration`. An `IntegrationKit` is a generic image generally
+          built from the requirements of an `Integration`, but agnostic to it, in
+          order to be reused by any other `Integration` which has the same required
+          set of capabilities. An `IntegrationKit` may be used for other kits as a
+          base container layer, when the `incremental` build option is enabled.
         properties:
           apiVersion:
             description: 'APIVersion defines the versioned schema of this representation
@@ -69,21 +74,31 @@ spec:
           metadata:
             type: object
           spec:
-            description: IntegrationKitSpec defines the desired state of IntegrationKit
+            description: the desired configuration
             properties:
               configuration:
+                description: 'configuration used by the kit TODO: we should deprecate
+                  in future releases in favour of mount, openapi or camel traits'
                 items:
-                  description: ConfigurationSpec --
+                  description: ConfigurationSpec represents a generic configuration
+                    specification
                   properties:
                     resourceKey:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceMountPoint:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceType:
+                      description: 'Deprecated: no longer used'
                       type: string
                     type:
+                      description: 'represents the type of configuration, ie: property,
+                        configmap, secret, ...'
                       type: string
                     value:
+                      description: the value to assign to the configuration (syntax
+                        may vary depending on the `Type`)
                       type: string
                   required:
                   - type
@@ -91,16 +106,18 @@ spec:
                   type: object
                 type: array
               dependencies:
+                description: a list of Camel dependecies used by this kit
                 items:
                   type: string
                 type: array
               image:
+                description: the container image as identify in the container registry
                 type: string
               profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
+                description: the profile which is expected by this kit
                 type: string
               repositories:
+                description: Maven repositories that can be used by the kit
                 items:
                   type: string
                 type: array
@@ -109,36 +126,47 @@ spec:
                   description: A TraitSpec contains the configuration of a trait
                   properties:
                     configuration:
-                      description: TraitConfiguration --
+                      description: TraitConfiguration parameters configuration
                       type: object
                       x-kubernetes-preserve-unknown-fields: true
                   required:
                   - configuration
                   type: object
+                description: traits that the kit will execute
                 type: object
             type: object
           status:
-            description: IntegrationKitStatus defines the observed state of IntegrationKit
+            description: the actual status
             properties:
               artifacts:
+                description: list of artifacts used by the kit
                 items:
-                  description: Artifact --
+                  description: Artifact represents a materialized artifact (a jar
+                    dependency or in general a file used by the build)
                   properties:
                     checksum:
+                      description: a checksum (SHA1) of the content
                       type: string
                     id:
+                      description: the identification (GAV for maven dependencies
+                        or file name for other file types)
                       type: string
                     location:
+                      description: where it is located in the builder `Pod`
                       type: string
                     target:
+                      description: the expected location in the runtime
                       type: string
                   required:
                   - id
                   type: object
                 type: array
               baseImage:
+                description: base image used by the kit
                 type: string
               conditions:
+                description: a list of conditions which happened for the events related
+                  the kit
                 items:
                   description: IntegrationKitCondition describes the state of a resource
                     at a certain point.
@@ -171,20 +199,25 @@ spec:
                   type: object
                 type: array
               digest:
+                description: actual image digest of the kit
                 type: string
               failure:
-                description: Failure --
+                description: failure reason (if any)
                 properties:
                   reason:
+                    description: a short text specifying the reason
                     type: string
                   recovery:
-                    description: FailureRecovery --
+                    description: the recovery attempted for this failure
                     properties:
                       attempt:
+                        description: attempt number
                         type: integer
                       attemptMax:
+                        description: maximum number of attempts
                         type: integer
                       attemptTime:
+                        description: time of the attempt execution
                         format: date-time
                         type: string
                     required:
@@ -192,6 +225,7 @@ spec:
                     - attemptMax
                     type: object
                   time:
+                    description: the time when the failure has happened
                     format: date-time
                     type: string
                 required:
@@ -200,18 +234,22 @@ spec:
                 - time
                 type: object
               image:
+                description: actual image name of the kit
                 type: string
               phase:
-                description: IntegrationKitPhase --
+                description: phase of the kit
                 type: string
               platform:
+                description: the platform for which this kit was configured
                 type: string
               runtimeProvider:
-                description: RuntimeProvider --
+                description: the runtime provider for which this kit was configured
                 type: string
               runtimeVersion:
+                description: the runtime version for which this kit was configured
                 type: string
               version:
+                description: the Camel K operator version for which this kit was configured
                 type: string
             type: object
         type: object
diff --git a/config/crd/bases/camel.apache.org_integrationplatforms.yaml b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
index 830347f..967d7fe 100644
--- a/config/crd/bases/camel.apache.org_integrationplatforms.yaml
+++ b/config/crd/bases/camel.apache.org_integrationplatforms.yaml
@@ -46,8 +46,11 @@ spec:
     name: v1
     schema:
       openAPIV3Schema:
-        description: IntegrationPlatform is the Schema for the integrationplatforms
-          API
+        description: IntegrationPlatform is the resource used to drive the Camel K
+          operator behavior. It defines the behavior of all Custom Resources (`IntegrationKit`,
+          `Integration`, `Kamelet`) in the given namespace. When the Camel K operator
+          is installed in `global` mode, you will need to specify an `IntegrationPlatform`
+          in each namespace where you want the Camel K operator to be executed
         properties:
           apiVersion:
             description: 'APIVersion defines the versioned schema of this representation
@@ -65,21 +68,26 @@ spec:
             description: IntegrationPlatformSpec defines the desired state of IntegrationPlatform
             properties:
               build:
-                description: IntegrationPlatformBuildSpec contains platform related
-                  build information
+                description: specify how to build the Integration/IntegrationKits
                 properties:
                   baseImage:
+                    description: a base image that can be used as base layer for all
+                      images. It can be useful if you want to provide some custom
+                      base image with further utility softwares
                     type: string
                   buildStrategy:
-                    description: BuildStrategy specifies how the Build should be executed
+                    description: the strategy to adopt for building an Integration
+                      base image
                     enum:
                     - routine
                     - pod
                     type: string
                   kanikoBuildCache:
+                    description: enables Kaniko publish strategy cache
                     type: boolean
                   maven:
-                    description: MavenSpec --
+                    description: Maven configuration used to build the Camel/Camel-Quarkus
+                      applications
                     properties:
                       caSecret:
                         description: The Secret name and key, containing the CA certificate(s)
@@ -115,13 +123,17 @@ spec:
                       extension:
                         description: The Maven build extensions. See https://maven.apache.org/guides/mini/guide-using-extensions.html.
                         items:
-                          description: MavenArtifact defines a Maven artifact
+                          description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                            Maven artifact
                           properties:
                             artifactId:
+                              description: Maven Artifact
                               type: string
                             groupId:
+                              description: Maven Group
                               type: string
                             version:
+                              description: Maven Version
                               type: string
                           required:
                           - artifactId
@@ -180,51 +192,73 @@ spec:
                         type: object
                     type: object
                   persistentVolumeClaim:
+                    description: the Persistent Volume Claim used by Kaniko publish
+                      strategy, if cache is enabled
                     type: string
                   publishStrategy:
-                    description: IntegrationPlatformBuildPublishStrategy enumerates
-                      all implemented publish strategies
+                    description: the strategy to adopt for publishing an Integration
+                      base image
                     type: string
                   registry:
-                    description: RegistrySpec provides the configuration for the container
-                      registry
+                    description: the image registry used to push/pull Integration
+                      images
                     properties:
                       address:
+                        description: the URI to access
                         type: string
                       ca:
+                        description: the configmap which stores the Certificate Authority
                         type: string
                       insecure:
+                        description: if the container registry is insecure (ie, http
+                          only)
                         type: boolean
                       organization:
+                        description: the registry organization
                         type: string
                       secret:
+                        description: the secret where credentials are stored
                         type: string
                     type: object
                   runtimeProvider:
-                    description: RuntimeProvider --
+                    description: the runtime used. Likely Camel Quarkus (we used to
+                      have main runtime which has been discontinued since version
+                      1.5)
                     type: string
                   runtimeVersion:
+                    description: the Camel K Runtime dependency version
                     type: string
                   timeout:
+                    description: how much time to wait before time out the build process
                     type: string
                 type: object
               cluster:
-                description: IntegrationPlatformCluster is the kind of orchestration
-                  cluster the platform is installed into
+                description: what kind of cluster you're running (ie, plain Kubernetes
+                  or Openshift)
                 type: string
               configuration:
+                description: list of configuration properties to be attached to all
+                  the Integration/IntegrationKits built from this IntegrationPlatform
                 items:
-                  description: ConfigurationSpec --
+                  description: ConfigurationSpec represents a generic configuration
+                    specification
                   properties:
                     resourceKey:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceMountPoint:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceType:
+                      description: 'Deprecated: no longer used'
                       type: string
                     type:
+                      description: 'represents the type of configuration, ie: property,
+                        configmap, secret, ...'
                       type: string
                     value:
+                      description: the value to assign to the configuration (syntax
+                        may vary depending on the `Type`)
                       type: string
                   required:
                   - type
@@ -232,57 +266,69 @@ spec:
                   type: object
                 type: array
               kamelet:
-                description: IntegrationPlatformKameletSpec --
+                description: configuration to be executed to all Kamelets controlled
+                  by this IntegrationPlatform
                 properties:
                   repositories:
+                    description: remote repository used to retrieve Kamelet catalog
                     items:
-                      description: IntegrationPlatformKameletRepositorySpec --
+                      description: IntegrationPlatformKameletRepositorySpec defines
+                        the location of the Kamelet catalog to use
                       properties:
                         uri:
+                          description: the remote repository in the format github:ORG/REPO/PATH_TO_KAMELETS_FOLDER
                           type: string
                       type: object
                     type: array
                 type: object
               profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
+                description: the profile you wish to use. It will apply certain traits
+                  which are required by the specific profile chosen. It usually relates
+                  the Cluster with the optional definition of special profiles (ie,
+                  Knative)
                 type: string
               resources:
-                description: IntegrationPlatformResourcesSpec contains platform related
-                  resources
+                description: 'Deprecated: not used'
                 type: object
               traits:
                 additionalProperties:
                   description: A TraitSpec contains the configuration of a trait
                   properties:
                     configuration:
-                      description: TraitConfiguration --
+                      description: TraitConfiguration parameters configuration
                       type: object
                       x-kubernetes-preserve-unknown-fields: true
                   required:
                   - configuration
                   type: object
+                description: list of traits to be executed for all the Integration/IntegrationKits
+                  built from this IntegrationPlatform
                 type: object
             type: object
           status:
             description: IntegrationPlatformStatus defines the observed state of IntegrationPlatform
             properties:
               build:
-                description: IntegrationPlatformBuildSpec contains platform related
-                  build information
+                description: specify how to build the Integration/IntegrationKits
                 properties:
                   baseImage:
+                    description: a base image that can be used as base layer for all
+                      images. It can be useful if you want to provide some custom
+                      base image with further utility softwares
                     type: string
                   buildStrategy:
-                    description: BuildStrategy specifies how the Build should be executed
+                    description: the strategy to adopt for building an Integration
+                      base image
                     enum:
                     - routine
                     - pod
                     type: string
                   kanikoBuildCache:
+                    description: enables Kaniko publish strategy cache
                     type: boolean
                   maven:
-                    description: MavenSpec --
+                    description: Maven configuration used to build the Camel/Camel-Quarkus
+                      applications
                     properties:
                       caSecret:
                         description: The Secret name and key, containing the CA certificate(s)
@@ -318,13 +364,17 @@ spec:
                       extension:
                         description: The Maven build extensions. See https://maven.apache.org/guides/mini/guide-using-extensions.html.
                         items:
-                          description: MavenArtifact defines a Maven artifact
+                          description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                            Maven artifact
                           properties:
                             artifactId:
+                              description: Maven Artifact
                               type: string
                             groupId:
+                              description: Maven Group
                               type: string
                             version:
+                              description: Maven Version
                               type: string
                           required:
                           - artifactId
@@ -383,39 +433,53 @@ spec:
                         type: object
                     type: object
                   persistentVolumeClaim:
+                    description: the Persistent Volume Claim used by Kaniko publish
+                      strategy, if cache is enabled
                     type: string
                   publishStrategy:
-                    description: IntegrationPlatformBuildPublishStrategy enumerates
-                      all implemented publish strategies
+                    description: the strategy to adopt for publishing an Integration
+                      base image
                     type: string
                   registry:
-                    description: RegistrySpec provides the configuration for the container
-                      registry
+                    description: the image registry used to push/pull Integration
+                      images
                     properties:
                       address:
+                        description: the URI to access
                         type: string
                       ca:
+                        description: the configmap which stores the Certificate Authority
                         type: string
                       insecure:
+                        description: if the container registry is insecure (ie, http
+                          only)
                         type: boolean
                       organization:
+                        description: the registry organization
                         type: string
                       secret:
+                        description: the secret where credentials are stored
                         type: string
                     type: object
                   runtimeProvider:
-                    description: RuntimeProvider --
+                    description: the runtime used. Likely Camel Quarkus (we used to
+                      have main runtime which has been discontinued since version
+                      1.5)
                     type: string
                   runtimeVersion:
+                    description: the Camel K Runtime dependency version
                     type: string
                   timeout:
+                    description: how much time to wait before time out the build process
                     type: string
                 type: object
               cluster:
-                description: IntegrationPlatformCluster is the kind of orchestration
-                  cluster the platform is installed into
+                description: what kind of cluster you're running (ie, plain Kubernetes
+                  or Openshift)
                 type: string
               conditions:
+                description: which are the conditions met (particularly useful when
+                  in ERROR phase)
                 items:
                   description: IntegrationPlatformCondition describes the state of
                     a resource at a certain point.
@@ -448,18 +512,28 @@ spec:
                   type: object
                 type: array
               configuration:
+                description: list of configuration properties to be attached to all
+                  the Integration/IntegrationKits built from this IntegrationPlatform
                 items:
-                  description: ConfigurationSpec --
+                  description: ConfigurationSpec represents a generic configuration
+                    specification
                   properties:
                     resourceKey:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceMountPoint:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceType:
+                      description: 'Deprecated: no longer used'
                       type: string
                     type:
+                      description: 'represents the type of configuration, ie: property,
+                        configmap, secret, ...'
                       type: string
                     value:
+                      description: the value to assign to the configuration (syntax
+                        may vary depending on the `Type`)
                       type: string
                   required:
                   - type
@@ -469,43 +543,53 @@ spec:
               info:
                 additionalProperties:
                   type: string
+                description: generic information related to the build of Camel K operator
+                  software
                 type: object
               kamelet:
-                description: IntegrationPlatformKameletSpec --
+                description: configuration to be executed to all Kamelets controlled
+                  by this IntegrationPlatform
                 properties:
                   repositories:
+                    description: remote repository used to retrieve Kamelet catalog
                     items:
-                      description: IntegrationPlatformKameletRepositorySpec --
+                      description: IntegrationPlatformKameletRepositorySpec defines
+                        the location of the Kamelet catalog to use
                       properties:
                         uri:
+                          description: the remote repository in the format github:ORG/REPO/PATH_TO_KAMELETS_FOLDER
                           type: string
                       type: object
                     type: array
                 type: object
               phase:
-                description: IntegrationPlatformPhase --
+                description: defines in what phase the IntegrationPlatform is found
                 type: string
               profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
+                description: the profile you wish to use. It will apply certain traits
+                  which are required by the specific profile chosen. It usually relates
+                  the Cluster with the optional definition of special profiles (ie,
+                  Knative)
                 type: string
               resources:
-                description: IntegrationPlatformResourcesSpec contains platform related
-                  resources
+                description: 'Deprecated: not used'
                 type: object
               traits:
                 additionalProperties:
                   description: A TraitSpec contains the configuration of a trait
                   properties:
                     configuration:
-                      description: TraitConfiguration --
+                      description: TraitConfiguration parameters configuration
                       type: object
                       x-kubernetes-preserve-unknown-fields: true
                   required:
                   - configuration
                   type: object
+                description: list of traits to be executed for all the Integration/IntegrationKits
+                  built from this IntegrationPlatform
                 type: object
               version:
+                description: the Camel K operator version controlling this IntegrationPlatform
                 type: string
             type: object
         type: object
diff --git a/config/crd/bases/camel.apache.org_integrations.yaml b/config/crd/bases/camel.apache.org_integrations.yaml
index 81b604f..48159ee 100644
--- a/config/crd/bases/camel.apache.org_integrations.yaml
+++ b/config/crd/bases/camel.apache.org_integrations.yaml
@@ -77,17 +77,25 @@ spec:
                   Use container trait (mount.resources) to manage resources Use container
                   trait (mount.volumes) to manage volumes'
                 items:
-                  description: ConfigurationSpec --
+                  description: ConfigurationSpec represents a generic configuration
+                    specification
                   properties:
                     resourceKey:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceMountPoint:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceType:
+                      description: 'Deprecated: no longer used'
                       type: string
                     type:
+                      description: 'represents the type of configuration, ie: property,
+                        configmap, secret, ...'
                       type: string
                     value:
+                      description: the value to assign to the configuration (syntax
+                        may vary depending on the `Type`)
                       type: string
                   required:
                   - type
@@ -180,29 +188,41 @@ spec:
                   to manage resources Use openapi trait (openapi.configmaps) to manage
                   OpenAPIs specifications'
                 items:
-                  description: ResourceSpec --
+                  description: 'ResourceSpec represent an attached resource which
+                    will be materialized as a file on the running `Pod` TODO: we should
+                    deprecate in future releases in favour of mount, openapi or camel
+                    traits'
                   properties:
                     compression:
+                      description: if the content is compressed (base64 encrypted)
                       type: boolean
                     content:
+                      description: the source code (plain text)
                       type: string
                     contentKey:
+                      description: the confimap key holding the source content
                       type: string
                     contentRef:
+                      description: the confimap reference holding the source content
                       type: string
                     contentType:
+                      description: the content type (tipically text or binary)
                       type: string
                     mountPath:
+                      description: the mount path on destination `Pod`
                       type: string
                     name:
+                      description: the name of the specification
                       type: string
                     path:
+                      description: the path where the file is stored
                       type: string
                     rawContent:
+                      description: the source code (binary)
                       format: byte
                       type: string
                     type:
-                      description: ResourceType --
+                      description: the kind of data to expect
                       type: string
                   type: object
                 type: array
@@ -210,17 +230,23 @@ spec:
                 type: string
               sources:
                 items:
-                  description: SourceSpec --
+                  description: SourceSpec defines the configuration for one or more
+                    routes to be executed in a certain Camel DSL language
                   properties:
                     compression:
+                      description: if the content is compressed (base64 encrypted)
                       type: boolean
                     content:
+                      description: the source code (plain text)
                       type: string
                     contentKey:
+                      description: the confimap key holding the source content
                       type: string
                     contentRef:
+                      description: the confimap reference holding the source content
                       type: string
                     contentType:
+                      description: the content type (tipically text or binary)
                       type: string
                     interceptors:
                       description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
@@ -229,15 +255,18 @@ spec:
                         type: string
                       type: array
                     language:
-                      description: Language --
+                      description: specify which is the language (Camel DSL) used
+                        to interpret this source code
                       type: string
                     loader:
                       description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                         that will interpret this source at runtime
                       type: string
                     name:
+                      description: the name of the specification
                       type: string
                     path:
+                      description: the path where the file is stored
                       type: string
                     property-names:
                       description: List of property names defined in the source (e.g.
@@ -246,6 +275,7 @@ spec:
                         type: string
                       type: array
                     rawContent:
+                      description: the source code (binary)
                       format: byte
                       type: string
                     type:
@@ -5659,7 +5689,7 @@ spec:
                   description: A TraitSpec contains the configuration of a trait
                   properties:
                     configuration:
-                      description: TraitConfiguration --
+                      description: TraitConfiguration parameters configuration
                       type: object
                       x-kubernetes-preserve-unknown-fields: true
                   required:
@@ -5713,17 +5743,25 @@ spec:
                 type: array
               configuration:
                 items:
-                  description: ConfigurationSpec --
+                  description: ConfigurationSpec represents a generic configuration
+                    specification
                   properties:
                     resourceKey:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceMountPoint:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceType:
+                      description: 'Deprecated: no longer used'
                       type: string
                     type:
+                      description: 'represents the type of configuration, ie: property,
+                        configmap, secret, ...'
                       type: string
                     value:
+                      description: the value to assign to the configuration (syntax
+                        may vary depending on the `Type`)
                       type: string
                   required:
                   - type
@@ -5738,45 +5776,63 @@ spec:
                 type: string
               generatedResources:
                 items:
-                  description: ResourceSpec --
+                  description: 'ResourceSpec represent an attached resource which
+                    will be materialized as a file on the running `Pod` TODO: we should
+                    deprecate in future releases in favour of mount, openapi or camel
+                    traits'
                   properties:
                     compression:
+                      description: if the content is compressed (base64 encrypted)
                       type: boolean
                     content:
+                      description: the source code (plain text)
                       type: string
                     contentKey:
+                      description: the confimap key holding the source content
                       type: string
                     contentRef:
+                      description: the confimap reference holding the source content
                       type: string
                     contentType:
+                      description: the content type (tipically text or binary)
                       type: string
                     mountPath:
+                      description: the mount path on destination `Pod`
                       type: string
                     name:
+                      description: the name of the specification
                       type: string
                     path:
+                      description: the path where the file is stored
                       type: string
                     rawContent:
+                      description: the source code (binary)
                       format: byte
                       type: string
                     type:
-                      description: ResourceType --
+                      description: the kind of data to expect
                       type: string
                   type: object
                 type: array
               generatedSources:
                 items:
-                  description: SourceSpec --
+                  description: SourceSpec defines the configuration for one or more
+                    routes to be executed in a certain Camel DSL language
                   properties:
                     compression:
+                      description: if the content is compressed (base64 encrypted)
                       type: boolean
                     content:
+                      description: the source code (plain text)
                       type: string
                     contentKey:
+                      description: the confimap key holding the source content
                       type: string
                     contentRef:
+                      description: the confimap reference holding the source content
                       type: string
                     contentType:
+                      description: the content type (tipically text or binary)
                       type: string
                     interceptors:
                       description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
@@ -5785,15 +5841,18 @@ spec:
                         type: string
                       type: array
                     language:
-                      description: Language --
+                      description: specify which is the language (Camel DSL) used
+                        to interpret this source code
                       type: string
                     loader:
                       description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                         that will interpret this source at runtime
                       type: string
                     name:
+                      description: the name of the specification
                       type: string
                     path:
+                      description: the path where the file is stored
                       type: string
                     property-names:
                       description: List of property names defined in the source (e.g.
@@ -5802,6 +5861,7 @@ spec:
                         type: string
                       type: array
                     rawContent:
+                      description: the source code (binary)
                       format: byte
                       type: string
                     type:
@@ -5889,7 +5949,7 @@ spec:
                 format: int32
                 type: integer
               runtimeProvider:
-                description: RuntimeProvider --
+                description: RuntimeProvider is the provider chosen for the runtime
                 type: string
               runtimeVersion:
                 type: string
diff --git a/config/crd/bases/camel.apache.org_kameletbindings.yaml b/config/crd/bases/camel.apache.org_kameletbindings.yaml
index 944a254..5147981 100644
--- a/config/crd/bases/camel.apache.org_kameletbindings.yaml
+++ b/config/crd/bases/camel.apache.org_kameletbindings.yaml
@@ -82,17 +82,25 @@ spec:
                       configs Use container trait (mount.resources) to manage resources
                       Use container trait (mount.volumes) to manage volumes'
                     items:
-                      description: ConfigurationSpec --
+                      description: ConfigurationSpec represents a generic configuration
+                        specification
                       properties:
                         resourceKey:
+                          description: 'Deprecated: no longer used'
                           type: string
                         resourceMountPoint:
+                          description: 'Deprecated: no longer used'
                           type: string
                         resourceType:
+                          description: 'Deprecated: no longer used'
                           type: string
                         type:
+                          description: 'represents the type of configuration, ie:
+                            property, configmap, secret, ...'
                           type: string
                         value:
+                          description: the value to assign to the configuration (syntax
+                            may vary depending on the `Type`)
                           type: string
                       required:
                       - type
@@ -186,29 +194,41 @@ spec:
                       to manage resources Use openapi trait (openapi.configmaps) to
                       manage OpenAPIs specifications'
                     items:
-                      description: ResourceSpec --
+                      description: 'ResourceSpec represent an attached resource which
+                        will be materialized as a file on the running `Pod` TODO:
+                        we should deprecate in future releases in favour of mount,
+                        openapi or camel traits'
                       properties:
                         compression:
+                          description: if the content is compressed (base64 encrypted)
                           type: boolean
                         content:
+                          description: the source code (plain text)
                           type: string
                         contentKey:
+                          description: the confimap key holding the source content
                           type: string
                         contentRef:
+                          description: the confimap reference holding the source content
                           type: string
                         contentType:
+                          description: the content type (tipically text or binary)
                           type: string
                         mountPath:
+                          description: the mount path on destination `Pod`
                           type: string
                         name:
+                          description: the name of the specification
                           type: string
                         path:
+                          description: the path where the file is stored
                           type: string
                         rawContent:
+                          description: the source code (binary)
                           format: byte
                           type: string
                         type:
-                          description: ResourceType --
+                          description: the kind of data to expect
                           type: string
                       type: object
                     type: array
@@ -216,17 +236,23 @@ spec:
                     type: string
                   sources:
                     items:
-                      description: SourceSpec --
+                      description: SourceSpec defines the configuration for one or
+                        more routes to be executed in a certain Camel DSL language
                       properties:
                         compression:
+                          description: if the content is compressed (base64 encrypted)
                           type: boolean
                         content:
+                          description: the source code (plain text)
                           type: string
                         contentKey:
+                          description: the confimap key holding the source content
                           type: string
                         contentRef:
+                          description: the confimap reference holding the source content
                           type: string
                         contentType:
+                          description: the content type (tipically text or binary)
                           type: string
                         interceptors:
                           description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
@@ -235,15 +261,18 @@ spec:
                             type: string
                           type: array
                         language:
-                          description: Language --
+                          description: specify which is the language (Camel DSL) used
+                            to interpret this source code
                           type: string
                         loader:
                           description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                             that will interpret this source at runtime
                           type: string
                         name:
+                          description: the name of the specification
                           type: string
                         path:
+                          description: the path where the file is stored
                           type: string
                         property-names:
                           description: List of property names defined in the source
@@ -252,6 +281,7 @@ spec:
                             type: string
                           type: array
                         rawContent:
+                          description: the source code (binary)
                           format: byte
                           type: string
                         type:
@@ -5937,7 +5967,7 @@ spec:
                       description: A TraitSpec contains the configuration of a trait
                       properties:
                         configuration:
-                          description: TraitConfiguration --
+                          description: TraitConfiguration parameters configuration
                           type: object
                           x-kubernetes-preserve-unknown-fields: true
                       required:
diff --git a/config/crd/bases/camel.apache.org_kamelets.yaml b/config/crd/bases/camel.apache.org_kamelets.yaml
index 09410dd..e4140ee 100644
--- a/config/crd/bases/camel.apache.org_kamelets.yaml
+++ b/config/crd/bases/camel.apache.org_kamelets.yaml
@@ -219,17 +219,23 @@ spec:
                 x-kubernetes-preserve-unknown-fields: true
               sources:
                 items:
-                  description: SourceSpec --
+                  description: SourceSpec defines the configuration for one or more
+                    routes to be executed in a certain Camel DSL language
                   properties:
                     compression:
+                      description: if the content is compressed (base64 encrypted)
                       type: boolean
                     content:
+                      description: the source code (plain text)
                       type: string
                     contentKey:
+                      description: the confimap key holding the source content
                       type: string
                     contentRef:
+                      description: the confimap reference holding the source content
                       type: string
                     contentType:
+                      description: the content type (tipically text or binary)
                       type: string
                     interceptors:
                       description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
@@ -238,15 +244,18 @@ spec:
                         type: string
                       type: array
                     language:
-                      description: Language --
+                      description: specify which is the language (Camel DSL) used
+                        to interpret this source code
                       type: string
                     loader:
                       description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                         that will interpret this source at runtime
                       type: string
                     name:
+                      description: the name of the specification
                       type: string
                     path:
+                      description: the path where the file is stored
                       type: string
                     property-names:
                       description: List of property names defined in the source (e.g.
@@ -255,6 +264,7 @@ spec:
                         type: string
                       type: array
                     rawContent:
+                      description: the source code (binary)
                       format: byte
                       type: string
                     type:
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index f636fe8..4cc8ab1 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -50,7 +50,7 @@ Refer to the Kubernetes API documentation for the fields of the `metadata` field
 [#_camel_apache_org_v1_CamelCatalog]
 === CamelCatalog
 
-CamelCatalog is the Schema for the camelcatalogs API
+CamelCatalog represents the languages, components, data formats and capabilities enabled on a given runtime provider. The catalog may be statically generated.
 
 [cols="2,2a",options="header"]
 |===
@@ -77,14 +77,14 @@ Refer to the Kubernetes API documentation for the fields of the `metadata` field
 |
 
 
-
+the actual state of the catalog
 
 |`spec` +
 *xref:#_camel_apache_org_v1_CamelCatalogSpec[CamelCatalogSpec]*
 |
 
 
-
+the desired state of the catalog
 
 
 |===
@@ -134,7 +134,10 @@ Refer to the Kubernetes API documentation for the fields of the `metadata` field
 [#_camel_apache_org_v1_IntegrationKit]
 === IntegrationKit
 
-IntegrationKit is the Schema for the integrationkits API
+IntegrationKit defines a container image and additional configuration needed to run an `Integration`.
+An `IntegrationKit` is a generic image generally built from the requirements of an `Integration`, but agnostic to it,
+in order to be reused by any other `Integration` which has the same required set of capabilities. An `IntegrationKit`
+may be used for other kits as a base container layer, when the `incremental` build option is enabled.
 
 [cols="2,2a",options="header"]
 |===
@@ -161,14 +164,14 @@ Refer to the Kubernetes API documentation for the fields of the `metadata` field
 |
 
 
-
+the desired configuration
 
 |`status` +
 *xref:#_camel_apache_org_v1_IntegrationKitStatus[IntegrationKitStatus]*
 |
 
 
-
+the actual status
 
 
 |===
@@ -176,7 +179,10 @@ Refer to the Kubernetes API documentation for the fields of the `metadata` field
 [#_camel_apache_org_v1_IntegrationPlatform]
 === IntegrationPlatform
 
-IntegrationPlatform is the Schema for the integrationplatforms API
+IntegrationPlatform is the resource used to drive the Camel K operator behavior.
+It defines the behavior of all Custom Resources (`IntegrationKit`, `Integration`, `Kamelet`) in the given namespace.
+When the Camel K operator is installed in `global` mode,
+you will need to specify an `IntegrationPlatform` in each namespace where you want the Camel K operator to be executed
 
 [cols="2,2a",options="header"]
 |===
@@ -225,7 +231,7 @@ Refer to the Kubernetes API documentation for the fields of the `metadata` field
 * <<#_camel_apache_org_v1_BuildStatus, BuildStatus>>
 * <<#_camel_apache_org_v1_IntegrationKitStatus, IntegrationKitStatus>>
 
-Artifact --
+Artifact represents a materialized artifact (a jar dependency or in general a file used by the build)
 
 [cols="2,2a",options="header"]
 |===
@@ -237,28 +243,28 @@ string
 |
 
 
-
+the identification (GAV for maven dependencies or file name for other file types)
 
 |`location` +
 string
 |
 
 
-
+where it is located in the builder `Pod`
 
 |`target` +
 string
 |
 
 
-
+the expected location in the runtime
 
 |`checksum` +
 string
 |
 
 
-
+a checksum (SHA1) of the content
 
 
 |===
@@ -274,7 +280,7 @@ string
 * <<#_camel_apache_org_v1_S2iTask, S2iTask>>
 * <<#_camel_apache_org_v1_SpectrumTask, SpectrumTask>>
 
-BaseTask --
+BaseTask is a base for the struct hierarchy
 
 [cols="2,2a",options="header"]
 |===
@@ -286,7 +292,7 @@ string
 |
 
 
-
+name of the task
 
 
 |===
@@ -377,7 +383,7 @@ BuildPhase --
 
 * <<#_camel_apache_org_v1_Build, Build>>
 
-BuildSpec defines the Build to be executed
+BuildSpec defines the Build operation to be executed
 
 [cols="2,2a",options="header"]
 |===
@@ -430,69 +436,70 @@ BuildStatus defines the observed state of Build
 |
 
 
-
+describes the phase
 
 |`image` +
 string
 |
 
 
-
+the image name built
 
 |`digest` +
 string
 |
 
 
-
+the digest from image
 
 |`baseImage` +
 string
 |
 
 
-
+the base image used for this build
 
 |`artifacts` +
 *xref:#_camel_apache_org_v1_Artifact[[\]Artifact]*
 |
 
 
-
+a list of artifacts contained in the build
 
 |`error` +
 string
 |
 
 
-
+the error description (if any)
 
 |`failure` +
 *xref:#_camel_apache_org_v1_Failure[Failure]*
 |
 
 
-
+the reason of the failure (if any)
 
 |`startedAt` +
 *https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#time-v1-meta[Kubernetes meta/v1.Time]*
 |
 
 
-
+the time when it started
 
 |`conditions` +
 *xref:#_camel_apache_org_v1_BuildCondition[[\]BuildCondition]*
 |
 
 
-
+a list of conditions occurred during the build
 
 |`duration` +
 string
 |
 
 
+how long it took for the build
 Change to Duration / ISO 8601 when CRD uses OpenAPI spec v3
 https://github.com/OAI/OpenAPI-Specification/issues/845
 
@@ -507,7 +514,8 @@ https://github.com/OAI/OpenAPI-Specification/issues/845
 * <<#_camel_apache_org_v1_BuildSpec, BuildSpec>>
 * <<#_camel_apache_org_v1_IntegrationPlatformBuildSpec, IntegrationPlatformBuildSpec>>
 
-BuildStrategy specifies how the Build should be executed
+BuildStrategy specifies how the Build should be executed.
+It will trigger a Maven process that will take care of producing the expected Camel/Camel-Quarkus runtime.
 
 
 [#_camel_apache_org_v1_BuildahTask]
@@ -517,7 +525,7 @@ BuildStrategy specifies how the Build should be executed
 
 * <<#_camel_apache_org_v1_Task, Task>>
 
-BuildahTask --
+BuildahTask is used to configure Buildah
 
 [cols="2,2a",options="header"]
 |===
@@ -543,7 +551,7 @@ bool
 |
 
 
-
+log more information
 
 
 |===
@@ -555,7 +563,7 @@ bool
 
 * <<#_camel_apache_org_v1_Task, Task>>
 
-BuilderTask --
+BuilderTask is the generic task in charge of building the application image
 
 [cols="2,2a",options="header"]
 |===
@@ -574,56 +582,57 @@ string
 |
 
 
-
+the base image layer
 
 |`runtime` +
 *xref:#_camel_apache_org_v1_RuntimeSpec[RuntimeSpec]*
 |
 
 
-
+the configuration required for the runtime application
 
 |`sources` +
 *xref:#_camel_apache_org_v1_SourceSpec[[\]SourceSpec]*
 |
 
 
-
+the source code for the Route(s)
+Deprecated: no longer in use
 
 |`resources` +
 *xref:#_camel_apache_org_v1_ResourceSpec[[\]ResourceSpec]*
 |
 
 
-
+Deprecated: no longer in use
 
 |`dependencies` +
 []string
 |
 
 
-
+the list of dependencies to use for this build
 
 |`steps` +
 []string
 |
 
 
-
+the list of steps to execute (see pkg/builder/)
 
 |`maven` +
 *xref:#_camel_apache_org_v1_MavenBuildSpec[MavenBuildSpec]*
 |
 
 
-
+the configuration required by Maven for the application build phase
 
 |`buildDir` +
 string
 |
 
 
-
+workspace directory to use
 
 
 |===
@@ -635,7 +644,7 @@ string
 
 * <<#_camel_apache_org_v1_CamelCatalogSpec, CamelCatalogSpec>>
 
-CamelArtifact --
+CamelArtifact represent the configuration for a feature offered by Camel
 
 [cols="2,2a",options="header"]
 |===
@@ -647,42 +656,42 @@ CamelArtifact --
 |(Members of `CamelArtifactDependency` are embedded into this type.)
 
 
-
+Base Camel Artifact dependency
 
 |`schemes` +
 *xref:#_camel_apache_org_v1_CamelScheme[[\]CamelScheme]*
 |
 
 
-
+accepted URI schemes
 
 |`languages` +
 []string
 |
 
 
-
+accepted languages
 
 |`dataformats` +
 []string
 |
 
 
-
+accepted data formats
 
 |`dependencies` +
 *xref:#_camel_apache_org_v1_CamelArtifactDependency[[\]CamelArtifactDependency]*
 |
 
 
-
+required dependencies
 
 |`javaTypes` +
 []string
 |
 
 
-
+the Java types used by the artifact feature (ie, component, data format, ...)
 
 
 |===
@@ -707,14 +716,14 @@ CamelArtifactDependency represent a maven's dependency
 |(Members of `MavenArtifact` are embedded into this type.)
 
 
-
+the maven dependency
 
 |`exclusions` +
 *xref:#_camel_apache_org_v1_CamelArtifactExclusion[[\]CamelArtifactExclusion]*
 |
 
 
-
+provide a list of artifacts to exclude for this dependency
 
 
 |===
@@ -726,7 +735,7 @@ CamelArtifactDependency represent a maven's dependency
 
 * <<#_camel_apache_org_v1_CamelArtifactDependency, CamelArtifactDependency>>
 
-CamelArtifactExclusion --
+CamelArtifactExclusion represents an exclusion clause
 
 [cols="2,2a",options="header"]
 |===
@@ -738,14 +747,14 @@ string
 |
 
 
-
+Maven Group
 
 |`artifactId` +
 string
 |
 
 
-
+Maven Artifact
 
 
 |===
@@ -757,7 +766,7 @@ string
 
 * <<#_camel_apache_org_v1_CamelCatalog, CamelCatalog>>
 
-CamelCatalogSpec defines the desired state of CamelCatalog
+CamelCatalogSpec specify what features a Camel runtime provides
 
 [cols="2,2a",options="header"]
 |===
@@ -769,21 +778,21 @@ CamelCatalogSpec defines the desired state of CamelCatalog
 |
 
 
-
+the runtime targeted for the catalog
 
 |`artifacts` +
 *xref:#_camel_apache_org_v1_CamelArtifact[map[string\]github.com/apache/camel-k/pkg/apis/camel/v1.CamelArtifact]*
 |
 
 
-
+artifacts required by this catalog
 
 |`loaders` +
 *xref:#_camel_apache_org_v1_CamelLoader[map[string\]github.com/apache/camel-k/pkg/apis/camel/v1.CamelLoader]*
 |
 
 
-
+loaders required by this catalog
 
 
 |===
@@ -795,7 +804,7 @@ CamelCatalogSpec defines the desired state of CamelCatalog
 
 * <<#_camel_apache_org_v1_CamelCatalog, CamelCatalog>>
 
-CamelCatalogStatus defines the observed state of CamelCatalog
+CamelCatalogStatus defines the observed state of CamelCatalog. As the catalog is a static resource, we expect it to be empty.
 
 
 [#_camel_apache_org_v1_CamelLoader]
@@ -805,7 +814,7 @@ CamelCatalogStatus defines the observed state of CamelCatalog
 
 * <<#_camel_apache_org_v1_CamelCatalogSpec, CamelCatalogSpec>>
 
-CamelLoader --
+CamelLoader represents the configuration required to load a DSL
 
 [cols="2,2a",options="header"]
 |===
@@ -817,28 +826,29 @@ CamelLoader --
 |(Members of `MavenArtifact` are embedded into this type.)
 
 
-
+the base Maven artifact required
 
 |`languages` +
 []string
 |
 
 
-
+a list of DSLs supported
 
 |`dependencies` +
 *xref:#_camel_apache_org_v1_MavenArtifact[[\]MavenArtifact]*
 |
 
 
-
+a list of additional dependencies required beside the base one
 
 |`metadata` +
 map[string]string
 |
 
 
-
+Deprecated: never used
+a set of general metadata for various purposes
 
 
 |===
@@ -850,7 +860,7 @@ map[string]string
 
 * <<#_camel_apache_org_v1_CamelArtifact, CamelArtifact>>
 
-CamelScheme --
+CamelScheme represents the scheme used to identify a component in a URI (ie, timer in a timer:xyz endpoint URI)
 
 [cols="2,2a",options="header"]
 |===
@@ -862,35 +872,35 @@ string
 |
 
 
-
+the ID (ie, timer in a timer:xyz URI)
 
 |`passive` +
 bool
 |
 
 
-
+is a passive scheme
 
 |`http` +
 bool
 |
 
 
-
+is a HTTP based scheme
 
 |`consumer` +
 *xref:#_camel_apache_org_v1_CamelSchemeScope[CamelSchemeScope]*
 |
 
 
-
+required scope for consumer
 
 |`producer` +
 *xref:#_camel_apache_org_v1_CamelSchemeScope[CamelSchemeScope]*
 |
 
 
-
+required scope for producers
 
 
 |===
@@ -914,7 +924,7 @@ CamelSchemeScope contains scoped information about a scheme
 |
 
 
-
+list of dependencies needed for this scope
 
 
 |===
@@ -926,7 +936,7 @@ CamelSchemeScope contains scoped information about a scheme
 
 * <<#_camel_apache_org_v1_RuntimeSpec, RuntimeSpec>>
 
-Capability --
+Capability is a particular feature which requires a well known set of dependencies
 
 [cols="2,2a",options="header"]
 |===
@@ -945,7 +955,7 @@ map[string]string
 |
 
 
-
+Deprecated: not in use
 
 
 |===
@@ -966,7 +976,7 @@ Configurable --
 * <<#_camel_apache_org_v1_IntegrationSpec, IntegrationSpec>>
 * <<#_camel_apache_org_v1_IntegrationStatus, IntegrationStatus>>
 
-ConfigurationSpec --
+ConfigurationSpec represents a generic configuration specification
 
 [cols="2,2a",options="header"]
 |===
@@ -978,35 +988,35 @@ string
 |
 
 
-
+represents the type of configuration, ie: property, configmap, secret, ...
 
 |`value` +
 string
 |
 
 
-
+the value to assign to the configuration (syntax may vary depending on the `Type`)
 
 |`resourceType` +
 string
 |
 
 
-
+Deprecated: no longer used
 
 |`resourceMountPoint` +
 string
 |
 
 
-
+Deprecated: no longer used
 
 |`resourceKey` +
 string
 |
 
 
-
+Deprecated: no longer used
 
 
 |===
@@ -1019,7 +1029,7 @@ string
 * <<#_camel_apache_org_v1_ResourceSpec, ResourceSpec>>
 * <<#_camel_apache_org_v1_SourceSpec, SourceSpec>>
 
-DataSpec --
+DataSpec represents the way the source is materialized in the running `Pod`
 
 [cols="2,2a",options="header"]
 |===
@@ -1031,56 +1041,56 @@ string
 |
 
 
-
+the name of the specification
 
 |`path` +
 string
 |
 
 
-
+the path where the file is stored
 
 |`content` +
 string
 |
 
 
-
+the source code (plain text)
 
 |`rawContent` +
 []byte
 |
 
 
-
+the source code (binary)
 
 |`contentRef` +
 string
 |
 
 
-
+the confimap reference holding the source content
 
 |`contentKey` +
 string
 |
 
 
-
+the confimap key holding the source content
 
 |`contentType` +
 string
 |
 
 
-
+the content type (tipically text or binary)
 
 |`compression` +
 bool
 |
 
 
-
+if the content is compressed (base64 encrypted)
 
 
 |===
@@ -1093,7 +1103,7 @@ bool
 * <<#_camel_apache_org_v1_BuildStatus, BuildStatus>>
 * <<#_camel_apache_org_v1_IntegrationKitStatus, IntegrationKitStatus>>
 
-Failure --
+Failure represent a message specifying the reason and the time of an event failure
 
 [cols="2,2a",options="header"]
 |===
@@ -1105,21 +1115,21 @@ string
 |
 
 
-
+a short text specifying the reason
 
 |`time` +
 *https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#time-v1-meta[Kubernetes meta/v1.Time]*
 |
 
 
-
+the time when the failure has happened
 
 |`recovery` +
 *xref:#_camel_apache_org_v1_FailureRecovery[FailureRecovery]*
 |
 
 
-
+the recovery attempted for this failure
 
 
 |===
@@ -1131,7 +1141,7 @@ string
 
 * <<#_camel_apache_org_v1_Failure, Failure>>
 
-FailureRecovery --
+FailureRecovery defines the attempts to recover a failure
 
 [cols="2,2a",options="header"]
 |===
@@ -1143,21 +1153,21 @@ int
 |
 
 
-
+attempt number
 
 |`attemptMax` +
 int
 |
 
 
-
+maximum number of attempts
 
 |`attemptTime` +
 *https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#time-v1-meta[Kubernetes meta/v1.Time]*
 |
 *(Optional)*
 
-
+time of the attempt execution
 
 
 |===
@@ -1348,7 +1358,7 @@ IntegrationKitPhase --
 
 * <<#_camel_apache_org_v1_IntegrationKit, IntegrationKit>>
 
-IntegrationKitSpec defines the desired state of IntegrationKit
+IntegrationKitSpec defines a container image and additional configurations required to kick off an `Integration` which certain features
 
 [cols="2,2a",options="header"]
 |===
@@ -1360,42 +1370,43 @@ string
 |
 
 
-
+the container image as identify in the container registry
 
 |`dependencies` +
 []string
 |
 
 
-
+a list of Camel dependecies used by this kit
 
 |`profile` +
 *xref:#_camel_apache_org_v1_TraitProfile[TraitProfile]*
 |
 
 
-
+the profile which is expected by this kit
 
 |`traits` +
 *xref:#_camel_apache_org_v1_TraitSpec[map[string\]github.com/apache/camel-k/pkg/apis/camel/v1.TraitSpec]*
 |
 
 
-
+traits that the kit will execute
 
 |`configuration` +
 *xref:#_camel_apache_org_v1_ConfigurationSpec[[\]ConfigurationSpec]*
 |
 
 
-
+configuration used by the kit
+TODO: we should deprecate in future releases in favour of mount, openapi or camel traits
 
 |`repositories` +
 []string
 |
 
 
-
+Maven repositories that can be used by the kit
 
 
 |===
@@ -1419,77 +1430,77 @@ IntegrationKitStatus defines the observed state of IntegrationKit
 |
 
 
-
+phase of the kit
 
 |`baseImage` +
 string
 |
 
 
-
+base image used by the kit
 
 |`image` +
 string
 |
 
 
-
+actual image name of the kit
 
 |`digest` +
 string
 |
 
 
-
+actual image digest of the kit
 
 |`artifacts` +
 *xref:#_camel_apache_org_v1_Artifact[[\]Artifact]*
 |
 
 
-
+list of artifacts used by the kit
 
 |`failure` +
 *xref:#_camel_apache_org_v1_Failure[Failure]*
 |
 
 
-
+failure reason (if any)
 
 |`runtimeVersion` +
 string
 |
 
 
-
+the runtime version for which this kit was configured
 
 |`runtimeProvider` +
 *xref:#_camel_apache_org_v1_RuntimeProvider[RuntimeProvider]*
 |
 
 
-
+the runtime provider for which this kit was configured
 
 |`platform` +
 string
 |
 
 
+the platform for which this kit was configured
 
-
-|`conditions` +
-*xref:#_camel_apache_org_v1_IntegrationKitCondition[[\]IntegrationKitCondition]*
+|`version` +
+string
 |
 
 
+the Camel K operator version for which this kit was configured
 
-
-|`version` +
-string
+|`conditions` +
+*xref:#_camel_apache_org_v1_IntegrationKitCondition[[\]IntegrationKitCondition]*
 |
 
 
-
+a list of conditions which happened for the events related the kit
 
 
 |===
@@ -1511,7 +1522,7 @@ IntegrationPhase --
 
 * <<#_camel_apache_org_v1_IntegrationPlatformBuildSpec, IntegrationPlatformBuildSpec>>
 
-IntegrationPlatformBuildPublishStrategy enumerates all implemented publish strategies
+IntegrationPlatformBuildPublishStrategy defines the strategy used to package and publish an Integration base image
 
 
 [#_camel_apache_org_v1_IntegrationPlatformBuildSpec]
@@ -1521,7 +1532,9 @@ IntegrationPlatformBuildPublishStrategy enumerates all implemented publish strat
 
 * <<#_camel_apache_org_v1_IntegrationPlatformSpec, IntegrationPlatformSpec>>
 
-IntegrationPlatformBuildSpec contains platform related build information
+IntegrationPlatformBuildSpec contains platform related build information.
+This configuration can be used to tune the behavior of the Integration/IntegrationKit image builds.
+You can define the build strategy, the image registry to use and the Maven configuration to adopt.
 
 [cols="2,2a",options="header"]
 |===
@@ -1533,70 +1546,71 @@ IntegrationPlatformBuildSpec contains platform related build information
 |
 
 
-
+the strategy to adopt for building an Integration base image
 
 |`publishStrategy` +
 *xref:#_camel_apache_org_v1_IntegrationPlatformBuildPublishStrategy[IntegrationPlatformBuildPublishStrategy]*
 |
 
 
-
+the strategy to adopt for publishing an Integration base image
 
 |`runtimeVersion` +
 string
 |
 
 
-
+the Camel K Runtime dependency version
 
 |`runtimeProvider` +
 *xref:#_camel_apache_org_v1_RuntimeProvider[RuntimeProvider]*
 |
 
 
-
+the runtime used. Likely Camel Quarkus (we used to have main runtime which has been discontinued since version 1.5)
 
 |`baseImage` +
 string
 |
 
 
-
+a base image that can be used as base layer for all images.
+It can be useful if you want to provide some custom base image with further utility softwares
 
 |`registry` +
 *xref:#_camel_apache_org_v1_RegistrySpec[RegistrySpec]*
 |
 
 
-
+the image registry used to push/pull Integration images
 
 |`timeout` +
 *https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#duration-v1-meta[Kubernetes meta/v1.Duration]*
 |
 
 
-
-
-|`persistentVolumeClaim` +
-string
-|
-
-
-
+how much time to wait before time out the build process
 
 |`maven` +
 *xref:#_camel_apache_org_v1_MavenSpec[MavenSpec]*
 |
 
 
-
+Maven configuration used to build the Camel/Camel-Quarkus applications
 
 |`kanikoBuildCache` +
 bool
 |
 
 
+enables Kaniko publish strategy cache
 
+|`persistentVolumeClaim` +
+string
+|
+
+
+the Persistent Volume Claim used by Kaniko publish strategy, if cache is enabled
 
 
 |===
@@ -1677,7 +1691,7 @@ A human-readable message indicating details about the transition.
 
 * <<#_camel_apache_org_v1_IntegrationPlatformCondition, IntegrationPlatformCondition>>
 
-IntegrationPlatformConditionType --
+IntegrationPlatformConditionType defines the type of condition
 
 
 [#_camel_apache_org_v1_IntegrationPlatformKameletRepositorySpec]
@@ -1687,7 +1701,7 @@ IntegrationPlatformConditionType --
 
 * <<#_camel_apache_org_v1_IntegrationPlatformKameletSpec, IntegrationPlatformKameletSpec>>
 
-IntegrationPlatformKameletRepositorySpec --
+IntegrationPlatformKameletRepositorySpec defines the location of the Kamelet catalog to use
 
 [cols="2,2a",options="header"]
 |===
@@ -1699,7 +1713,7 @@ string
 |
 
 
-
+the remote repository in the format github:ORG/REPO/PATH_TO_KAMELETS_FOLDER
 
 
 |===
@@ -1711,7 +1725,7 @@ string
 
 * <<#_camel_apache_org_v1_IntegrationPlatformSpec, IntegrationPlatformSpec>>
 
-IntegrationPlatformKameletSpec --
+IntegrationPlatformKameletSpec define the behavior for all the Kamelets controller by the IntegrationPlatform
 
 [cols="2,2a",options="header"]
 |===
@@ -1723,7 +1737,7 @@ IntegrationPlatformKameletSpec --
 |
 
 
-
+remote repository used to retrieve Kamelet catalog
 
 
 |===
@@ -1735,7 +1749,7 @@ IntegrationPlatformKameletSpec --
 
 * <<#_camel_apache_org_v1_IntegrationPlatformStatus, IntegrationPlatformStatus>>
 
-IntegrationPlatformPhase --
+IntegrationPlatformPhase is the phase of an IntegrationPlatform
 
 
 [#_camel_apache_org_v1_IntegrationPlatformResourcesSpec]
@@ -1745,7 +1759,8 @@ IntegrationPlatformPhase --
 
 * <<#_camel_apache_org_v1_IntegrationPlatformSpec, IntegrationPlatformSpec>>
 
-IntegrationPlatformResourcesSpec contains platform related resources
+IntegrationPlatformResourcesSpec contains platform related resources.
+Deprecated: not used
 
 
 [#_camel_apache_org_v1_IntegrationPlatformSpec]
@@ -1768,49 +1783,50 @@ IntegrationPlatformSpec defines the desired state of IntegrationPlatform
 |
 
 
-
+what kind of cluster you're running (ie, plain Kubernetes or Openshift)
 
 |`profile` +
 *xref:#_camel_apache_org_v1_TraitProfile[TraitProfile]*
 |
 
 
-
+the profile you wish to use. It will apply certain traits which are required by the specific profile chosen.
+It usually relates the Cluster with the optional definition of special profiles (ie, Knative)
 
 |`build` +
 *xref:#_camel_apache_org_v1_IntegrationPlatformBuildSpec[IntegrationPlatformBuildSpec]*
 |
 
 
-
+specify how to build the Integration/IntegrationKits
 
 |`resources` +
 *xref:#_camel_apache_org_v1_IntegrationPlatformResourcesSpec[IntegrationPlatformResourcesSpec]*
 |
 
 
-
+Deprecated: not used
 
 |`traits` +
 *xref:#_camel_apache_org_v1_TraitSpec[map[string\]github.com/apache/camel-k/pkg/apis/camel/v1.TraitSpec]*
 |
 
 
-
+list of traits to be executed for all the Integration/IntegrationKits built from this IntegrationPlatform
 
 |`configuration` +
 *xref:#_camel_apache_org_v1_ConfigurationSpec[[\]ConfigurationSpec]*
 |
 
 
-
+list of configuration properties to be attached to all the Integration/IntegrationKits built from this IntegrationPlatform
 
 |`kamelet` +
 *xref:#_camel_apache_org_v1_IntegrationPlatformKameletSpec[IntegrationPlatformKameletSpec]*
 |
 
 
-
+configuration to be executed to all Kamelets controlled by this IntegrationPlatform
 
 
 |===
@@ -1841,28 +1857,28 @@ IntegrationPlatformStatus defines the observed state of IntegrationPlatform
 |
 
 
-
+defines in what phase the IntegrationPlatform is found
 
 |`conditions` +
 *xref:#_camel_apache_org_v1_IntegrationPlatformCondition[[\]IntegrationPlatformCondition]*
 |
 
 
-
+which are the conditions met (particularly useful when in ERROR phase)
 
 |`version` +
 string
 |
 
 
-
+the Camel K operator version controlling this IntegrationPlatform
 
 |`info` +
 map[string]string
 |
 
 
-
+generic information related to the build of Camel K operator software
 
 
 |===
@@ -1953,9 +1969,9 @@ Use openapi trait (openapi.configmaps) to manage OpenAPIs specifications
 
 Deprecated:
 Use camel trait (camel.properties) to manage properties
-Use container trait (container.configs) to manage configs
-Use container trait (container.resources) to manage resources
-Use container trait (container.volumes) to manage volumes
+Use container trait (mount.configs) to manage configs
+Use container trait (mount.resources) to manage resources
+Use container trait (mount.volumes) to manage volumes
 
 |`repositories` +
 []string
@@ -2124,7 +2140,7 @@ The timestamp representing the last time when this integration was initialized.
 
 * <<#_camel_apache_org_v1_Task, Task>>
 
-KanikoTask --
+KanikoTask is used to configure Kaniko
 
 [cols="2,2a",options="header"]
 |===
@@ -2150,14 +2166,14 @@ bool
 |
 
 
-
+log more information
 
 |`cache` +
 *xref:#_camel_apache_org_v1_KanikoTaskCache[KanikoTaskCache]*
 |
 
 
-
+use a cache
 
 
 |===
@@ -2169,7 +2185,7 @@ bool
 
 * <<#_camel_apache_org_v1_KanikoTask, KanikoTask>>
 
-KanikoTaskCache --
+KanikoTaskCache is used to configure Kaniko cache
 
 [cols="2,2a",options="header"]
 |===
@@ -2181,14 +2197,14 @@ bool
 |
 
 
-
+true if a cache is enabled
 
 |`persistentVolumeClaim` +
 string
 |
 
 
-
+the PVC used to store the cache
 
 
 |===
@@ -2200,7 +2216,7 @@ string
 
 * <<#_camel_apache_org_v1_SourceSpec, SourceSpec>>
 
-Language --
+Language represents a supported language (Camel DSL)
 
 
 [#_camel_apache_org_v1_MavenArtifact]
@@ -2214,7 +2230,7 @@ Language --
 * <<#_camel_apache_org_v1_MavenSpec, MavenSpec>>
 * <<#_camel_apache_org_v1_RuntimeSpec, RuntimeSpec>>
 
-MavenArtifact defines a Maven artifact
+MavenArtifact defines a GAV (Group:Artifact:Version) Maven artifact
 
 [cols="2,2a",options="header"]
 |===
@@ -2226,21 +2242,21 @@ string
 |
 
 
-
+Maven Group
 
 |`artifactId` +
 string
 |
 
 
-
+Maven Artifact
 
 |`version` +
 string
 |
 
 
-
+Maven Version
 
 
 |===
@@ -2252,7 +2268,7 @@ string
 
 * <<#_camel_apache_org_v1_BuilderTask, BuilderTask>>
 
-MavenBuildSpec --
+MavenBuildSpec defines the Maven configuration plus additional repositories to use
 
 [cols="2,2a",options="header"]
 |===
@@ -2264,14 +2280,14 @@ MavenBuildSpec --
 |(Members of `MavenSpec` are embedded into this type.)
 
 
-
+base Maven specification
 
 |`repositories` +
 *xref:#_camel_apache_org_v1_Repository[[\]Repository]*
 |
 
 
-The Maven repositories.
+additional repositories
 
 
 |===
@@ -2465,7 +2481,7 @@ map[string]string
 * <<#_camel_apache_org_v1_KanikoTask, KanikoTask>>
 * <<#_camel_apache_org_v1_SpectrumTask, SpectrumTask>>
 
-PublishTask --
+PublishTask image publish configuration
 
 [cols="2,2a",options="header"]
 |===
@@ -2477,28 +2493,28 @@ string
 |
 
 
-
+can be useful to share info with other tasks
 
 |`baseImage` +
 string
 |
 
 
-
+base image layer
 
 |`image` +
 string
 |
 
 
-
+final image name
 
 |`registry` +
 *xref:#_camel_apache_org_v1_RegistrySpec[RegistrySpec]*
 |
 
 
-
+where to publish the final image
 
 
 |===
@@ -2536,35 +2552,35 @@ bool
 |
 
 
-
+if the container registry is insecure (ie, http only)
 
 |`address` +
 string
 |
 
 
-
+the URI to access
 
 |`secret` +
 string
 |
 
 
-
+the secret where credentials are stored
 
 |`ca` +
 string
 |
 
 
-
+the configmap which stores the Certificate Authority
 
 |`organization` +
 string
 |
 
 
-
+the registry organization
 
 
 |===
@@ -2588,35 +2604,35 @@ string
 |
 
 
-
+identifies the repository
 
 |`name` +
 string
 |
 
 
-
+name of the repository
 
 |`url` +
 string
 |
 
 
-
+location of the repository
 
 |`snapshots` +
 *xref:#_camel_apache_org_v1_RepositoryPolicy[RepositoryPolicy]*
 |
 
 
-
+can use snapshot
 
 |`releases` +
 *xref:#_camel_apache_org_v1_RepositoryPolicy[RepositoryPolicy]*
 |
 
 
-
+can use stable releases
 
 
 |===
@@ -2640,21 +2656,24 @@ bool
 |
 
 
-
+is the policy activated or not
 
 |`updatePolicy` +
 string
 |
 
 
-
+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`
 
 |`checksumPolicy` +
 string
 |
 
 
-
+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.
 
 
 |===
@@ -2674,7 +2693,8 @@ ResourceCondition is a common type for all conditions
 * <<#_camel_apache_org_v1_IntegrationSpec, IntegrationSpec>>
 * <<#_camel_apache_org_v1_IntegrationStatus, IntegrationStatus>>
 
-ResourceSpec --
+ResourceSpec represent an attached resource which will be materialized as a file on the running `Pod`
+TODO: we should deprecate in future releases in favour of mount, openapi or camel traits
 
 [cols="2,2a",options="header"]
 |===
@@ -2686,21 +2706,21 @@ ResourceSpec --
 |(Members of `DataSpec` are embedded into this type.)
 
 
-
+the content of the resource
 
 |`type` +
 *xref:#_camel_apache_org_v1_ResourceType[ResourceType]*
 |
 
 
-
+the kind of data to expect
 
 |`mountPath` +
 string
 |
 
 
-
+the mount path on destination `Pod`
 
 
 |===
@@ -2712,7 +2732,7 @@ string
 
 * <<#_camel_apache_org_v1_ResourceSpec, ResourceSpec>>
 
-ResourceType --
+ResourceType defines a kind of resource
 
 
 [#_camel_apache_org_v1_RuntimeProvider]
@@ -2725,7 +2745,7 @@ ResourceType --
 * <<#_camel_apache_org_v1_IntegrationStatus, IntegrationStatus>>
 * <<#_camel_apache_org_v1_RuntimeSpec, RuntimeSpec>>
 
-RuntimeProvider --
+RuntimeProvider is the provider chosen for the runtime
 
 
 [#_camel_apache_org_v1_RuntimeSpec]
@@ -2736,7 +2756,7 @@ RuntimeProvider --
 * <<#_camel_apache_org_v1_BuilderTask, BuilderTask>>
 * <<#_camel_apache_org_v1_CamelCatalogSpec, CamelCatalogSpec>>
 
-RuntimeSpec --
+RuntimeSpec represents the configuration for the Java runtime in charge to execute the Camel application
 
 [cols="2,2a",options="header"]
 |===
@@ -2748,42 +2768,42 @@ string
 |
 
 
-
+Camel K Runtime version
 
 |`provider` +
 *xref:#_camel_apache_org_v1_RuntimeProvider[RuntimeProvider]*
 |
 
 
-
+Camel main application provider, ie, Camel Quarkus
 
 |`applicationClass` +
 string
 |
 
 
-
+application entry point (main) to be executed
 
 |`dependencies` +
 *xref:#_camel_apache_org_v1_MavenArtifact[[\]MavenArtifact]*
 |
 
 
-
+list of dependencies needed to run the application
 
 |`metadata` +
 map[string]string
 |
 
 
-
+set of metadata
 
 |`capabilities` +
 *xref:#_camel_apache_org_v1_Capability[map[string\]github.com/apache/camel-k/pkg/apis/camel/v1.Capability]*
 |
 
 
-
+features offered by this runtime
 
 
 |===
@@ -2795,7 +2815,7 @@ map[string]string
 
 * <<#_camel_apache_org_v1_Task, Task>>
 
-S2iTask --
+S2iTask is used to configure S2I
 
 [cols="2,2a",options="header"]
 |===
@@ -2814,14 +2834,14 @@ string
 |
 
 
-
+can be useful to share info with other tasks
 
 |`tag` +
 string
 |
 
 
-
+used by the ImageStream
 
 
 |===
@@ -2835,7 +2855,7 @@ string
 * <<#_camel_apache_org_v1_IntegrationSpec, IntegrationSpec>>
 * <<#_camel_apache_org_v1_IntegrationStatus, IntegrationStatus>>
 
-SourceSpec --
+SourceSpec defines the configuration for one or more routes to be executed in a certain Camel DSL language
 
 [cols="2,2a",options="header"]
 |===
@@ -2847,14 +2867,14 @@ SourceSpec --
 |(Members of `DataSpec` are embedded into this type.)
 
 
-
+contains configuration related to the source code
 
 |`language` +
 *xref:#_camel_apache_org_v1_Language[Language]*
 |
 
 
-
+specify which is the language (Camel DSL) used to interpret this source code
 
 |`loader` +
 string
@@ -2896,7 +2916,7 @@ List of property names defined in the source (e.g. if type is "template")
 
 * <<#_camel_apache_org_v1_SourceSpec, SourceSpec>>
 
-
+SourceType represents an available source type
 
 
 [#_camel_apache_org_v1_SpectrumTask]
@@ -2906,7 +2926,7 @@ List of property names defined in the source (e.g. if type is "template")
 
 * <<#_camel_apache_org_v1_Task, Task>>
 
-SpectrumTask --
+SpectrumTask is used to configure Spectrum
 
 [cols="2,2a",options="header"]
 |===
@@ -2937,7 +2957,7 @@ SpectrumTask --
 
 * <<#_camel_apache_org_v1_BuildSpec, BuildSpec>>
 
-Task --
+Task represents the abstract task. Only one of the task should be configured to represent the specific task chosen.
 
 [cols="2,2a",options="header"]
 |===
@@ -2949,35 +2969,35 @@ Task --
 |
 
 
-
+a BuilderTask (base task)
 
 |`buildah` +
 *xref:#_camel_apache_org_v1_BuildahTask[BuildahTask]*
 |
 
 
-
+a BuildahTask, for Buildah strategy
 
 |`kaniko` +
 *xref:#_camel_apache_org_v1_KanikoTask[KanikoTask]*
 |
 
 
-
+a KanikoTask, for Kaniko strategy
 
 |`spectrum` +
 *xref:#_camel_apache_org_v1_SpectrumTask[SpectrumTask]*
 |
 
 
-
+a SpectrumTask, for Spectrum strategy
 
 |`s2i` +
 *xref:#_camel_apache_org_v1_S2iTask[S2iTask]*
 |
 
 
-
+a S2iTask, for S2I strategy
 
 
 |===
@@ -2989,7 +3009,7 @@ Task --
 
 * <<#_camel_apache_org_v1_TraitSpec, TraitSpec>>
 
-
+TraitConfiguration represents the expected configuration for a given trait parameter
 
 [cols="2,2a",options="header"]
 |===
@@ -3001,7 +3021,7 @@ Task --
 |(Members of `RawMessage` are embedded into this type.)
 
 
-
+generic raw message, tipically a map containing the keys (trait parameters) and the values (either single text or array)
 
 
 |===
@@ -3040,7 +3060,7 @@ A TraitSpec contains the configuration of a trait
 |
 
 
-TraitConfiguration --
+TraitConfiguration parameters configuration
 
 
 |===
diff --git a/docs/modules/ROOT/partials/apis/kamelets-crds.adoc b/docs/modules/ROOT/partials/apis/kamelets-crds.adoc
index c9599ec..3ca5d90 100644
--- a/docs/modules/ROOT/partials/apis/kamelets-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/kamelets-crds.adoc
@@ -1042,19 +1042,19 @@ KameletSpec defines the desired state of Kamelet
 
 
 
-|`flow` +
-*xref:apis/camel-k.adoc#_camel_apache_org_v1_Flow[github.com/apache/camel-k/pkg/apis/camel/v1.Flow]*
+|`template` +
+*xref:#_camel_apache_org_v1alpha1_Template[Template]*
 |
 
 
-Deprecated: use template
 
-|`template` +
-*xref:apis/camel-k.adoc#_camel_apache_org_v1_Template[github.com/apache/camel-k/pkg/apis/camel/v1.Template]*
-|
 
+|`flow` +
+*xref:apis/camel-k.adoc#_camel_apache_org_v1_Flow[github.com/apache/camel-k/pkg/apis/camel/v1.Flow]*
+|
 
 
+Deprecated: use template
 
 |`authorization` +
 *xref:#_camel_apache_org_v1alpha1_AuthorizationSpec[AuthorizationSpec]*
diff --git a/helm/camel-k/crds/crd-build.yaml b/helm/camel-k/crds/crd-build.yaml
index 3f1f5bd..339d273 100644
--- a/helm/camel-k/crds/crd-build.yaml
+++ b/helm/camel-k/crds/crd-build.yaml
@@ -77,7 +77,7 @@ spec:
           metadata:
             type: object
           spec:
-            description: BuildSpec defines the Build to be executed
+            description: BuildSpec defines the Build operation to be executed
             properties:
               strategy:
                 description: The strategy that should be used to perform the Build.
@@ -89,50 +89,66 @@ spec:
                 description: The sequence of Build tasks to be performed as part of
                   the Build execution.
                 items:
-                  description: Task --
+                  description: Task represents the abstract task. Only one of the
+                    task should be configured to represent the specific task chosen.
                   properties:
                     buildah:
-                      description: BuildahTask --
+                      description: a BuildahTask, for Buildah strategy
                       properties:
                         baseImage:
+                          description: base image layer
                           type: string
                         contextDir:
+                          description: can be useful to share info with other tasks
                           type: string
                         image:
+                          description: final image name
                           type: string
                         name:
+                          description: name of the task
                           type: string
                         registry:
-                          description: RegistrySpec provides the configuration for
-                            the container registry
+                          description: where to publish the final image
                           properties:
                             address:
+                              description: the URI to access
                               type: string
                             ca:
+                              description: the configmap which stores the Certificate
+                                Authority
                               type: string
                             insecure:
+                              description: if the container registry is insecure (ie,
+                                http only)
                               type: boolean
                             organization:
+                              description: the registry organization
                               type: string
                             secret:
+                              description: the secret where credentials are stored
                               type: string
                           type: object
                         verbose:
+                          description: log more information
                           type: boolean
                       type: object
                     builder:
-                      description: BuilderTask --
+                      description: a BuilderTask (base task)
                       properties:
                         baseImage:
+                          description: the base image layer
                           type: string
                         buildDir:
+                          description: workspace directory to use
                           type: string
                         dependencies:
+                          description: the list of dependencies to use for this build
                           items:
                             type: string
                           type: array
                         maven:
-                          description: MavenBuildSpec --
+                          description: the configuration required by Maven for the
+                            application build phase
                           properties:
                             caSecret:
                               description: The Secret name and key, containing the
@@ -171,13 +187,17 @@ spec:
                             extension:
                               description: The Maven build extensions. See https://maven.apache.org/guides/mini/guide-using-extensions.html.
                               items:
-                                description: MavenArtifact defines a Maven artifact
+                                description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                                  Maven artifact
                                 properties:
                                   artifactId:
+                                    description: Maven Artifact
                                     type: string
                                   groupId:
+                                    description: Maven Group
                                     type: string
                                   version:
+                                    description: Maven Version
                                     type: string
                                 required:
                                 - artifactId
@@ -193,41 +213,68 @@ spec:
                               description: The Maven properties.
                               type: object
                             repositories:
-                              description: The Maven repositories.
+                              description: additional repositories
                               items:
                                 description: Repository defines a Maven repository
                                 properties:
                                   id:
+                                    description: identifies the repository
                                     type: string
                                   name:
+                                    description: name of the repository
                                     type: string
                                   releases:
-                                    description: RepositoryPolicy defines the policy
-                                      associated to a Maven repository
+                                    description: can use stable releases
                                     properties:
                                       checksumPolicy:
+                                        description: 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.
                                         type: string
                                       enabled:
+                                        description: is the policy activated or not
                                         type: boolean
                                       updatePolicy:
+                                        description: '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`'
                                         type: string
                                     required:
                                     - enabled
                                     type: object
                                   snapshots:
-                                    description: RepositoryPolicy defines the policy
-                                      associated to a Maven repository
+                                    description: can use snapshot
                                     properties:
                                       checksumPolicy:
+                                        description: 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.
                                         type: string
                                       enabled:
+                                        description: is the policy activated or not
                                         type: boolean
                                       updatePolicy:
+                                        description: '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`'
                                         type: string
                                     required:
                                     - enabled
                                     type: object
                                   url:
+                                    description: location of the repository
                                     type: string
                                 required:
                                 - id
@@ -280,53 +327,76 @@ spec:
                               type: object
                           type: object
                         name:
+                          description: name of the task
                           type: string
                         resources:
+                          description: 'Deprecated: no longer in use'
                           items:
-                            description: ResourceSpec --
+                            description: 'ResourceSpec represent an attached resource
+                              which will be materialized as a file on the running
+                              `Pod` TODO: we should deprecate in future releases in
+                              favour of mount, openapi or camel traits'
                             properties:
                               compression:
+                                description: if the content is compressed (base64
+                                  encrypted)
                                 type: boolean
                               content:
+                                description: the source code (plain text)
                                 type: string
                               contentKey:
+                                description: the confimap key holding the source content
                                 type: string
                               contentRef:
+                                description: the confimap reference holding the source
+                                  content
                                 type: string
                               contentType:
+                                description: the content type (tipically text or binary)
                                 type: string
                               mountPath:
+                                description: the mount path on destination `Pod`
                                 type: string
                               name:
+                                description: the name of the specification
                                 type: string
                               path:
+                                description: the path where the file is stored
                                 type: string
                               rawContent:
+                                description: the source code (binary)
                                 format: byte
                                 type: string
                               type:
-                                description: ResourceType --
+                                description: the kind of data to expect
                                 type: string
                             type: object
                           type: array
                         runtime:
-                          description: RuntimeSpec --
+                          description: the configuration required for the runtime
+                            application
                           properties:
                             applicationClass:
+                              description: application entry point (main) to be executed
                               type: string
                             capabilities:
                               additionalProperties:
-                                description: Capability --
+                                description: Capability is a particular feature which
+                                  requires a well known set of dependencies
                                 properties:
                                   dependencies:
                                     items:
-                                      description: MavenArtifact defines a Maven artifact
+                                      description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                                        Maven artifact
                                       properties:
                                         artifactId:
+                                          description: Maven Artifact
                                           type: string
                                         groupId:
+                                          description: Maven Group
                                           type: string
                                         version:
+                                          description: Maven Version
                                           type: string
                                       required:
                                       - artifactId
@@ -336,20 +406,28 @@ spec:
                                   metadata:
                                     additionalProperties:
                                       type: string
+                                    description: 'Deprecated: not in use'
                                     type: object
                                 required:
                                 - dependencies
                                 type: object
+                              description: features offered by this runtime
                               type: object
                             dependencies:
+                              description: list of dependencies needed to run the
+                                application
                               items:
-                                description: MavenArtifact defines a Maven artifact
+                                description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                                  Maven artifact
                                 properties:
                                   artifactId:
+                                    description: Maven Artifact
                                     type: string
                                   groupId:
+                                    description: Maven Group
                                     type: string
                                   version:
+                                    description: Maven Version
                                     type: string
                                 required:
                                 - artifactId
@@ -359,11 +437,14 @@ spec:
                             metadata:
                               additionalProperties:
                                 type: string
+                              description: set of metadata
                               type: object
                             provider:
-                              description: RuntimeProvider --
+                              description: Camel main application provider, ie, Camel
+                                Quarkus
                               type: string
                             version:
+                              description: Camel K Runtime version
                               type: string
                           required:
                           - applicationClass
@@ -372,18 +453,29 @@ spec:
                           - version
                           type: object
                         sources:
+                          description: 'the source code for the Route(s) Deprecated:
+                            no longer in use'
                           items:
-                            description: SourceSpec --
+                            description: SourceSpec defines the configuration for
+                              one or more routes to be executed in a certain Camel
+                              DSL language
                             properties:
                               compression:
+                                description: if the content is compressed (base64
+                                  encrypted)
                                 type: boolean
                               content:
+                                description: the source code (plain text)
                                 type: string
                               contentKey:
+                                description: the confimap key holding the source content
                                 type: string
                               contentRef:
+                                description: the confimap reference holding the source
+                                  content
                                 type: string
                               contentType:
+                                description: the content type (tipically text or binary)
                                 type: string
                               interceptors:
                                 description: Interceptors are optional identifiers
@@ -393,15 +485,18 @@ spec:
                                   type: string
                                 type: array
                               language:
-                                description: Language --
+                                description: specify which is the language (Camel
+                                  DSL) used to interpret this source code
                                 type: string
                               loader:
                                 description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                                   that will interpret this source at runtime
                                 type: string
                               name:
+                                description: the name of the specification
                                 type: string
                               path:
+                                description: the path where the file is stored
                                 type: string
                               property-names:
                                 description: List of property names defined in the
@@ -410,6 +505,7 @@ spec:
                                   type: string
                                 type: array
                               rawContent:
+                                description: the source code (binary)
                                 format: byte
                                 type: string
                               type:
@@ -419,81 +515,108 @@ spec:
                             type: object
                           type: array
                         steps:
+                          description: the list of steps to execute (see pkg/builder/)
                           items:
                             type: string
                           type: array
                       type: object
                     kaniko:
-                      description: KanikoTask --
+                      description: a KanikoTask, for Kaniko strategy
                       properties:
                         baseImage:
+                          description: base image layer
                           type: string
                         cache:
-                          description: KanikoTaskCache --
+                          description: use a cache
                           properties:
                             enabled:
+                              description: true if a cache is enabled
                               type: boolean
                             persistentVolumeClaim:
+                              description: the PVC used to store the cache
                               type: string
                           type: object
                         contextDir:
+                          description: can be useful to share info with other tasks
                           type: string
                         image:
+                          description: final image name
                           type: string
                         name:
+                          description: name of the task
                           type: string
                         registry:
-                          description: RegistrySpec provides the configuration for
-                            the container registry
+                          description: where to publish the final image
                           properties:
                             address:
+                              description: the URI to access
                               type: string
                             ca:
+                              description: the configmap which stores the Certificate
+                                Authority
                               type: string
                             insecure:
+                              description: if the container registry is insecure (ie,
+                                http only)
                               type: boolean
                             organization:
+                              description: the registry organization
                               type: string
                             secret:
+                              description: the secret where credentials are stored
                               type: string
                           type: object
                         verbose:
+                          description: log more information
                           type: boolean
                       type: object
                     s2i:
-                      description: S2iTask --
+                      description: a S2iTask, for S2I strategy
                       properties:
                         contextDir:
+                          description: can be useful to share info with other tasks
                           type: string
                         name:
+                          description: name of the task
                           type: string
                         tag:
+                          description: used by the ImageStream
                           type: string
                       type: object
                     spectrum:
-                      description: SpectrumTask --
+                      description: a SpectrumTask, for Spectrum strategy
                       properties:
                         baseImage:
+                          description: base image layer
                           type: string
                         contextDir:
+                          description: can be useful to share info with other tasks
                           type: string
                         image:
+                          description: final image name
                           type: string
                         name:
+                          description: name of the task
                           type: string
                         registry:
-                          description: RegistrySpec provides the configuration for
-                            the container registry
+                          description: where to publish the final image
                           properties:
                             address:
+                              description: the URI to access
                               type: string
                             ca:
+                              description: the configmap which stores the Certificate
+                                Authority
                               type: string
                             insecure:
+                              description: if the container registry is insecure (ie,
+                                http only)
                               type: boolean
                             organization:
+                              description: the registry organization
                               type: string
                             secret:
+                              description: the secret where credentials are stored
                               type: string
                           type: object
                       type: object
@@ -511,24 +634,33 @@ spec:
             description: BuildStatus defines the observed state of Build
             properties:
               artifacts:
+                description: a list of artifacts contained in the build
                 items:
-                  description: Artifact --
+                  description: Artifact represents a materialized artifact (a jar
+                    dependency or in general a file used by the build)
                   properties:
                     checksum:
+                      description: a checksum (SHA1) of the content
                       type: string
                     id:
+                      description: the identification (GAV for maven dependencies
+                        or file name for other file types)
                       type: string
                     location:
+                      description: where it is located in the builder `Pod`
                       type: string
                     target:
+                      description: the expected location in the runtime
                       type: string
                   required:
                   - id
                   type: object
                 type: array
               baseImage:
+                description: the base image used for this build
                 type: string
               conditions:
+                description: a list of conditions occurred during the build
                 items:
                   description: BuildCondition describes the state of a resource at
                     a certain point.
@@ -561,26 +693,32 @@ spec:
                   type: object
                 type: array
               digest:
+                description: the digest from image
                 type: string
               duration:
-                description: Change to Duration / ISO 8601 when CRD uses OpenAPI spec
-                  v3 https://github.com/OAI/OpenAPI-Specification/issues/845
+                description: how long it took for the build Change to Duration / ISO
+                  8601 when CRD uses OpenAPI spec v3 https://github.com/OAI/OpenAPI-Specification/issues/845
                 type: string
               error:
+                description: the error description (if any)
                 type: string
               failure:
-                description: Failure --
+                description: the reason of the failure (if any)
                 properties:
                   reason:
+                    description: a short text specifying the reason
                     type: string
                   recovery:
-                    description: FailureRecovery --
+                    description: the recovery attempted for this failure
                     properties:
                       attempt:
+                        description: attempt number
                         type: integer
                       attemptMax:
+                        description: maximum number of attempts
                         type: integer
                       attemptTime:
+                        description: time of the attempt execution
                         format: date-time
                         type: string
                     required:
@@ -588,6 +726,7 @@ spec:
                     - attemptMax
                     type: object
                   time:
+                    description: the time when the failure has happened
                     format: date-time
                     type: string
                 required:
@@ -596,11 +735,13 @@ spec:
                 - time
                 type: object
               image:
+                description: the image name built
                 type: string
               phase:
-                description: BuildPhase --
+                description: describes the phase
                 type: string
               startedAt:
+                description: the time when it started
                 format: date-time
                 type: string
             type: object
diff --git a/helm/camel-k/crds/crd-camel-catalog.yaml b/helm/camel-k/crds/crd-camel-catalog.yaml
index 4dfe8c8..8866162 100644
--- a/helm/camel-k/crds/crd-camel-catalog.yaml
+++ b/helm/camel-k/crds/crd-camel-catalog.yaml
@@ -50,7 +50,9 @@ spec:
     name: v1
     schema:
       openAPIV3Schema:
-        description: CamelCatalog is the Schema for the camelcatalogs API
+        description: CamelCatalog represents the languages, components, data formats
+          and capabilities enabled on a given runtime provider. The catalog may be
+          statically generated.
         properties:
           apiVersion:
             description: 'APIVersion defines the versioned schema of this representation
@@ -65,31 +67,41 @@ spec:
           metadata:
             type: object
           spec:
-            description: CamelCatalogSpec defines the desired state of CamelCatalog
+            description: the desired state of the catalog
             properties:
               artifacts:
                 additionalProperties:
-                  description: CamelArtifact --
+                  description: CamelArtifact represent the configuration for a feature
+                    offered by Camel
                   properties:
                     artifactId:
+                      description: Maven Artifact
                       type: string
                     dataformats:
+                      description: accepted data formats
                       items:
                         type: string
                       type: array
                     dependencies:
+                      description: required dependencies
                       items:
                         description: CamelArtifactDependency represent a maven's dependency
                         properties:
                           artifactId:
+                            description: Maven Artifact
                             type: string
                           exclusions:
+                            description: provide a list of artifacts to exclude for
+                              this dependency
                             items:
-                              description: CamelArtifactExclusion --
+                              description: CamelArtifactExclusion represents an exclusion
+                                clause
                               properties:
                                 artifactId:
+                                  description: Maven Artifact
                                   type: string
                                 groupId:
+                                  description: Maven Group
                                   type: string
                               required:
                               - artifactId
@@ -97,8 +109,10 @@ spec:
                               type: object
                             type: array
                           groupId:
+                            description: Maven Group
                             type: string
                           version:
+                            description: Maven Version
                             type: string
                         required:
                         - artifactId
@@ -106,12 +120,17 @@ spec:
                         type: object
                       type: array
                     exclusions:
+                      description: provide a list of artifacts to exclude for this
+                        dependency
                       items:
-                        description: CamelArtifactExclusion --
+                        description: CamelArtifactExclusion represents an exclusion
+                          clause
                         properties:
                           artifactId:
+                            description: Maven Artifact
                             type: string
                           groupId:
+                            description: Maven Group
                             type: string
                         required:
                         - artifactId
@@ -119,37 +138,51 @@ spec:
                         type: object
                       type: array
                     groupId:
+                      description: Maven Group
                       type: string
                     javaTypes:
+                      description: the Java types used by the artifact feature (ie,
+                        component, data format, ...)
                       items:
                         type: string
                       type: array
                     languages:
+                      description: accepted languages
                       items:
                         type: string
                       type: array
                     schemes:
+                      description: accepted URI schemes
                       items:
-                        description: CamelScheme --
+                        description: CamelScheme represents the scheme used to identify
+                          a component in a URI (ie, timer in a timer:xyz endpoint
+                          URI)
                         properties:
                           consumer:
-                            description: CamelSchemeScope contains scoped information
-                              about a scheme
+                            description: required scope for consumer
                             properties:
                               dependencies:
+                                description: list of dependencies needed for this
+                                  scope
                                 items:
                                   description: CamelArtifactDependency represent a
                                     maven's dependency
                                   properties:
                                     artifactId:
+                                      description: Maven Artifact
                                       type: string
                                     exclusions:
+                                      description: provide a list of artifacts to
+                                        exclude for this dependency
                                       items:
-                                        description: CamelArtifactExclusion --
+                                        description: CamelArtifactExclusion represents
+                                          an exclusion clause
                                         properties:
                                           artifactId:
+                                            description: Maven Artifact
                                             type: string
                                           groupId:
+                                            description: Maven Group
                                             type: string
                                         required:
                                         - artifactId
@@ -157,8 +190,10 @@ spec:
                                         type: object
                                       type: array
                                     groupId:
+                                      description: Maven Group
                                       type: string
                                     version:
+                                      description: Maven Version
                                       type: string
                                   required:
                                   - artifactId
@@ -167,29 +202,39 @@ spec:
                                 type: array
                             type: object
                           http:
+                            description: is a HTTP based scheme
                             type: boolean
                           id:
+                            description: the ID (ie, timer in a timer:xyz URI)
                             type: string
                           passive:
+                            description: is a passive scheme
                             type: boolean
                           producer:
-                            description: CamelSchemeScope contains scoped information
-                              about a scheme
+                            description: required scope for producers
                             properties:
                               dependencies:
+                                description: list of dependencies needed for this
+                                  scope
                                 items:
                                   description: CamelArtifactDependency represent a
                                     maven's dependency
                                   properties:
                                     artifactId:
+                                      description: Maven Artifact
                                       type: string
                                     exclusions:
+                                      description: provide a list of artifacts to
+                                        exclude for this dependency
                                       items:
-                                        description: CamelArtifactExclusion --
+                                        description: CamelArtifactExclusion represents
+                                          an exclusion clause
                                         properties:
                                           artifactId:
+                                            description: Maven Artifact
                                             type: string
                                           groupId:
+                                            description: Maven Group
                                             type: string
                                         required:
                                         - artifactId
@@ -197,8 +242,10 @@ spec:
                                         type: object
                                       type: array
                                     groupId:
+                                      description: Maven Group
                                       type: string
                                     version:
+                                      description: Maven Version
                                       type: string
                                   required:
                                   - artifactId
@@ -213,27 +260,37 @@ spec:
                         type: object
                       type: array
                     version:
+                      description: Maven Version
                       type: string
                   required:
                   - artifactId
                   - groupId
                   type: object
+                description: artifacts required by this catalog
                 type: object
               loaders:
                 additionalProperties:
-                  description: CamelLoader --
+                  description: CamelLoader represents the configuration required to
+                    load a DSL
                   properties:
                     artifactId:
+                      description: Maven Artifact
                       type: string
                     dependencies:
+                      description: a list of additional dependencies required beside
+                        the base one
                       items:
-                        description: MavenArtifact defines a Maven artifact
+                        description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                          Maven artifact
                         properties:
                           artifactId:
+                            description: Maven Artifact
                             type: string
                           groupId:
+                            description: Maven Group
                             type: string
                           version:
+                            description: Maven Version
                             type: string
                         required:
                         - artifactId
@@ -241,40 +298,52 @@ spec:
                         type: object
                       type: array
                     groupId:
+                      description: Maven Group
                       type: string
                     languages:
+                      description: a list of DSLs supported
                       items:
                         type: string
                       type: array
                     metadata:
                       additionalProperties:
                         type: string
+                      description: 'Deprecated: never used a set of general metadata
+                        for various purposes'
                       type: object
                     version:
+                      description: Maven Version
                       type: string
                   required:
                   - artifactId
                   - groupId
                   type: object
+                description: loaders required by this catalog
                 type: object
               runtime:
-                description: RuntimeSpec --
+                description: the runtime targeted for the catalog
                 properties:
                   applicationClass:
+                    description: application entry point (main) to be executed
                     type: string
                   capabilities:
                     additionalProperties:
-                      description: Capability --
+                      description: Capability is a particular feature which requires
+                        a well known set of dependencies
                       properties:
                         dependencies:
                           items:
-                            description: MavenArtifact defines a Maven artifact
+                            description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                              Maven artifact
                             properties:
                               artifactId:
+                                description: Maven Artifact
                                 type: string
                               groupId:
+                                description: Maven Group
                                 type: string
                               version:
+                                description: Maven Version
                                 type: string
                             required:
                             - artifactId
@@ -284,20 +353,27 @@ spec:
                         metadata:
                           additionalProperties:
                             type: string
+                          description: 'Deprecated: not in use'
                           type: object
                       required:
                       - dependencies
                       type: object
+                    description: features offered by this runtime
                     type: object
                   dependencies:
+                    description: list of dependencies needed to run the application
                     items:
-                      description: MavenArtifact defines a Maven artifact
+                      description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                        Maven artifact
                       properties:
                         artifactId:
+                          description: Maven Artifact
                           type: string
                         groupId:
+                          description: Maven Group
                           type: string
                         version:
+                          description: Maven Version
                           type: string
                       required:
                       - artifactId
@@ -307,11 +383,13 @@ spec:
                   metadata:
                     additionalProperties:
                       type: string
+                    description: set of metadata
                     type: object
                   provider:
-                    description: RuntimeProvider --
+                    description: Camel main application provider, ie, Camel Quarkus
                     type: string
                   version:
+                    description: Camel K Runtime version
                     type: string
                 required:
                 - applicationClass
@@ -325,7 +403,7 @@ spec:
             - runtime
             type: object
           status:
-            description: CamelCatalogStatus defines the observed state of CamelCatalog
+            description: the actual state of the catalog
             type: object
         type: object
     served: true
diff --git a/helm/camel-k/crds/crd-integration-kit.yaml b/helm/camel-k/crds/crd-integration-kit.yaml
index 6d7ac30..0aa8a43 100644
--- a/helm/camel-k/crds/crd-integration-kit.yaml
+++ b/helm/camel-k/crds/crd-integration-kit.yaml
@@ -54,7 +54,12 @@ spec:
     name: v1
     schema:
       openAPIV3Schema:
-        description: IntegrationKit is the Schema for the integrationkits API
+        description: IntegrationKit defines a container image and additional configuration
+          needed to run an `Integration`. An `IntegrationKit` is a generic image generally
+          built from the requirements of an `Integration`, but agnostic to it, in
+          order to be reused by any other `Integration` which has the same required
+          set of capabilities. An `IntegrationKit` may be used for other kits as a
+          base container layer, when the `incremental` build option is enabled.
         properties:
           apiVersion:
             description: 'APIVersion defines the versioned schema of this representation
@@ -69,21 +74,31 @@ spec:
           metadata:
             type: object
           spec:
-            description: IntegrationKitSpec defines the desired state of IntegrationKit
+            description: the desired configuration
             properties:
               configuration:
+                description: 'configuration used by the kit TODO: we should deprecate
+                  in future releases in favour of mount, openapi or camel traits'
                 items:
-                  description: ConfigurationSpec --
+                  description: ConfigurationSpec represents a generic configuration
+                    specification
                   properties:
                     resourceKey:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceMountPoint:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceType:
+                      description: 'Deprecated: no longer used'
                       type: string
                     type:
+                      description: 'represents the type of configuration, ie: property,
+                        configmap, secret, ...'
                       type: string
                     value:
+                      description: the value to assign to the configuration (syntax
+                        may vary depending on the `Type`)
                       type: string
                   required:
                   - type
@@ -91,16 +106,18 @@ spec:
                   type: object
                 type: array
               dependencies:
+                description: a list of Camel dependecies used by this kit
                 items:
                   type: string
                 type: array
               image:
+                description: the container image as identify in the container registry
                 type: string
               profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
+                description: the profile which is expected by this kit
                 type: string
               repositories:
+                description: Maven repositories that can be used by the kit
                 items:
                   type: string
                 type: array
@@ -109,36 +126,47 @@ spec:
                   description: A TraitSpec contains the configuration of a trait
                   properties:
                     configuration:
-                      description: TraitConfiguration --
+                      description: TraitConfiguration parameters configuration
                       type: object
                       x-kubernetes-preserve-unknown-fields: true
                   required:
                   - configuration
                   type: object
+                description: traits that the kit will execute
                 type: object
             type: object
           status:
-            description: IntegrationKitStatus defines the observed state of IntegrationKit
+            description: the actual status
             properties:
               artifacts:
+                description: list of artifacts used by the kit
                 items:
-                  description: Artifact --
+                  description: Artifact represents a materialized artifact (a jar
+                    dependency or in general a file used by the build)
                   properties:
                     checksum:
+                      description: a checksum (SHA1) of the content
                       type: string
                     id:
+                      description: the identification (GAV for maven dependencies
+                        or file name for other file types)
                       type: string
                     location:
+                      description: where it is located in the builder `Pod`
                       type: string
                     target:
+                      description: the expected location in the runtime
                       type: string
                   required:
                   - id
                   type: object
                 type: array
               baseImage:
+                description: base image used by the kit
                 type: string
               conditions:
+                description: a list of conditions which happened for the events related
+                  the kit
                 items:
                   description: IntegrationKitCondition describes the state of a resource
                     at a certain point.
@@ -171,20 +199,25 @@ spec:
                   type: object
                 type: array
               digest:
+                description: actual image digest of the kit
                 type: string
               failure:
-                description: Failure --
+                description: failure reason (if any)
                 properties:
                   reason:
+                    description: a short text specifying the reason
                     type: string
                   recovery:
-                    description: FailureRecovery --
+                    description: the recovery attempted for this failure
                     properties:
                       attempt:
+                        description: attempt number
                         type: integer
                       attemptMax:
+                        description: maximum number of attempts
                         type: integer
                       attemptTime:
+                        description: time of the attempt execution
                         format: date-time
                         type: string
                     required:
@@ -192,6 +225,7 @@ spec:
                     - attemptMax
                     type: object
                   time:
+                    description: the time when the failure has happened
                     format: date-time
                     type: string
                 required:
@@ -200,18 +234,22 @@ spec:
                 - time
                 type: object
               image:
+                description: actual image name of the kit
                 type: string
               phase:
-                description: IntegrationKitPhase --
+                description: phase of the kit
                 type: string
               platform:
+                description: the platform for which this kit was configured
                 type: string
               runtimeProvider:
-                description: RuntimeProvider --
+                description: the runtime provider for which this kit was configured
                 type: string
               runtimeVersion:
+                description: the runtime version for which this kit was configured
                 type: string
               version:
+                description: the Camel K operator version for which this kit was configured
                 type: string
             type: object
         type: object
diff --git a/helm/camel-k/crds/crd-integration-platform.yaml b/helm/camel-k/crds/crd-integration-platform.yaml
index 830347f..967d7fe 100644
--- a/helm/camel-k/crds/crd-integration-platform.yaml
+++ b/helm/camel-k/crds/crd-integration-platform.yaml
@@ -46,8 +46,11 @@ spec:
     name: v1
     schema:
       openAPIV3Schema:
-        description: IntegrationPlatform is the Schema for the integrationplatforms
-          API
+        description: IntegrationPlatform is the resource used to drive the Camel K
+          operator behavior. It defines the behavior of all Custom Resources (`IntegrationKit`,
+          `Integration`, `Kamelet`) in the given namespace. When the Camel K operator
+          is installed in `global` mode, you will need to specify an `IntegrationPlatform`
+          in each namespace where you want the Camel K operator to be executed
         properties:
           apiVersion:
             description: 'APIVersion defines the versioned schema of this representation
@@ -65,21 +68,26 @@ spec:
             description: IntegrationPlatformSpec defines the desired state of IntegrationPlatform
             properties:
               build:
-                description: IntegrationPlatformBuildSpec contains platform related
-                  build information
+                description: specify how to build the Integration/IntegrationKits
                 properties:
                   baseImage:
+                    description: a base image that can be used as base layer for all
+                      images. It can be useful if you want to provide some custom
+                      base image with further utility softwares
                     type: string
                   buildStrategy:
-                    description: BuildStrategy specifies how the Build should be executed
+                    description: the strategy to adopt for building an Integration
+                      base image
                     enum:
                     - routine
                     - pod
                     type: string
                   kanikoBuildCache:
+                    description: enables Kaniko publish strategy cache
                     type: boolean
                   maven:
-                    description: MavenSpec --
+                    description: Maven configuration used to build the Camel/Camel-Quarkus
+                      applications
                     properties:
                       caSecret:
                         description: The Secret name and key, containing the CA certificate(s)
@@ -115,13 +123,17 @@ spec:
                       extension:
                         description: The Maven build extensions. See https://maven.apache.org/guides/mini/guide-using-extensions.html.
                         items:
-                          description: MavenArtifact defines a Maven artifact
+                          description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                            Maven artifact
                           properties:
                             artifactId:
+                              description: Maven Artifact
                               type: string
                             groupId:
+                              description: Maven Group
                               type: string
                             version:
+                              description: Maven Version
                               type: string
                           required:
                           - artifactId
@@ -180,51 +192,73 @@ spec:
                         type: object
                     type: object
                   persistentVolumeClaim:
+                    description: the Persistent Volume Claim used by Kaniko publish
+                      strategy, if cache is enabled
                     type: string
                   publishStrategy:
-                    description: IntegrationPlatformBuildPublishStrategy enumerates
-                      all implemented publish strategies
+                    description: the strategy to adopt for publishing an Integration
+                      base image
                     type: string
                   registry:
-                    description: RegistrySpec provides the configuration for the container
-                      registry
+                    description: the image registry used to push/pull Integration
+                      images
                     properties:
                       address:
+                        description: the URI to access
                         type: string
                       ca:
+                        description: the configmap which stores the Certificate Authority
                         type: string
                       insecure:
+                        description: if the container registry is insecure (ie, http
+                          only)
                         type: boolean
                       organization:
+                        description: the registry organization
                         type: string
                       secret:
+                        description: the secret where credentials are stored
                         type: string
                     type: object
                   runtimeProvider:
-                    description: RuntimeProvider --
+                    description: the runtime used. Likely Camel Quarkus (we used to
+                      have main runtime which has been discontinued since version
+                      1.5)
                     type: string
                   runtimeVersion:
+                    description: the Camel K Runtime dependency version
                     type: string
                   timeout:
+                    description: how much time to wait before time out the build process
                     type: string
                 type: object
               cluster:
-                description: IntegrationPlatformCluster is the kind of orchestration
-                  cluster the platform is installed into
+                description: what kind of cluster you're running (ie, plain Kubernetes
+                  or Openshift)
                 type: string
               configuration:
+                description: list of configuration properties to be attached to all
+                  the Integration/IntegrationKits built from this IntegrationPlatform
                 items:
-                  description: ConfigurationSpec --
+                  description: ConfigurationSpec represents a generic configuration
+                    specification
                   properties:
                     resourceKey:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceMountPoint:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceType:
+                      description: 'Deprecated: no longer used'
                       type: string
                     type:
+                      description: 'represents the type of configuration, ie: property,
+                        configmap, secret, ...'
                       type: string
                     value:
+                      description: the value to assign to the configuration (syntax
+                        may vary depending on the `Type`)
                       type: string
                   required:
                   - type
@@ -232,57 +266,69 @@ spec:
                   type: object
                 type: array
               kamelet:
-                description: IntegrationPlatformKameletSpec --
+                description: configuration to be executed to all Kamelets controlled
+                  by this IntegrationPlatform
                 properties:
                   repositories:
+                    description: remote repository used to retrieve Kamelet catalog
                     items:
-                      description: IntegrationPlatformKameletRepositorySpec --
+                      description: IntegrationPlatformKameletRepositorySpec defines
+                        the location of the Kamelet catalog to use
                       properties:
                         uri:
+                          description: the remote repository in the format github:ORG/REPO/PATH_TO_KAMELETS_FOLDER
                           type: string
                       type: object
                     type: array
                 type: object
               profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
+                description: the profile you wish to use. It will apply certain traits
+                  which are required by the specific profile chosen. It usually relates
+                  the Cluster with the optional definition of special profiles (ie,
+                  Knative)
                 type: string
               resources:
-                description: IntegrationPlatformResourcesSpec contains platform related
-                  resources
+                description: 'Deprecated: not used'
                 type: object
               traits:
                 additionalProperties:
                   description: A TraitSpec contains the configuration of a trait
                   properties:
                     configuration:
-                      description: TraitConfiguration --
+                      description: TraitConfiguration parameters configuration
                       type: object
                       x-kubernetes-preserve-unknown-fields: true
                   required:
                   - configuration
                   type: object
+                description: list of traits to be executed for all the Integration/IntegrationKits
+                  built from this IntegrationPlatform
                 type: object
             type: object
           status:
             description: IntegrationPlatformStatus defines the observed state of IntegrationPlatform
             properties:
               build:
-                description: IntegrationPlatformBuildSpec contains platform related
-                  build information
+                description: specify how to build the Integration/IntegrationKits
                 properties:
                   baseImage:
+                    description: a base image that can be used as base layer for all
+                      images. It can be useful if you want to provide some custom
+                      base image with further utility softwares
                     type: string
                   buildStrategy:
-                    description: BuildStrategy specifies how the Build should be executed
+                    description: the strategy to adopt for building an Integration
+                      base image
                     enum:
                     - routine
                     - pod
                     type: string
                   kanikoBuildCache:
+                    description: enables Kaniko publish strategy cache
                     type: boolean
                   maven:
-                    description: MavenSpec --
+                    description: Maven configuration used to build the Camel/Camel-Quarkus
+                      applications
                     properties:
                       caSecret:
                         description: The Secret name and key, containing the CA certificate(s)
@@ -318,13 +364,17 @@ spec:
                       extension:
                         description: The Maven build extensions. See https://maven.apache.org/guides/mini/guide-using-extensions.html.
                         items:
-                          description: MavenArtifact defines a Maven artifact
+                          description: MavenArtifact defines a GAV (Group:Artifact:Version)
+                            Maven artifact
                           properties:
                             artifactId:
+                              description: Maven Artifact
                               type: string
                             groupId:
+                              description: Maven Group
                               type: string
                             version:
+                              description: Maven Version
                               type: string
                           required:
                           - artifactId
@@ -383,39 +433,53 @@ spec:
                         type: object
                     type: object
                   persistentVolumeClaim:
+                    description: the Persistent Volume Claim used by Kaniko publish
+                      strategy, if cache is enabled
                     type: string
                   publishStrategy:
-                    description: IntegrationPlatformBuildPublishStrategy enumerates
-                      all implemented publish strategies
+                    description: the strategy to adopt for publishing an Integration
+                      base image
                     type: string
                   registry:
-                    description: RegistrySpec provides the configuration for the container
-                      registry
+                    description: the image registry used to push/pull Integration
+                      images
                     properties:
                       address:
+                        description: the URI to access
                         type: string
                       ca:
+                        description: the configmap which stores the Certificate Authority
                         type: string
                       insecure:
+                        description: if the container registry is insecure (ie, http
+                          only)
                         type: boolean
                       organization:
+                        description: the registry organization
                         type: string
                       secret:
+                        description: the secret where credentials are stored
                         type: string
                     type: object
                   runtimeProvider:
-                    description: RuntimeProvider --
+                    description: the runtime used. Likely Camel Quarkus (we used to
+                      have main runtime which has been discontinued since version
+                      1.5)
                     type: string
                   runtimeVersion:
+                    description: the Camel K Runtime dependency version
                     type: string
                   timeout:
+                    description: how much time to wait before time out the build process
                     type: string
                 type: object
               cluster:
-                description: IntegrationPlatformCluster is the kind of orchestration
-                  cluster the platform is installed into
+                description: what kind of cluster you're running (ie, plain Kubernetes
+                  or Openshift)
                 type: string
               conditions:
+                description: which are the conditions met (particularly useful when
+                  in ERROR phase)
                 items:
                   description: IntegrationPlatformCondition describes the state of
                     a resource at a certain point.
@@ -448,18 +512,28 @@ spec:
                   type: object
                 type: array
               configuration:
+                description: list of configuration properties to be attached to all
+                  the Integration/IntegrationKits built from this IntegrationPlatform
                 items:
-                  description: ConfigurationSpec --
+                  description: ConfigurationSpec represents a generic configuration
+                    specification
                   properties:
                     resourceKey:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceMountPoint:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceType:
+                      description: 'Deprecated: no longer used'
                       type: string
                     type:
+                      description: 'represents the type of configuration, ie: property,
+                        configmap, secret, ...'
                       type: string
                     value:
+                      description: the value to assign to the configuration (syntax
+                        may vary depending on the `Type`)
                       type: string
                   required:
                   - type
@@ -469,43 +543,53 @@ spec:
               info:
                 additionalProperties:
                   type: string
+                description: generic information related to the build of Camel K operator
+                  software
                 type: object
               kamelet:
-                description: IntegrationPlatformKameletSpec --
+                description: configuration to be executed to all Kamelets controlled
+                  by this IntegrationPlatform
                 properties:
                   repositories:
+                    description: remote repository used to retrieve Kamelet catalog
                     items:
-                      description: IntegrationPlatformKameletRepositorySpec --
+                      description: IntegrationPlatformKameletRepositorySpec defines
+                        the location of the Kamelet catalog to use
                       properties:
                         uri:
+                          description: the remote repository in the format github:ORG/REPO/PATH_TO_KAMELETS_FOLDER
                           type: string
                       type: object
                     type: array
                 type: object
               phase:
-                description: IntegrationPlatformPhase --
+                description: defines in what phase the IntegrationPlatform is found
                 type: string
               profile:
-                description: TraitProfile represents lists of traits that are enabled
-                  for the specific installation/integration
+                description: the profile you wish to use. It will apply certain traits
+                  which are required by the specific profile chosen. It usually relates
+                  the Cluster with the optional definition of special profiles (ie,
+                  Knative)
                 type: string
               resources:
-                description: IntegrationPlatformResourcesSpec contains platform related
-                  resources
+                description: 'Deprecated: not used'
                 type: object
               traits:
                 additionalProperties:
                   description: A TraitSpec contains the configuration of a trait
                   properties:
                     configuration:
-                      description: TraitConfiguration --
+                      description: TraitConfiguration parameters configuration
                       type: object
                       x-kubernetes-preserve-unknown-fields: true
                   required:
                   - configuration
                   type: object
+                description: list of traits to be executed for all the Integration/IntegrationKits
+                  built from this IntegrationPlatform
                 type: object
               version:
+                description: the Camel K operator version controlling this IntegrationPlatform
                 type: string
             type: object
         type: object
diff --git a/helm/camel-k/crds/crd-integration.yaml b/helm/camel-k/crds/crd-integration.yaml
index 81b604f..48159ee 100644
--- a/helm/camel-k/crds/crd-integration.yaml
+++ b/helm/camel-k/crds/crd-integration.yaml
@@ -77,17 +77,25 @@ spec:
                   Use container trait (mount.resources) to manage resources Use container
                   trait (mount.volumes) to manage volumes'
                 items:
-                  description: ConfigurationSpec --
+                  description: ConfigurationSpec represents a generic configuration
+                    specification
                   properties:
                     resourceKey:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceMountPoint:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceType:
+                      description: 'Deprecated: no longer used'
                       type: string
                     type:
+                      description: 'represents the type of configuration, ie: property,
+                        configmap, secret, ...'
                       type: string
                     value:
+                      description: the value to assign to the configuration (syntax
+                        may vary depending on the `Type`)
                       type: string
                   required:
                   - type
@@ -180,29 +188,41 @@ spec:
                   to manage resources Use openapi trait (openapi.configmaps) to manage
                   OpenAPIs specifications'
                 items:
-                  description: ResourceSpec --
+                  description: 'ResourceSpec represent an attached resource which
+                    will be materialized as a file on the running `Pod` TODO: we should
+                    deprecate in future releases in favour of mount, openapi or camel
+                    traits'
                   properties:
                     compression:
+                      description: if the content is compressed (base64 encrypted)
                       type: boolean
                     content:
+                      description: the source code (plain text)
                       type: string
                     contentKey:
+                      description: the confimap key holding the source content
                       type: string
                     contentRef:
+                      description: the confimap reference holding the source content
                       type: string
                     contentType:
+                      description: the content type (tipically text or binary)
                       type: string
                     mountPath:
+                      description: the mount path on destination `Pod`
                       type: string
                     name:
+                      description: the name of the specification
                       type: string
                     path:
+                      description: the path where the file is stored
                       type: string
                     rawContent:
+                      description: the source code (binary)
                       format: byte
                       type: string
                     type:
-                      description: ResourceType --
+                      description: the kind of data to expect
                       type: string
                   type: object
                 type: array
@@ -210,17 +230,23 @@ spec:
                 type: string
               sources:
                 items:
-                  description: SourceSpec --
+                  description: SourceSpec defines the configuration for one or more
+                    routes to be executed in a certain Camel DSL language
                   properties:
                     compression:
+                      description: if the content is compressed (base64 encrypted)
                       type: boolean
                     content:
+                      description: the source code (plain text)
                       type: string
                     contentKey:
+                      description: the confimap key holding the source content
                       type: string
                     contentRef:
+                      description: the confimap reference holding the source content
                       type: string
                     contentType:
+                      description: the content type (tipically text or binary)
                       type: string
                     interceptors:
                       description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
@@ -229,15 +255,18 @@ spec:
                         type: string
                       type: array
                     language:
-                      description: Language --
+                      description: specify which is the language (Camel DSL) used
+                        to interpret this source code
                       type: string
                     loader:
                       description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                         that will interpret this source at runtime
                       type: string
                     name:
+                      description: the name of the specification
                       type: string
                     path:
+                      description: the path where the file is stored
                       type: string
                     property-names:
                       description: List of property names defined in the source (e.g.
@@ -246,6 +275,7 @@ spec:
                         type: string
                       type: array
                     rawContent:
+                      description: the source code (binary)
                       format: byte
                       type: string
                     type:
@@ -5659,7 +5689,7 @@ spec:
                   description: A TraitSpec contains the configuration of a trait
                   properties:
                     configuration:
-                      description: TraitConfiguration --
+                      description: TraitConfiguration parameters configuration
                       type: object
                       x-kubernetes-preserve-unknown-fields: true
                   required:
@@ -5713,17 +5743,25 @@ spec:
                 type: array
               configuration:
                 items:
-                  description: ConfigurationSpec --
+                  description: ConfigurationSpec represents a generic configuration
+                    specification
                   properties:
                     resourceKey:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceMountPoint:
+                      description: 'Deprecated: no longer used'
                       type: string
                     resourceType:
+                      description: 'Deprecated: no longer used'
                       type: string
                     type:
+                      description: 'represents the type of configuration, ie: property,
+                        configmap, secret, ...'
                       type: string
                     value:
+                      description: the value to assign to the configuration (syntax
+                        may vary depending on the `Type`)
                       type: string
                   required:
                   - type
@@ -5738,45 +5776,63 @@ spec:
                 type: string
               generatedResources:
                 items:
-                  description: ResourceSpec --
+                  description: 'ResourceSpec represent an attached resource which
+                    will be materialized as a file on the running `Pod` TODO: we should
+                    deprecate in future releases in favour of mount, openapi or camel
+                    traits'
                   properties:
                     compression:
+                      description: if the content is compressed (base64 encrypted)
                       type: boolean
                     content:
+                      description: the source code (plain text)
                       type: string
                     contentKey:
+                      description: the confimap key holding the source content
                       type: string
                     contentRef:
+                      description: the confimap reference holding the source content
                       type: string
                     contentType:
+                      description: the content type (tipically text or binary)
                       type: string
                     mountPath:
+                      description: the mount path on destination `Pod`
                       type: string
                     name:
+                      description: the name of the specification
                       type: string
                     path:
+                      description: the path where the file is stored
                       type: string
                     rawContent:
+                      description: the source code (binary)
                       format: byte
                       type: string
                     type:
-                      description: ResourceType --
+                      description: the kind of data to expect
                       type: string
                   type: object
                 type: array
               generatedSources:
                 items:
-                  description: SourceSpec --
+                  description: SourceSpec defines the configuration for one or more
+                    routes to be executed in a certain Camel DSL language
                   properties:
                     compression:
+                      description: if the content is compressed (base64 encrypted)
                       type: boolean
                     content:
+                      description: the source code (plain text)
                       type: string
                     contentKey:
+                      description: the confimap key holding the source content
                       type: string
                     contentRef:
+                      description: the confimap reference holding the source content
                       type: string
                     contentType:
+                      description: the content type (tipically text or binary)
                       type: string
                     interceptors:
                       description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
@@ -5785,15 +5841,18 @@ spec:
                         type: string
                       type: array
                     language:
-                      description: Language --
+                      description: specify which is the language (Camel DSL) used
+                        to interpret this source code
                       type: string
                     loader:
                       description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                         that will interpret this source at runtime
                       type: string
                     name:
+                      description: the name of the specification
                       type: string
                     path:
+                      description: the path where the file is stored
                       type: string
                     property-names:
                       description: List of property names defined in the source (e.g.
@@ -5802,6 +5861,7 @@ spec:
                         type: string
                       type: array
                     rawContent:
+                      description: the source code (binary)
                       format: byte
                       type: string
                     type:
@@ -5889,7 +5949,7 @@ spec:
                 format: int32
                 type: integer
               runtimeProvider:
-                description: RuntimeProvider --
+                description: RuntimeProvider is the provider chosen for the runtime
                 type: string
               runtimeVersion:
                 type: string
diff --git a/helm/camel-k/crds/crd-kamelet-binding.yaml b/helm/camel-k/crds/crd-kamelet-binding.yaml
index 944a254..5147981 100644
--- a/helm/camel-k/crds/crd-kamelet-binding.yaml
+++ b/helm/camel-k/crds/crd-kamelet-binding.yaml
@@ -82,17 +82,25 @@ spec:
                       configs Use container trait (mount.resources) to manage resources
                       Use container trait (mount.volumes) to manage volumes'
                     items:
-                      description: ConfigurationSpec --
+                      description: ConfigurationSpec represents a generic configuration
+                        specification
                       properties:
                         resourceKey:
+                          description: 'Deprecated: no longer used'
                           type: string
                         resourceMountPoint:
+                          description: 'Deprecated: no longer used'
                           type: string
                         resourceType:
+                          description: 'Deprecated: no longer used'
                           type: string
                         type:
+                          description: 'represents the type of configuration, ie:
+                            property, configmap, secret, ...'
                           type: string
                         value:
+                          description: the value to assign to the configuration (syntax
+                            may vary depending on the `Type`)
                           type: string
                       required:
                       - type
@@ -186,29 +194,41 @@ spec:
                       to manage resources Use openapi trait (openapi.configmaps) to
                       manage OpenAPIs specifications'
                     items:
-                      description: ResourceSpec --
+                      description: 'ResourceSpec represent an attached resource which
+                        will be materialized as a file on the running `Pod` TODO:
+                        we should deprecate in future releases in favour of mount,
+                        openapi or camel traits'
                       properties:
                         compression:
+                          description: if the content is compressed (base64 encrypted)
                           type: boolean
                         content:
+                          description: the source code (plain text)
                           type: string
                         contentKey:
+                          description: the confimap key holding the source content
                           type: string
                         contentRef:
+                          description: the confimap reference holding the source content
                           type: string
                         contentType:
+                          description: the content type (tipically text or binary)
                           type: string
                         mountPath:
+                          description: the mount path on destination `Pod`
                           type: string
                         name:
+                          description: the name of the specification
                           type: string
                         path:
+                          description: the path where the file is stored
                           type: string
                         rawContent:
+                          description: the source code (binary)
                           format: byte
                           type: string
                         type:
-                          description: ResourceType --
+                          description: the kind of data to expect
                           type: string
                       type: object
                     type: array
@@ -216,17 +236,23 @@ spec:
                     type: string
                   sources:
                     items:
-                      description: SourceSpec --
+                      description: SourceSpec defines the configuration for one or
+                        more routes to be executed in a certain Camel DSL language
                       properties:
                         compression:
+                          description: if the content is compressed (base64 encrypted)
                           type: boolean
                         content:
+                          description: the source code (plain text)
                           type: string
                         contentKey:
+                          description: the confimap key holding the source content
                           type: string
                         contentRef:
+                          description: the confimap reference holding the source content
                           type: string
                         contentType:
+                          description: the content type (tipically text or binary)
                           type: string
                         interceptors:
                           description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
@@ -235,15 +261,18 @@ spec:
                             type: string
                           type: array
                         language:
-                          description: Language --
+                          description: specify which is the language (Camel DSL) used
+                            to interpret this source code
                           type: string
                         loader:
                           description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                             that will interpret this source at runtime
                           type: string
                         name:
+                          description: the name of the specification
                           type: string
                         path:
+                          description: the path where the file is stored
                           type: string
                         property-names:
                           description: List of property names defined in the source
@@ -252,6 +281,7 @@ spec:
                             type: string
                           type: array
                         rawContent:
+                          description: the source code (binary)
                           format: byte
                           type: string
                         type:
@@ -5937,7 +5967,7 @@ spec:
                       description: A TraitSpec contains the configuration of a trait
                       properties:
                         configuration:
-                          description: TraitConfiguration --
+                          description: TraitConfiguration parameters configuration
                           type: object
                           x-kubernetes-preserve-unknown-fields: true
                       required:
diff --git a/helm/camel-k/crds/crd-kamelet.yaml b/helm/camel-k/crds/crd-kamelet.yaml
index 09410dd..e4140ee 100644
--- a/helm/camel-k/crds/crd-kamelet.yaml
+++ b/helm/camel-k/crds/crd-kamelet.yaml
@@ -219,17 +219,23 @@ spec:
                 x-kubernetes-preserve-unknown-fields: true
               sources:
                 items:
-                  description: SourceSpec --
+                  description: SourceSpec defines the configuration for one or more
+                    routes to be executed in a certain Camel DSL language
                   properties:
                     compression:
+                      description: if the content is compressed (base64 encrypted)
                       type: boolean
                     content:
+                      description: the source code (plain text)
                       type: string
                     contentKey:
+                      description: the confimap key holding the source content
                       type: string
                     contentRef:
+                      description: the confimap reference holding the source content
                       type: string
                     contentType:
+                      description: the content type (tipically text or binary)
                       type: string
                     interceptors:
                       description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
@@ -238,15 +244,18 @@ spec:
                         type: string
                       type: array
                     language:
-                      description: Language --
+                      description: specify which is the language (Camel DSL) used
+                        to interpret this source code
                       type: string
                     loader:
                       description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
                         that will interpret this source at runtime
                       type: string
                     name:
+                      description: the name of the specification
                       type: string
                     path:
+                      description: the path where the file is stored
                       type: string
                     property-names:
                       description: List of property names defined in the source (e.g.
@@ -255,6 +264,7 @@ spec:
                         type: string
                       type: array
                     rawContent:
+                      description: the source code (binary)
                       format: byte
                       type: string
                     type:
diff --git a/pkg/apis/camel/v1/build_types.go b/pkg/apis/camel/v1/build_types.go
index 8b8d35a..2526383 100644
--- a/pkg/apis/camel/v1/build_types.go
+++ b/pkg/apis/camel/v1/build_types.go
@@ -25,7 +25,7 @@ import (
 // NOTE: json tags are required.  Any new fields you add must have json tags for the fields to be serialized.
 // Important: Run "make generate-deepcopy" to regenerate code after modifying this file
 
-// BuildSpec defines the Build to be executed
+// BuildSpec defines the Build operation to be executed
 type BuildSpec struct {
 	// The sequence of Build tasks to be performed as part of the Build execution.
 	Tasks []Task `json:"tasks,omitempty"`
@@ -39,93 +39,130 @@ type BuildSpec struct {
 	Timeout metav1.Duration `json:"timeout,omitempty"`
 }
 
-// Task --
+// Task represents the abstract task. Only one of the task should be configured to represent the specific task chosen.
 type Task struct {
-	Builder  *BuilderTask  `json:"builder,omitempty"`
-	Buildah  *BuildahTask  `json:"buildah,omitempty"`
-	Kaniko   *KanikoTask   `json:"kaniko,omitempty"`
+	// a BuilderTask (base task)
+	Builder *BuilderTask `json:"builder,omitempty"`
+	// a BuildahTask, for Buildah strategy
+	Buildah *BuildahTask `json:"buildah,omitempty"`
+	// a KanikoTask, for Kaniko strategy
+	Kaniko *KanikoTask `json:"kaniko,omitempty"`
+	// a SpectrumTask, for Spectrum strategy
 	Spectrum *SpectrumTask `json:"spectrum,omitempty"`
-	S2i      *S2iTask      `json:"s2i,omitempty"`
+	// a S2iTask, for S2I strategy
+	S2i *S2iTask `json:"s2i,omitempty"`
 }
 
-// BaseTask --
+// BaseTask is a base for the struct hierarchy
 type BaseTask struct {
+	// name of the task
 	Name string `json:"name,omitempty"`
 }
 
-// BuilderTask --
+// BuilderTask is the generic task in charge of building the application image
 type BuilderTask struct {
-	BaseTask     `json:",inline"`
-	BaseImage    string         `json:"baseImage,omitempty"`
-	Runtime      RuntimeSpec    `json:"runtime,omitempty"`
-	Sources      []SourceSpec   `json:"sources,omitempty"`
-	Resources    []ResourceSpec `json:"resources,omitempty"`
-	Dependencies []string       `json:"dependencies,omitempty"`
-	Steps        []string       `json:"steps,omitempty"`
-	Maven        MavenBuildSpec `json:"maven,omitempty"`
-	BuildDir     string         `json:"buildDir,omitempty"`
+	BaseTask `json:",inline"`
+	// the base image layer
+	BaseImage string `json:"baseImage,omitempty"`
+	// the configuration required for the runtime application
+	Runtime RuntimeSpec `json:"runtime,omitempty"`
+	// the source code for the Route(s)
+	// Deprecated: no longer in use
+	Sources []SourceSpec `json:"sources,omitempty"`
+	// Deprecated: no longer in use
+	Resources []ResourceSpec `json:"resources,omitempty"`
+	// the list of dependencies to use for this build
+	Dependencies []string `json:"dependencies,omitempty"`
+	// the list of steps to execute (see pkg/builder/)
+	Steps []string `json:"steps,omitempty"`
+	// the configuration required by Maven for the application build phase
+	Maven MavenBuildSpec `json:"maven,omitempty"`
+	// workspace directory to use
+	BuildDir string `json:"buildDir,omitempty"`
 }
 
-// MavenBuildSpec --
+// MavenBuildSpec defines the Maven configuration plus additional repositories to use
 type MavenBuildSpec struct {
+	// base Maven specification
 	MavenSpec `json:",inline"`
-	// The Maven repositories.
+	// additional repositories
 	Repositories []Repository `json:"repositories,omitempty"`
 }
 
-// PublishTask --
+// PublishTask image publish configuration
 type PublishTask struct {
-	ContextDir string       `json:"contextDir,omitempty"`
-	BaseImage  string       `json:"baseImage,omitempty"`
-	Image      string       `json:"image,omitempty"`
-	Registry   RegistrySpec `json:"registry,omitempty"`
+	// can be useful to share info with other tasks
+	ContextDir string `json:"contextDir,omitempty"`
+	// base image layer
+	BaseImage string `json:"baseImage,omitempty"`
+	// final image name
+	Image string `json:"image,omitempty"`
+	// where to publish the final image
+	Registry RegistrySpec `json:"registry,omitempty"`
 }
 
-// BuildahTask --
+// BuildahTask is used to configure Buildah
 type BuildahTask struct {
 	BaseTask    `json:",inline"`
 	PublishTask `json:",inline"`
-	Verbose     *bool `json:"verbose,omitempty"`
+	// log more information
+	Verbose *bool `json:"verbose,omitempty"`
 }
 
-// KanikoTask --
+// KanikoTask is used to configure Kaniko
 type KanikoTask struct {
 	BaseTask    `json:",inline"`
 	PublishTask `json:",inline"`
-	Verbose     *bool           `json:"verbose,omitempty"`
-	Cache       KanikoTaskCache `json:"cache,omitempty"`
+	// log more information
+	Verbose *bool `json:"verbose,omitempty"`
+	// use a cache
+	Cache KanikoTaskCache `json:"cache,omitempty"`
 }
 
-// KanikoTaskCache --
+// KanikoTaskCache is used to configure Kaniko cache
 type KanikoTaskCache struct {
-	Enabled               *bool  `json:"enabled,omitempty"`
+	// true if a cache is enabled
+	Enabled *bool `json:"enabled,omitempty"`
+	// the PVC used to store the cache
 	PersistentVolumeClaim string `json:"persistentVolumeClaim,omitempty"`
 }
 
-// SpectrumTask --
+// SpectrumTask is used to configure Spectrum
 type SpectrumTask struct {
 	BaseTask    `json:",inline"`
 	PublishTask `json:",inline"`
 }
 
-// S2iTask --
+// S2iTask is used to configure S2I
 type S2iTask struct {
-	BaseTask   `json:",inline"`
+	BaseTask `json:",inline"`
+	// can be useful to share info with other tasks
 	ContextDir string `json:"contextDir,omitempty"`
-	Tag        string `json:"tag,omitempty"`
+	// used by the ImageStream
+	Tag string `json:"tag,omitempty"`
 }
 
 // BuildStatus defines the observed state of Build
 type BuildStatus struct {
-	Phase      BuildPhase       `json:"phase,omitempty"`
-	Image      string           `json:"image,omitempty"`
-	Digest     string           `json:"digest,omitempty"`
-	BaseImage  string           `json:"baseImage,omitempty"`
-	Artifacts  []Artifact       `json:"artifacts,omitempty"`
-	Error      string           `json:"error,omitempty"`
-	Failure    *Failure         `json:"failure,omitempty"`
-	StartedAt  *metav1.Time     `json:"startedAt,omitempty"`
+	// describes the phase
+	Phase BuildPhase `json:"phase,omitempty"`
+	// the image name built
+	Image string `json:"image,omitempty"`
+	// the digest from image
+	Digest string `json:"digest,omitempty"`
+	// the base image used for this build
+	BaseImage string `json:"baseImage,omitempty"`
+	// a list of artifacts contained in the build
+	Artifacts []Artifact `json:"artifacts,omitempty"`
+	// the error description (if any)
+	Error string `json:"error,omitempty"`
+	// the reason of the failure (if any)
+	Failure *Failure `json:"failure,omitempty"`
+	// the time when it started
+	StartedAt *metav1.Time `json:"startedAt,omitempty"`
+	// a list of conditions occurred during the build
 	Conditions []BuildCondition `json:"conditions,omitempty"`
+	// how long it took for the build
 	// Change to Duration / ISO 8601 when CRD uses OpenAPI spec v3
 	// https://github.com/OAI/OpenAPI-Specification/issues/845
 	Duration string `json:"duration,omitempty"`
diff --git a/pkg/apis/camel/v1/camelcatalog_types.go b/pkg/apis/camel/v1/camelcatalog_types.go
index 21cd651..fc5f488 100644
--- a/pkg/apis/camel/v1/camelcatalog_types.go
+++ b/pkg/apis/camel/v1/camelcatalog_types.go
@@ -21,88 +21,114 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
 
-// CamelScheme --
+const (
+	// CamelCatalogKind --
+	CamelCatalogKind string = "CamelCatalog"
+)
+
+// +genclient
+// +kubebuilder:object:root=true
+// +kubebuilder:resource:path=camelcatalogs,scope=Namespaced,shortName=cc,categories=kamel;camel
+// +kubebuilder:subresource:status
+// +kubebuilder:storageversion
+// +kubebuilder:printcolumn:name="Runtime Version",type=string,JSONPath=`.spec.runtime.version`,description="The Camel K Runtime version"
+// +kubebuilder:printcolumn:name="Runtime Provider",type=string,JSONPath=`.spec.runtime.provider`,description="The Camel K Runtime provider"
+
+// 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.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"`
+
+	// the actual state of the catalog
+	Status CamelCatalogStatus `json:"status,omitempty" yaml:"status,omitempty"`
+	// the desired state of the catalog
+	Spec CamelCatalogSpec `json:"spec,omitempty" yaml:"spec,omitempty"`
+}
+
+// +kubebuilder:object:root=true
+
+// CamelCatalogList contains a list of CamelCatalog
+type CamelCatalogList struct {
+	metav1.TypeMeta `json:",inline"`
+	metav1.ListMeta `json:"metadata,omitempty"`
+	Items           []CamelCatalog `json:"items"`
+}
+
+// CamelCatalogSpec specify what features a Camel runtime provides
+type CamelCatalogSpec struct {
+	// the runtime targeted for the catalog
+	Runtime RuntimeSpec `json:"runtime" yaml:"runtime"`
+	// artifacts required by this catalog
+	Artifacts map[string]CamelArtifact `json:"artifacts" yaml:"artifacts"`
+	// loaders required by this catalog
+	Loaders map[string]CamelLoader `json:"loaders" yaml:"loaders"`
+}
+
+// CamelCatalogStatus defines the observed state of CamelCatalog. As the catalog is a static resource, we expect it to be empty.
+type CamelCatalogStatus struct {
+}
+
+// CamelScheme represents the scheme used to identify a component in a URI (ie, timer in a timer:xyz endpoint URI)
 type CamelScheme struct {
-	ID       string           `json:"id" yaml:"id"`
-	Passive  bool             `json:"passive" yaml:"passive"`
-	HTTP     bool             `json:"http" yaml:"http"`
+	// the ID (ie, timer in a timer:xyz URI)
+	ID string `json:"id" yaml:"id"`
+	// is a passive scheme
+	Passive bool `json:"passive" yaml:"passive"`
+	// is a HTTP based scheme
+	HTTP bool `json:"http" yaml:"http"`
+	// required scope for consumer
 	Consumer CamelSchemeScope `json:"consumer,omitempty" yaml:"consumer,omitempty"`
+	// required scope for producers
 	Producer CamelSchemeScope `json:"producer,omitempty" yaml:"producer,omitempty"`
 }
 
 // CamelSchemeScope contains scoped information about a scheme
 type CamelSchemeScope struct {
+	// list of dependencies needed for this scope
 	Dependencies []CamelArtifactDependency `json:"dependencies,omitempty" yaml:"dependencies,omitempty"`
 }
 
-// CamelArtifactExclusion --
+// CamelArtifactExclusion represents an exclusion clause
 type CamelArtifactExclusion struct {
-	GroupID    string `json:"groupId" yaml:"groupId"`
+	// Maven Group
+	GroupID string `json:"groupId" yaml:"groupId"`
+	// Maven Artifact
 	ArtifactID string `json:"artifactId" yaml:"artifactId"`
 }
 
 // CamelArtifactDependency represent a maven's dependency
 type CamelArtifactDependency struct {
+	// the maven dependency
 	MavenArtifact `json:",inline" yaml:",inline"`
-	Exclusions    []CamelArtifactExclusion `json:"exclusions,omitempty" yaml:"exclusions,omitempty"`
+	// provide a list of artifacts to exclude for this dependency
+	Exclusions []CamelArtifactExclusion `json:"exclusions,omitempty" yaml:"exclusions,omitempty"`
 }
 
-// CamelArtifact --
+// CamelArtifact represent the configuration for a feature offered by Camel
 type CamelArtifact struct {
+	// Base Camel Artifact dependency
 	CamelArtifactDependency `json:",inline" yaml:",inline"`
-	Schemes                 []CamelScheme             `json:"schemes,omitempty" yaml:"schemes,omitempty"`
-	Languages               []string                  `json:"languages,omitempty" yaml:"languages,omitempty"`
-	DataFormats             []string                  `json:"dataformats,omitempty" yaml:"dataformats,omitempty"`
-	Dependencies            []CamelArtifactDependency `json:"dependencies,omitempty" yaml:"dependencies,omitempty"`
-	JavaTypes               []string                  `json:"javaTypes,omitempty" yaml:"javaTypes,omitempty"`
+	// accepted URI schemes
+	Schemes []CamelScheme `json:"schemes,omitempty" yaml:"schemes,omitempty"`
+	// accepted languages
+	Languages []string `json:"languages,omitempty" yaml:"languages,omitempty"`
+	// accepted data formats
+	DataFormats []string `json:"dataformats,omitempty" yaml:"dataformats,omitempty"`
+	// required dependencies
+	Dependencies []CamelArtifactDependency `json:"dependencies,omitempty" yaml:"dependencies,omitempty"`
+	// the Java types used by the artifact feature (ie, component, data format, ...)
+	JavaTypes []string `json:"javaTypes,omitempty" yaml:"javaTypes,omitempty"`
 }
 
-// CamelLoader --
+// CamelLoader represents the configuration required to load a DSL
 type CamelLoader struct {
+	// the base Maven artifact required
 	MavenArtifact `json:",inline" yaml:",inline"`
-	Languages     []string          `json:"languages,omitempty" yaml:"languages,omitempty"`
-	Dependencies  []MavenArtifact   `json:"dependencies,omitempty" yaml:"dependencies,omitempty"`
-	Metadata      map[string]string `json:"metadata,omitempty" yaml:"metadata,omitempty"`
+	// a list of DSLs supported
+	Languages []string `json:"languages,omitempty" yaml:"languages,omitempty"`
+	// a list of additional dependencies required beside the base one
+	Dependencies []MavenArtifact `json:"dependencies,omitempty" yaml:"dependencies,omitempty"`
+	// Deprecated: never used
+	// a set of general metadata for various purposes
+	Metadata map[string]string `json:"metadata,omitempty" yaml:"metadata,omitempty"`
 }
-
-// CamelCatalogSpec defines the desired state of CamelCatalog
-type CamelCatalogSpec struct {
-	Runtime   RuntimeSpec              `json:"runtime" yaml:"runtime"`
-	Artifacts map[string]CamelArtifact `json:"artifacts" yaml:"artifacts"`
-	Loaders   map[string]CamelLoader   `json:"loaders" yaml:"loaders"`
-}
-
-// CamelCatalogStatus defines the observed state of CamelCatalog
-type CamelCatalogStatus struct {
-}
-
-// +genclient
-// +kubebuilder:object:root=true
-// +kubebuilder:resource:path=camelcatalogs,scope=Namespaced,shortName=cc,categories=kamel;camel
-// +kubebuilder:subresource:status
-// +kubebuilder:storageversion
-// +kubebuilder:printcolumn:name="Runtime Version",type=string,JSONPath=`.spec.runtime.version`,description="The Camel K Runtime version"
-// +kubebuilder:printcolumn:name="Runtime Provider",type=string,JSONPath=`.spec.runtime.provider`,description="The Camel K Runtime provider"
-
-// CamelCatalog is the Schema for the camelcatalogs API
-type CamelCatalog struct {
-	metav1.TypeMeta   `json:",inline" yaml:",inline"`
-	metav1.ObjectMeta `json:"metadata,omitempty" yaml:"metadata,omitempty"`
-
-	Status CamelCatalogStatus `json:"status,omitempty" yaml:"status,omitempty"`
-	Spec   CamelCatalogSpec   `json:"spec,omitempty" yaml:"spec,omitempty"`
-}
-
-// +kubebuilder:object:root=true
-
-// CamelCatalogList contains a list of CamelCatalog
-type CamelCatalogList struct {
-	metav1.TypeMeta `json:",inline"`
-	metav1.ListMeta `json:"metadata,omitempty"`
-	Items           []CamelCatalog `json:"items"`
-}
-
-const (
-	// CamelCatalogKind --
-	CamelCatalogKind string = "CamelCatalog"
-)
diff --git a/pkg/apis/camel/v1/common_types.go b/pkg/apis/camel/v1/common_types.go
index 6b97918..1d9be8c 100644
--- a/pkg/apis/camel/v1/common_types.go
+++ b/pkg/apis/camel/v1/common_types.go
@@ -23,68 +23,93 @@ import (
 )
 
 const (
+	// TraitAnnotationPrefix represents the prefix used for traits annotations
 	TraitAnnotationPrefix = "trait.camel.apache.org/"
-
-	OperatorIDAnnotation        = "camel.apache.org/operator.id"
+	// OperatorIDAnnotation operator id annotation label
+	OperatorIDAnnotation = "camel.apache.org/operator.id"
+	// SecondaryPlatformAnnotation secondary platform annotation label
 	SecondaryPlatformAnnotation = "camel.apache.org/secondary.platform"
-	PlatformSelectorAnnotation  = "camel.apache.org/platform.id"
+	// PlatformSelectorAnnotation platform id annotation label
+	PlatformSelectorAnnotation = "camel.apache.org/platform.id"
 )
 
-// BuildStrategy specifies how the Build should be executed
+// BuildStrategy specifies how the Build should be executed.
+// It will trigger a Maven process that will take care of producing the expected Camel/Camel-Quarkus runtime.
 // +kubebuilder:validation:Enum=routine;pod
 type BuildStrategy string
 
 const (
-	// BuildStrategyRoutine performs the build in a routine
+	// BuildStrategyRoutine performs the build in a routine (will be executed as a process inside the same Camel K operator `Pod`).
+	// A routine may be preferred to a `pod` strategy since it reuse the Maven repository dependency cached locally. It is executed as
+	// a parallel process, so you may need to consider the quantity of concurrent build process running simultaneously.
 	BuildStrategyRoutine BuildStrategy = "routine"
-	// BuildStrategyPod performs the build in a pod
+	// BuildStrategyPod performs the build in a `Pod` (will schedule a new builder ephemeral `Pod` which will take care of the build action).
+	// This strategy has the limitation that every build will have to download all the dependencies required by the Maven build.
 	BuildStrategyPod BuildStrategy = "pod"
 )
 
+// BuildStrategies is a list of strategies allowed for the build
 var BuildStrategies = []BuildStrategy{
 	BuildStrategyRoutine,
 	BuildStrategyPod,
 }
 
-// ConfigurationSpec --
+// ConfigurationSpec represents a generic configuration specification
 type ConfigurationSpec struct {
-	Type               string `json:"type"`
-	Value              string `json:"value"`
-	ResourceType       string `json:"resourceType,omitempty"`
+	// represents the type of configuration, ie: property, configmap, secret, ...
+	Type string `json:"type"`
+	// the value to assign to the configuration (syntax may vary depending on the `Type`)
+	Value string `json:"value"`
+	// Deprecated: no longer used
+	ResourceType string `json:"resourceType,omitempty"`
+	// Deprecated: no longer used
 	ResourceMountPoint string `json:"resourceMountPoint,omitempty"`
-	ResourceKey        string `json:"resourceKey,omitempty"`
+	// Deprecated: no longer used
+	ResourceKey string `json:"resourceKey,omitempty"`
 }
 
-// Artifact --
+// Artifact represents a materialized artifact (a jar dependency or in general a file used by the build)
 type Artifact struct {
-	ID       string `json:"id" yaml:"id"`
+	// the identification (GAV for maven dependencies or file name for other file types)
+	ID string `json:"id" yaml:"id"`
+	// where it is located in the builder `Pod`
 	Location string `json:"location,omitempty" yaml:"location,omitempty"`
-	Target   string `json:"target,omitempty" yaml:"target,omitempty"`
+	// the expected location in the runtime
+	Target string `json:"target,omitempty" yaml:"target,omitempty"`
+	// a checksum (SHA1) of the content
 	Checksum string `json:"checksum,omitempty" yaml:"checksum,omitempty"`
 }
 
-// Failure --
+// Failure represent a message specifying the reason and the time of an event failure
 type Failure struct {
-	Reason   string          `json:"reason"`
-	Time     metav1.Time     `json:"time"`
+	// a short text specifying the reason
+	Reason string `json:"reason"`
+	// the time when the failure has happened
+	Time metav1.Time `json:"time"`
+	// the recovery attempted for this failure
 	Recovery FailureRecovery `json:"recovery"`
 }
 
-// FailureRecovery --
+// FailureRecovery defines the attempts to recover a failure
 type FailureRecovery struct {
-	Attempt    int `json:"attempt"`
+	// attempt number
+	Attempt int `json:"attempt"`
+	// maximum number of attempts
 	AttemptMax int `json:"attemptMax"`
+	// time of the attempt execution
 	// +optional
 	AttemptTime metav1.Time `json:"attemptTime"`
 }
 
 // A TraitSpec contains the configuration of a trait
 type TraitSpec struct {
-	// TraitConfiguration --
+	// TraitConfiguration parameters configuration
 	Configuration TraitConfiguration `json:"configuration"`
 }
 
+// TraitConfiguration represents the expected configuration for a given trait parameter
 type TraitConfiguration struct {
+	// generic raw message, tipically a map containing the keys (trait parameters) and the values (either single text or array)
 	RawMessage `json:",inline"`
 }
 
@@ -106,10 +131,15 @@ type Configurable interface {
 
 // RegistrySpec provides the configuration for the container registry
 type RegistrySpec struct {
-	Insecure     bool   `json:"insecure,omitempty"`
-	Address      string `json:"address,omitempty"`
-	Secret       string `json:"secret,omitempty"`
-	CA           string `json:"ca,omitempty"`
+	// if the container registry is insecure (ie, http only)
+	Insecure bool `json:"insecure,omitempty"`
+	// the URI to access
+	Address string `json:"address,omitempty"`
+	// the secret where credentials are stored
+	Secret string `json:"secret,omitempty"`
+	// the configmap which stores the Certificate Authority
+	CA string `json:"ca,omitempty"`
+	// the registry organization
 	Organization string `json:"organization,omitempty"`
 }
 
@@ -121,39 +151,46 @@ type ValueSource struct {
 	SecretKeyRef *corev1.SecretKeySelector `json:"secretKeyRef,omitempty"`
 }
 
-// RuntimeSpec --
+// RuntimeSpec represents the configuration for the Java runtime in charge to execute the Camel application
 type RuntimeSpec struct {
-	Version          string                `json:"version" yaml:"version"`
-	Provider         RuntimeProvider       `json:"provider" yaml:"provider"`
-	ApplicationClass string                `json:"applicationClass" yaml:"applicationClass"`
-	Dependencies     []MavenArtifact       `json:"dependencies" yaml:"dependencies"`
-	Metadata         map[string]string     `json:"metadata,omitempty" yaml:"metadata,omitempty"`
-	Capabilities     map[string]Capability `json:"capabilities,omitempty" yaml:"capabilities,omitempty"`
+	// Camel K Runtime version
+	Version string `json:"version" yaml:"version"`
+	// Camel main application provider, ie, Camel Quarkus
+	Provider RuntimeProvider `json:"provider" yaml:"provider"`
+	// application entry point (main) to be executed
+	ApplicationClass string `json:"applicationClass" yaml:"applicationClass"`
+	// list of dependencies needed to run the application
+	Dependencies []MavenArtifact `json:"dependencies" yaml:"dependencies"`
+	// set of metadata
+	Metadata map[string]string `json:"metadata,omitempty" yaml:"metadata,omitempty"`
+	// features offered by this runtime
+	Capabilities map[string]Capability `json:"capabilities,omitempty" yaml:"capabilities,omitempty"`
 }
 
-// Capability --
+// Capability is a particular feature which requires a well known set of dependencies
 type Capability struct {
-	Dependencies []MavenArtifact   `json:"dependencies" yaml:"dependencies"`
-	Metadata     map[string]string `json:"metadata,omitempty" yaml:"metadata,omitempty"`
+	Dependencies []MavenArtifact `json:"dependencies" yaml:"dependencies"`
+	// Deprecated: not in use
+	Metadata map[string]string `json:"metadata,omitempty" yaml:"metadata,omitempty"`
 }
 
 const (
-	// ServiceTypeUser --
+	// ServiceTypeUser service user type label marker
 	ServiceTypeUser = "user"
 
-	// CapabilityRest --
+	// CapabilityRest defines the REST API service exposure capability
 	CapabilityRest = "rest"
-	// CapabilityHealth --
+	// CapabilityHealth defines the health monitoring capability
 	CapabilityHealth = "health"
-	// CapabilityCron --
+	// CapabilityCron defines the cron execution capability
 	CapabilityCron = "cron"
-	// CapabilityPlatformHTTP --
+	// CapabilityPlatformHTTP defines the http service exposure capability
 	CapabilityPlatformHTTP = "platform-http"
-	// CapabilityCircuitBreaker --
+	// CapabilityCircuitBreaker defines the circuit breaker capability
 	CapabilityCircuitBreaker = "circuit-breaker"
-	// CapabilityTracing --
+	// CapabilityTracing defines the tracing (opentracing) capability
 	CapabilityTracing = "tracing"
-	// CapabilityMaster --
+	// CapabilityMaster defines the master capability
 	CapabilityMaster = "master"
 )
 
@@ -174,41 +211,42 @@ type Flow struct {
 	RawMessage `json:",inline"`
 }
 
-// Template is an unstructured object representing a Kamelet template in YAML/JSON DSL
-//type Template struct {
-//	RawMessage `json:",inline"`
-//}
-
-// RuntimeProvider --
+// RuntimeProvider is the provider chosen for the runtime
 type RuntimeProvider string
 
 const (
-	// RuntimeProviderQuarkus --
+	// RuntimeProviderQuarkus Camel Quarkus runtime
 	RuntimeProviderQuarkus RuntimeProvider = "quarkus"
 )
 
-// ResourceType --
-type ResourceType string
-
-// ResourceSpec --
+// ResourceSpec represent an attached resource which will be materialized as a file on the running `Pod`
+// TODO: we should deprecate in future releases in favour of mount, openapi or camel traits
 type ResourceSpec struct {
-	DataSpec  `json:",inline"`
-	Type      ResourceType `json:"type,omitempty"`
-	MountPath string       `json:"mountPath,omitempty"`
+	// the content of the resource
+	DataSpec `json:",inline"`
+	// the kind of data to expect
+	Type ResourceType `json:"type,omitempty"`
+	// the mount path on destination `Pod`
+	MountPath string `json:"mountPath,omitempty"`
 }
 
+// ResourceType defines a kind of resource
+type ResourceType string
+
 const (
-	// ResourceTypeData represents a generic data resource
+	// ResourceTypeData represents a generic data resource (text or binary)
 	ResourceTypeData ResourceType = "data"
-	// ResourceTypeConfig represents a config resource known to runtime
+	// ResourceTypeConfig represents a configuration resource (text only)
 	ResourceTypeConfig ResourceType = "config"
-	// ResourceTypeOpenAPI represents an OpenAPI config resource
+	// ResourceTypeOpenAPI represents an OpenAPI specification resource
 	ResourceTypeOpenAPI ResourceType = "openapi"
 )
 
-// SourceSpec --
+// SourceSpec defines the configuration for one or more routes to be executed in a certain Camel DSL language
 type SourceSpec struct {
+	// contains configuration related to the source code
 	DataSpec `json:",inline"`
+	// specify which is the language (Camel DSL) used to interpret this source code
 	Language Language `json:"language,omitempty"`
 	// Loader is an optional id of the org.apache.camel.k.RoutesLoader that will
 	// interpret this source at runtime
@@ -222,43 +260,55 @@ type SourceSpec struct {
 	PropertyNames []string `json:"property-names,omitempty"`
 }
 
+// SourceType represents an available source type
 type SourceType string
 
 const (
-	SourceTypeDefault      SourceType = ""
-	SourceTypeTemplate     SourceType = "template"
+	// SourceTypeDefault is used to represent a source code
+	SourceTypeDefault SourceType = ""
+	// SourceTypeTemplate is used to represent a template
+	SourceTypeTemplate SourceType = "template"
+	// SourceTypeErrorHandler is used to represent an error handler
 	SourceTypeErrorHandler SourceType = "errorHandler"
 )
 
-// DataSpec --
+// DataSpec represents the way the source is materialized in the running `Pod`
 type DataSpec struct {
-	Name        string `json:"name,omitempty"`
-	Path        string `json:"path,omitempty"`
-	Content     string `json:"content,omitempty"`
-	RawContent  []byte `json:"rawContent,omitempty"`
-	ContentRef  string `json:"contentRef,omitempty"`
-	ContentKey  string `json:"contentKey,omitempty"`
+	// the name of the specification
+	Name string `json:"name,omitempty"`
+	// the path where the file is stored
+	Path string `json:"path,omitempty"`
+	// the source code (plain text)
+	Content string `json:"content,omitempty"`
+	// the source code (binary)
+	RawContent []byte `json:"rawContent,omitempty"`
+	// the confimap reference holding the source content
+	ContentRef string `json:"contentRef,omitempty"`
+	// the confimap key holding the source content
+	ContentKey string `json:"contentKey,omitempty"`
+	// the content type (tipically text or binary)
 	ContentType string `json:"contentType,omitempty"`
-	Compression bool   `json:"compression,omitempty"`
+	// if the content is compressed (base64 encrypted)
+	Compression bool `json:"compression,omitempty"`
 }
 
-// Language --
+// Language represents a supported language (Camel DSL)
 type Language string
 
 const (
-	// LanguageJavaSource --
+	// LanguageJavaSource used for Java
 	LanguageJavaSource Language = "java"
-	// LanguageGroovy --
+	// LanguageGroovy used for Groovy
 	LanguageGroovy Language = "groovy"
-	// LanguageJavaScript --
+	// LanguageJavaScript  used for Javascript
 	LanguageJavaScript Language = "js"
-	// LanguageXML --
+	// LanguageXML used for XML
 	LanguageXML Language = "xml"
-	// LanguageKotlin --
+	// LanguageKotlin used for Kotlin
 	LanguageKotlin Language = "kts"
-	// LanguageYaml --
+	// LanguageYaml used for YAML
 	LanguageYaml Language = "yaml"
-	// LanguageKamelet --
+	// LanguageKamelet used for Kamelets
 	LanguageKamelet Language = "kamelet"
 )
 
diff --git a/pkg/apis/camel/v1/integration_types_support.go b/pkg/apis/camel/v1/integration_types_support.go
index d3c8675..a35520b 100644
--- a/pkg/apis/camel/v1/integration_types_support.go
+++ b/pkg/apis/camel/v1/integration_types_support.go
@@ -101,18 +101,6 @@ func (in *IntegrationSpec) AddConfiguration(confType string, confValue string) {
 	})
 }
 
-// AddConfigurationAsResource will set a configuration specified with a resource type
-func (in *IntegrationSpec) AddConfigurationAsResource(
-	confType string, confValue string, resourceType string, resourceMountPoint string, resourceKey string) {
-	in.Configuration = append(in.Configuration, ConfigurationSpec{
-		Type:               confType,
-		Value:              confValue,
-		ResourceType:       resourceType,
-		ResourceMountPoint: resourceMountPoint,
-		ResourceKey:        resourceKey,
-	})
-}
-
 func (in *IntegrationSpec) AddDependency(dependency string) {
 	if in.Dependencies == nil {
 		in.Dependencies = make([]string, 0)
diff --git a/pkg/apis/camel/v1/integrationkit_types.go b/pkg/apis/camel/v1/integrationkit_types.go
index 2ed6b54..0d1dca4 100644
--- a/pkg/apis/camel/v1/integrationkit_types.go
+++ b/pkg/apis/camel/v1/integrationkit_types.go
@@ -25,31 +25,6 @@ import (
 // NOTE: json tags are required.  Any new fields you add must have json tags for the fields to be serialized.
 // Important: Run "make generate-deepcopy" to regenerate code after modifying this file
 
-// IntegrationKitSpec defines the desired state of IntegrationKit
-type IntegrationKitSpec struct {
-	Image         string               `json:"image,omitempty"`
-	Dependencies  []string             `json:"dependencies,omitempty"`
-	Profile       TraitProfile         `json:"profile,omitempty"`
-	Traits        map[string]TraitSpec `json:"traits,omitempty"`
-	Configuration []ConfigurationSpec  `json:"configuration,omitempty"`
-	Repositories  []string             `json:"repositories,omitempty"`
-}
-
-// IntegrationKitStatus defines the observed state of IntegrationKit
-type IntegrationKitStatus struct {
-	Phase           IntegrationKitPhase       `json:"phase,omitempty"`
-	BaseImage       string                    `json:"baseImage,omitempty"`
-	Image           string                    `json:"image,omitempty"`
-	Digest          string                    `json:"digest,omitempty"`
-	Artifacts       []Artifact                `json:"artifacts,omitempty"`
-	Failure         *Failure                  `json:"failure,omitempty"`
-	RuntimeVersion  string                    `json:"runtimeVersion,omitempty"`
-	RuntimeProvider RuntimeProvider           `json:"runtimeProvider,omitempty"`
-	Platform        string                    `json:"platform,omitempty"`
-	Conditions      []IntegrationKitCondition `json:"conditions,omitempty"`
-	Version         string                    `json:"version,omitempty"`
-}
-
 // +genclient
 // +kubebuilder:object:root=true
 // +kubebuilder:resource:path=integrationkits,scope=Namespaced,shortName=ik,categories=kamel;camel
@@ -59,15 +34,63 @@ type IntegrationKitStatus struct {
 // +kubebuilder:printcolumn:name="Type",type=string,JSONPath=`.metadata.labels.camel\.apache\.org\/kit\.type`,description="The integration kit type"
 // +kubebuilder:printcolumn:name="Image",type=string,JSONPath=`.status.image`,description="The integration kit image"
 
-// IntegrationKit is the Schema for the integrationkits API
+// IntegrationKit defines a container image and additional configuration needed to run an `Integration`.
+// An `IntegrationKit` is a generic image generally built from the requirements of an `Integration`, but agnostic to it,
+// in order to be reused by any other `Integration` which has the same required set of capabilities. An `IntegrationKit`
+// may be used for other kits as a base container layer, when the `incremental` build option is enabled.
 type IntegrationKit struct {
 	metav1.TypeMeta   `json:",inline"`
 	metav1.ObjectMeta `json:"metadata,omitempty"`
 
-	Spec   IntegrationKitSpec   `json:"spec,omitempty"`
+	// the desired configuration
+	Spec IntegrationKitSpec `json:"spec,omitempty"`
+	// the actual status
 	Status IntegrationKitStatus `json:"status,omitempty"`
 }
 
+// IntegrationKitSpec defines a container image and additional configurations required to kick off an `Integration` which certain features
+type IntegrationKitSpec struct {
+	// the container image as identify in the container registry
+	Image string `json:"image,omitempty"`
+	// a list of Camel dependecies used by this kit
+	Dependencies []string `json:"dependencies,omitempty"`
+	// the profile which is expected by this kit
+	Profile TraitProfile `json:"profile,omitempty"`
+	// traits that the kit will execute
+	Traits map[string]TraitSpec `json:"traits,omitempty"`
+	// configuration used by the kit
+	// TODO: we should deprecate in future releases in favour of mount, openapi or camel traits
+	Configuration []ConfigurationSpec `json:"configuration,omitempty"`
+	// Maven repositories that can be used by the kit
+	Repositories []string `json:"repositories,omitempty"`
+}
+
+// IntegrationKitStatus defines the observed state of IntegrationKit
+type IntegrationKitStatus struct {
+	// phase of the kit
+	Phase IntegrationKitPhase `json:"phase,omitempty"`
+	// base image used by the kit
+	BaseImage string `json:"baseImage,omitempty"`
+	// actual image name of the kit
+	Image string `json:"image,omitempty"`
+	// actual image digest of the kit
+	Digest string `json:"digest,omitempty"`
+	// list of artifacts used by the kit
+	Artifacts []Artifact `json:"artifacts,omitempty"`
+	// failure reason (if any)
+	Failure *Failure `json:"failure,omitempty"`
+	// the runtime version for which this kit was configured
+	RuntimeVersion string `json:"runtimeVersion,omitempty"`
+	// the runtime provider for which this kit was configured
+	RuntimeProvider RuntimeProvider `json:"runtimeProvider,omitempty"`
+	// the platform for which this kit was configured
+	Platform string `json:"platform,omitempty"`
+	// the Camel K operator version for which this kit was configured
+	Version string `json:"version,omitempty"`
+	// a list of conditions which happened for the events related the kit
+	Conditions []IntegrationKitCondition `json:"conditions,omitempty"`
+}
+
 // +kubebuilder:object:root=true
 
 // IntegrationKitList contains a list of IntegrationKit
@@ -90,11 +113,11 @@ const (
 	// IntegrationKitTypeLabel labels the kit type
 	IntegrationKitTypeLabel = "camel.apache.org/kit.type"
 
-	// IntegrationKitTypePlatform --
+	// IntegrationKitTypePlatform identifies a kit created by the platform
 	IntegrationKitTypePlatform = "platform"
-	// IntegrationKitTypeUser --
+	// IntegrationKitTypeUser identifies a kit created by the user
 	IntegrationKitTypeUser = "user"
-	// IntegrationKitTypeExternal --
+	// IntegrationKitTypeExternal identifies a kit created by any third party
 	IntegrationKitTypeExternal = "external"
 
 	// IntegrationKitLayoutLabel labels the kit layout
diff --git a/pkg/apis/camel/v1/integrationplatform_types.go b/pkg/apis/camel/v1/integrationplatform_types.go
index 87c66ac..dfef411 100644
--- a/pkg/apis/camel/v1/integrationplatform_types.go
+++ b/pkg/apis/camel/v1/integrationplatform_types.go
@@ -27,16 +27,25 @@ import (
 
 // IntegrationPlatformSpec defines the desired state of IntegrationPlatform
 type IntegrationPlatformSpec struct {
-	Cluster       IntegrationPlatformCluster       `json:"cluster,omitempty"`
-	Profile       TraitProfile                     `json:"profile,omitempty"`
-	Build         IntegrationPlatformBuildSpec     `json:"build,omitempty"`
-	Resources     IntegrationPlatformResourcesSpec `json:"resources,omitempty"`
-	Traits        map[string]TraitSpec             `json:"traits,omitempty"`
-	Configuration []ConfigurationSpec              `json:"configuration,omitempty"`
-	Kamelet       IntegrationPlatformKameletSpec   `json:"kamelet,omitempty"`
+	// what kind of cluster you're running (ie, plain Kubernetes or Openshift)
+	Cluster IntegrationPlatformCluster `json:"cluster,omitempty"`
+	// the profile you wish to use. It will apply certain traits which are required by the specific profile chosen.
+	// It usually relates the Cluster with the optional definition of special profiles (ie, Knative)
+	Profile TraitProfile `json:"profile,omitempty"`
+	// specify how to build the Integration/IntegrationKits
+	Build IntegrationPlatformBuildSpec `json:"build,omitempty"`
+	// Deprecated: not used
+	Resources IntegrationPlatformResourcesSpec `json:"resources,omitempty"`
+	// list of traits to be executed for all the Integration/IntegrationKits built from this IntegrationPlatform
+	Traits map[string]TraitSpec `json:"traits,omitempty"`
+	// list of configuration properties to be attached to all the Integration/IntegrationKits built from this IntegrationPlatform
+	Configuration []ConfigurationSpec `json:"configuration,omitempty"`
+	// configuration to be executed to all Kamelets controlled by this IntegrationPlatform
+	Kamelet IntegrationPlatformKameletSpec `json:"kamelet,omitempty"`
 }
 
-// IntegrationPlatformResourcesSpec contains platform related resources
+// IntegrationPlatformResourcesSpec contains platform related resources.
+// Deprecated: not used
 type IntegrationPlatformResourcesSpec struct {
 }
 
@@ -44,10 +53,14 @@ type IntegrationPlatformResourcesSpec struct {
 type IntegrationPlatformStatus struct {
 	IntegrationPlatformSpec `json:",inline"`
 
-	Phase      IntegrationPlatformPhase       `json:"phase,omitempty"`
+	// defines in what phase the IntegrationPlatform is found
+	Phase IntegrationPlatformPhase `json:"phase,omitempty"`
+	// which are the conditions met (particularly useful when in ERROR phase)
 	Conditions []IntegrationPlatformCondition `json:"conditions,omitempty"`
-	Version    string                         `json:"version,omitempty"`
-	Info       map[string]string              `json:"info,omitempty"`
+	// the Camel K operator version controlling this IntegrationPlatform
+	Version string `json:"version,omitempty"`
+	// generic information related to the build of Camel K operator software
+	Info map[string]string `json:"info,omitempty"`
 }
 
 // +genclient
@@ -57,7 +70,10 @@ type IntegrationPlatformStatus struct {
 // +kubebuilder:storageversion
 // +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase`,description="The integration platform phase"
 
-// IntegrationPlatform is the Schema for the integrationplatforms API
+// IntegrationPlatform is the resource used to drive the Camel K operator behavior.
+// It defines the behavior of all Custom Resources (`IntegrationKit`, `Integration`, `Kamelet`) in the given namespace.
+// When the Camel K operator is installed in `global` mode,
+// you will need to specify an `IntegrationPlatform` in each namespace where you want the Camel K operator to be executed
 type IntegrationPlatform struct {
 	metav1.TypeMeta   `json:",inline"`
 	metav1.ObjectMeta `json:"metadata,omitempty"`
@@ -105,45 +121,65 @@ const (
 // AllTraitProfiles contains all allowed profiles
 var AllTraitProfiles = []TraitProfile{TraitProfileKubernetes, TraitProfileKnative, TraitProfileOpenShift}
 
-// IntegrationPlatformBuildSpec contains platform related build information
+// IntegrationPlatformBuildSpec contains platform related build information.
+// This configuration can be used to tune the behavior of the Integration/IntegrationKit image builds.
+// You can define the build strategy, the image registry to use and the Maven configuration to adopt.
 type IntegrationPlatformBuildSpec struct {
-	BuildStrategy         BuildStrategy                           `json:"buildStrategy,omitempty"`
-	PublishStrategy       IntegrationPlatformBuildPublishStrategy `json:"publishStrategy,omitempty"`
-	RuntimeVersion        string                                  `json:"runtimeVersion,omitempty"`
-	RuntimeProvider       RuntimeProvider                         `json:"runtimeProvider,omitempty"`
-	BaseImage             string                                  `json:"baseImage,omitempty"`
-	Registry              RegistrySpec                            `json:"registry,omitempty"`
-	Timeout               *metav1.Duration                        `json:"timeout,omitempty"`
-	PersistentVolumeClaim string                                  `json:"persistentVolumeClaim,omitempty"`
-	Maven                 MavenSpec                               `json:"maven,omitempty"`
-	KanikoBuildCache      *bool                                   `json:"kanikoBuildCache,omitempty"`
+	// the strategy to adopt for building an Integration base image
+	BuildStrategy BuildStrategy `json:"buildStrategy,omitempty"`
+	// the strategy to adopt for publishing an Integration base image
+	PublishStrategy IntegrationPlatformBuildPublishStrategy `json:"publishStrategy,omitempty"`
+	// the Camel K Runtime dependency version
+	RuntimeVersion string `json:"runtimeVersion,omitempty"`
+	// the runtime used. Likely Camel Quarkus (we used to have main runtime which has been discontinued since version 1.5)
+	RuntimeProvider RuntimeProvider `json:"runtimeProvider,omitempty"`
+	// a base image that can be used as base layer for all images.
+	// It can be useful if you want to provide some custom base image with further utility softwares
+	BaseImage string `json:"baseImage,omitempty"`
+	// the image registry used to push/pull Integration images
+	Registry RegistrySpec `json:"registry,omitempty"`
+	// how much time to wait before time out the build process
+	Timeout *metav1.Duration `json:"timeout,omitempty"`
+	// Maven configuration used to build the Camel/Camel-Quarkus applications
+	Maven MavenSpec `json:"maven,omitempty"`
+	// enables Kaniko publish strategy cache
+	KanikoBuildCache *bool `json:"kanikoBuildCache,omitempty"`
+	// the Persistent Volume Claim used by Kaniko publish strategy, if cache is enabled
+	PersistentVolumeClaim string `json:"persistentVolumeClaim,omitempty"`
 }
 
-// IntegrationPlatformKameletSpec --
+// IntegrationPlatformKameletSpec define the behavior for all the Kamelets controller by the IntegrationPlatform
 type IntegrationPlatformKameletSpec struct {
+	// remote repository used to retrieve Kamelet catalog
 	Repositories []IntegrationPlatformKameletRepositorySpec `json:"repositories,omitempty"`
 }
 
-// IntegrationPlatformKameletRepositorySpec --
+// IntegrationPlatformKameletRepositorySpec defines the location of the Kamelet catalog to use
 type IntegrationPlatformKameletRepositorySpec struct {
+	// the remote repository in the format github:ORG/REPO/PATH_TO_KAMELETS_FOLDER
 	URI string `json:"uri,omitempty"`
 }
 
-// IntegrationPlatformBuildPublishStrategy enumerates all implemented publish strategies
+// IntegrationPlatformBuildPublishStrategy defines the strategy used to package and publish an Integration base image
 type IntegrationPlatformBuildPublishStrategy string
 
 const (
-	// IntegrationPlatformBuildPublishStrategyBuildah --
+	// IntegrationPlatformBuildPublishStrategyBuildah uses Buildah project (https://buildah.io/)
+	// in order to push the incremental images to the image repository. It can be used with `pod` BuildStrategy.
 	IntegrationPlatformBuildPublishStrategyBuildah IntegrationPlatformBuildPublishStrategy = "Buildah"
-	// IntegrationPlatformBuildPublishStrategyKaniko --
+	// IntegrationPlatformBuildPublishStrategyKaniko uses Kaniko project (https://github.com/GoogleContainerTools/kaniko)
+	// in order to push the incremental images to the image repository. It can be used with `pod` BuildStrategy.
 	IntegrationPlatformBuildPublishStrategyKaniko IntegrationPlatformBuildPublishStrategy = "Kaniko"
-	// IntegrationPlatformBuildPublishStrategyS2I --
+	// IntegrationPlatformBuildPublishStrategyS2I uses the Source to Images (S2I) feature
+	// (https://docs.openshift.com/container-platform/4.9/openshift_images/create-images.html#images-create-s2i_create-images)
+	// provided by an Openshift cluster in order to create and push the images to the registry. It is the default choice on Openshift cluster
 	IntegrationPlatformBuildPublishStrategyS2I IntegrationPlatformBuildPublishStrategy = "S2I"
-	// IntegrationPlatformBuildPublishStrategySpectrum --
+	// IntegrationPlatformBuildPublishStrategySpectrum uses Spectrum project (https://github.com/container-tools/spectrum)
+	// in order to push the incremental images to the image repository. It is the default choice on vanilla Kubernetes cluster
 	IntegrationPlatformBuildPublishStrategySpectrum IntegrationPlatformBuildPublishStrategy = "Spectrum"
 )
 
-// IntegrationPlatformBuildPublishStrategies --
+// IntegrationPlatformBuildPublishStrategies the list of all available publish strategies
 var IntegrationPlatformBuildPublishStrategies = []IntegrationPlatformBuildPublishStrategy{
 	IntegrationPlatformBuildPublishStrategyBuildah,
 	IntegrationPlatformBuildPublishStrategyKaniko,
@@ -151,27 +187,27 @@ var IntegrationPlatformBuildPublishStrategies = []IntegrationPlatformBuildPublis
 	IntegrationPlatformBuildPublishStrategySpectrum,
 }
 
-// IntegrationPlatformPhase --
+// IntegrationPlatformPhase is the phase of an IntegrationPlatform
 type IntegrationPlatformPhase string
 
-// IntegrationPlatformConditionType --
+// IntegrationPlatformConditionType defines the type of condition
 type IntegrationPlatformConditionType string
 
 const (
-	// IntegrationPlatformKind --
+	// IntegrationPlatformKind is the Kind name of the IntegrationPlatform CR
 	IntegrationPlatformKind string = "IntegrationPlatform"
 
-	// IntegrationPlatformPhaseNone --
+	// IntegrationPlatformPhaseNone when the IntegrationPlatform does not exist
 	IntegrationPlatformPhaseNone IntegrationPlatformPhase = ""
-	// IntegrationPlatformPhaseCreating --
+	// IntegrationPlatformPhaseCreating when the IntegrationPlatform is under creation process
 	IntegrationPlatformPhaseCreating IntegrationPlatformPhase = "Creating"
-	// IntegrationPlatformPhaseWarming --
+	// IntegrationPlatformPhaseWarming when the IntegrationPlatform is warming (ie, creating Kaniko cache)
 	IntegrationPlatformPhaseWarming IntegrationPlatformPhase = "Warming"
-	// IntegrationPlatformPhaseReady --
+	// IntegrationPlatformPhaseReady when the IntegrationPlatform is ready
 	IntegrationPlatformPhaseReady IntegrationPlatformPhase = "Ready"
-	// IntegrationPlatformPhaseError --
+	// IntegrationPlatformPhaseError when the IntegrationPlatform had some error (see Conditions)
 	IntegrationPlatformPhaseError IntegrationPlatformPhase = "Error"
-	// IntegrationPlatformPhaseDuplicate --
+	// IntegrationPlatformPhaseDuplicate when the IntegrationPlatform is duplicated
 	IntegrationPlatformPhaseDuplicate IntegrationPlatformPhase = "Duplicate"
 )
 
diff --git a/pkg/apis/camel/v1/maven_types.go b/pkg/apis/camel/v1/maven_types.go
index 2ba4181..619c9c6 100644
--- a/pkg/apis/camel/v1/maven_types.go
+++ b/pkg/apis/camel/v1/maven_types.go
@@ -48,23 +48,37 @@ type MavenSpec struct {
 
 // Repository defines a Maven repository
 type Repository struct {
-	ID        string           `xml:"id" json:"id"`
-	Name      string           `xml:"name,omitempty" json:"name,omitempty"`
-	URL       string           `xml:"url" json:"url"`
+	// identifies the repository
+	ID string `xml:"id" json:"id"`
+	// name of the repository
+	Name string `xml:"name,omitempty" json:"name,omitempty"`
+	// location of the repository
+	URL string `xml:"url" json:"url"`
+	// can use snapshot
 	Snapshots RepositoryPolicy `xml:"snapshots,omitempty" json:"snapshots,omitempty"`
-	Releases  RepositoryPolicy `xml:"releases,omitempty" json:"releases,omitempty"`
+	// can use stable releases
+	Releases RepositoryPolicy `xml:"releases,omitempty" json:"releases,omitempty"`
 }
 
 // RepositoryPolicy defines the policy associated to a Maven repository
 type RepositoryPolicy struct {
-	Enabled        bool   `xml:"enabled" json:"enabled"`
-	UpdatePolicy   string `xml:"updatePolicy,omitempty" json:"updatePolicy,omitempty"`
+	// is the policy activated or not
+	Enabled bool `xml:"enabled" json:"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"`
+	// 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"`
 }
 
-// MavenArtifact defines a Maven artifact
+// MavenArtifact defines a GAV (Group:Artifact:Version) Maven artifact
 type MavenArtifact struct {
-	GroupID    string `json:"groupId" yaml:"groupId" xml:"groupId"`
+	// Maven Group
+	GroupID string `json:"groupId" yaml:"groupId" xml:"groupId"`
+	// Maven Artifact
 	ArtifactID string `json:"artifactId" yaml:"artifactId" xml:"artifactId"`
-	Version    string `json:"version,omitempty" yaml:"version,omitempty" xml:"version,omitempty"`
+	// Maven Version
+	Version string `json:"version,omitempty" yaml:"version,omitempty" xml:"version,omitempty"`
 }
diff --git a/pkg/apis/camel/v1/zz_generated.deepcopy.go b/pkg/apis/camel/v1/zz_generated.deepcopy.go
index 01b27a7..a93dd9c 100644
--- a/pkg/apis/camel/v1/zz_generated.deepcopy.go
+++ b/pkg/apis/camel/v1/zz_generated.deepcopy.go
@@ -203,20 +203,6 @@ func (in *BuilderTask) DeepCopyInto(out *BuilderTask) {
 	*out = *in
 	out.BaseTask = in.BaseTask
 	in.Runtime.DeepCopyInto(&out.Runtime)
-	if in.Sources != nil {
-		in, out := &in.Sources, &out.Sources
-		*out = make([]SourceSpec, len(*in))
-		for i := range *in {
-			(*in)[i].DeepCopyInto(&(*out)[i])
-		}
-	}
-	if in.Resources != nil {
-		in, out := &in.Resources, &out.Resources
-		*out = make([]ResourceSpec, len(*in))
-		for i := range *in {
-			(*in)[i].DeepCopyInto(&(*out)[i])
-		}
-	}
 	if in.Dependencies != nil {
 		in, out := &in.Dependencies, &out.Dependencies
 		*out = make([]string, len(*in))
diff --git a/pkg/util/source/inspector.go b/pkg/util/source/inspector.go
index 197ac7c..f0c7a44 100644
--- a/pkg/util/source/inspector.go
+++ b/pkg/util/source/inspector.go
@@ -82,7 +82,7 @@ var (
 		},
 		restConfigurationRegexp: func(catalog *camel.RuntimeCatalog) []string {
 			deps := make([]string, 0)
-			if c, ok := catalog.CamelCatalogSpec.Runtime.Capabilities["rest"]; ok {
+			if c, ok := catalog.CamelCatalogSpec.Runtime.Capabilities[v1.CapabilityRest]; ok {
 				for _, d := range c.Dependencies {
 					deps = append(deps, d.GetDependencyID())
 				}
@@ -91,7 +91,7 @@ var (
 		},
 		restRegexp: func(catalog *camel.RuntimeCatalog) []string {
 			deps := make([]string, 0)
-			if c, ok := catalog.CamelCatalogSpec.Runtime.Capabilities["rest"]; ok {
+			if c, ok := catalog.CamelCatalogSpec.Runtime.Capabilities[v1.CapabilityRest]; ok {
 				for _, d := range c.Dependencies {
 					deps = append(deps, d.GetDependencyID())
 				}
@@ -100,7 +100,7 @@ var (
 		},
 		restClosureRegexp: func(catalog *camel.RuntimeCatalog) []string {
 			deps := make([]string, 0)
-			if c, ok := catalog.CamelCatalogSpec.Runtime.Capabilities["rest"]; ok {
+			if c, ok := catalog.CamelCatalogSpec.Runtime.Capabilities[v1.CapabilityRest]; ok {
 				for _, d := range c.Dependencies {
 					deps = append(deps, d.GetDependencyID())
 				}