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())
}