Camel K API
Resource Types
Build
Build is the Schema for the builds API
Field | Description |
---|---|
|
|
|
|
|
Refer to the Kubernetes API documentation for the fields of the |
|
|
|
CamelCatalog
CamelCatalog represents the languages, components, data formats and capabilities enabled on a given runtime provider. The catalog may be statically generated.
Field | Description |
---|---|
|
|
|
|
|
Refer to the Kubernetes API documentation for the fields of the |
|
the actual state of the catalog |
|
the desired state of the catalog |
Integration
Integration is the Schema for the integrations API
Field | Description |
---|---|
|
|
|
|
|
Refer to the Kubernetes API documentation for the fields of the |
|
the desired Integration specification |
|
the status of the Integration |
IntegrationKit
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.
Field | Description |
---|---|
|
|
|
|
|
Refer to the Kubernetes API documentation for the fields of the |
|
the desired configuration |
|
the actual status |
IntegrationPlatform
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
Field | Description |
---|---|
|
|
|
|
|
Refer to the Kubernetes API documentation for the fields of the |
|
Internal Types
AddonTrait
Appears on:
AddonTrait represents the configuration of an addon trait
Field | Description |
---|---|
|
(Members of Generic raw message, typically a map containing the keys (trait parameters) and the values (either single text or array) |
Artifact
Appears on:
Artifact represents a materialized artifact (a jar dependency or in general a file used by the build)
Field | Description |
---|---|
|
the identification (GAV for maven dependencies or file name for other file types) |
|
where it is located in the builder |
|
the expected location in the runtime |
|
a checksum (SHA1) of the content |
BaseTask
Appears on:
BaseTask is a base for the struct hierarchy
Field | Description |
---|---|
|
name of the task |
BuildCondition
Appears on:
BuildCondition describes the state of a resource at a certain point.
Field | Description |
---|---|
|
Type of integration condition. |
Status of the condition, one of True, False, Unknown. |
|
|
The last time this condition was updated. |
|
Last time the condition transitioned from one status to another. |
|
The reason for the condition’s last transition. |
|
A human-readable message indicating details about the transition. |
BuildSpec
Appears on:
BuildSpec defines the Build operation to be executed
Field | Description |
---|---|
|
The sequence of Build tasks to be performed as part of the Build execution. |
|
The strategy that should be used to perform the Build. |
|
Timeout defines the Build maximum execution duration. The Build deadline is set to the Build start time plus the Timeout duration. If the Build deadline is exceeded, the Build context is canceled, and its phase set to BuildPhaseFailed. |
BuildStatus
Appears on:
BuildStatus defines the observed state of Build
Field | Description |
---|---|
|
ObservedGeneration is the most recent generation observed for this Build. |
|
describes the phase |
|
the image name built |
|
the digest from image |
|
the base image used for this build |
|
a list of artifacts contained in the build |
|
the error description (if any) |
|
the reason of the failure (if any) |
|
the time when it started |
|
a list of conditions occurred during the build |
|
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 |
BuildStrategy(string
alias)
Appears on:
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.
BuildahTask
Appears on:
BuildahTask is used to configure Buildah
Field | Description |
---|---|
|
(Members of |
|
(Members of |
|
The platform of build image |
|
log more information |
|
docker image to use |
BuilderTask
Appears on:
BuilderTask is the generic task in charge of building the application image
Field | Description |
---|---|
|
(Members of |
|
the base image layer |
|
the configuration required for the runtime application |
|
the list of dependencies to use for this build |
|
the list of steps to execute (see pkg/builder/) |
|
the configuration required by Maven for the application build phase |
|
workspace directory to use |
CamelArtifact
Appears on:
CamelArtifact represent the configuration for a feature offered by Camel
Field | Description |
---|---|
|
(Members of Base Camel Artifact dependency |
|
accepted URI schemes |
|
accepted languages |
|
accepted data formats |
|
required dependencies |
|
the Java types used by the artifact feature (ie, component, data format, …) |
CamelArtifactDependency
Appears on:
CamelArtifactDependency represent a maven’s dependency
Field | Description |
---|---|
|
(Members of the maven dependency |
|
provide a list of artifacts to exclude for this dependency |
CamelArtifactExclusion
Appears on:
CamelArtifactExclusion represents an exclusion clause
Field | Description |
---|---|
|
Maven Group |
|
Maven Artifact |
CamelCatalogSpec
Appears on:
CamelCatalogSpec specify what features a Camel runtime provides
Field | Description |
---|---|
|
the runtime targeted for the catalog |
|
artifacts required by this catalog |
|
loaders required by this catalog |
CamelCatalogStatus
Appears on:
CamelCatalogStatus defines the observed state of CamelCatalog. As the catalog is a static resource, we expect it to be empty.
CamelLoader
Appears on:
CamelLoader represents the configuration required to load a DSL
Field | Description |
---|---|
|
(Members of the base Maven artifact required |
|
a list of DSLs supported |
|
a list of additional dependencies required beside the base one |
CamelScheme
Appears on:
CamelScheme represents the scheme used to identify a component in a URI (ie, timer in a timer:xyz endpoint URI)
Field | Description |
---|---|
|
the ID (ie, timer in a timer:xyz URI) |
|
is a passive scheme |
|
is a HTTP based scheme |
|
required scope for consumer |
|
required scope for producers |
CamelSchemeScope
Appears on:
CamelSchemeScope contains scoped information about a scheme
Field | Description |
---|---|
|
list of dependencies needed for this scope |
Capability
Appears on:
Capability is a particular feature which requires a well known set of dependencies
Field | Description |
---|---|
|
ConfigurationSpec
Appears on:
ConfigurationSpec represents a generic configuration specification
Field | Description |
---|---|
|
represents the type of configuration, ie: property, configmap, secret, … |
|
the value to assign to the configuration (syntax may vary depending on the |
DataSpec
Appears on:
DataSpec represents the way the source is materialized in the running Pod
Field | Description |
---|---|
|
the name of the specification |
|
the path where the file is stored |
|
the source code (plain text) |
|
the source code (binary) |
|
the confimap reference holding the source content |
|
the confimap key holding the source content |
|
the content type (tipically text or binary) |
|
if the content is compressed (base64 encrypted) |
Failure
Appears on:
Failure represent a message specifying the reason and the time of an event failure
Field | Description |
---|---|
|
a short text specifying the reason |
the time when the failure has happened |
|
|
the recovery attempted for this failure |
FailureRecovery
Appears on:
FailureRecovery defines the attempts to recover a failure
Field | Description |
---|---|
|
attempt number |
|
maximum number of attempts |
|
(Optional) time of the attempt execution |
Flow
Appears on:
Flow is an unstructured object representing a Camel Flow in YAML/JSON DSL
Field | Description |
---|---|
|
(Members of |
IntegrationCondition
Appears on:
IntegrationCondition describes the state of a resource at a certain point.
Field | Description |
---|---|
Type of integration condition. |
|
Status of the condition, one of True, False, Unknown. |
|
|
The last time this condition was updated. |
|
Last time the condition transitioned from one status to another. |
|
First time the condition status transitioned to True. |
|
The reason for the condition’s last transition. |
|
A human-readable message indicating details about the transition. |
IntegrationKitCondition
Appears on:
IntegrationKitCondition describes the state of a resource at a certain point.
Field | Description |
---|---|
Type of integration condition. |
|
Status of the condition, one of True, False, Unknown. |
|
|
The last time this condition was updated. |
|
Last time the condition transitioned from one status to another. |
|
The reason for the condition’s last transition. |
|
A human-readable message indicating details about the transition. |
IntegrationKitSpec
Appears on:
IntegrationKitSpec defines a container image and additional configurations required to kick off an Integration
with certain features
Field | Description |
---|---|
|
the container image as identified in the container registry |
|
a list of Camel dependecies used by this kit |
|
the profile which is expected by this kit |
|
traits that the kit will execute |
|
Deprecated: Use camel trait (camel.properties) to manage properties Use mount trait (mount.configs) to manage configs Use mount trait (mount.resources) to manage resources Use mount trait (mount.volumes) to manage volumes configuration used by the kit |
|
Maven repositories that can be used by the kit |
IntegrationKitStatus
Appears on:
IntegrationKitStatus defines the observed state of IntegrationKit
Field | Description |
---|---|
|
ObservedGeneration is the most recent generation observed for this IntegrationKit. |
|
phase of the kit |
|
base image used by the kit |
|
actual image name of the kit |
|
actual image digest of the kit |
|
list of artifacts used by the kit |
|
failure reason (if any) |
|
the runtime version for which this kit was configured |
|
the runtime provider for which this kit was configured |
|
the platform for which this kit was configured |
|
the Camel K operator version for which this kit was configured |
|
a list of conditions which happened for the events related the kit |
IntegrationKitTraits
Appears on:
IntegrationKitTraits defines traits assigned to an IntegrationKit
Field | Description |
---|---|
|
The builder trait is internally used to determine the best strategy to build and configure IntegrationKits. |
|
The Camel trait sets up Camel configuration. |
|
The Quarkus trait configures the Quarkus runtime.
It’s enabled by default.
NOTE: Compiling to a native executable, i.e. when using |
|
The Registry trait sets up Maven to use the Image registry as a Maven repository. |
|
The collection of addon trait configurations |
IntegrationPlatformBuildPublishStrategy(string
alias)
Appears on:
IntegrationPlatformBuildPublishStrategy defines the strategy used to package and publish an Integration base image
IntegrationPlatformBuildSpec
Appears on:
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.
Field | Description |
---|---|
|
the strategy to adopt for building an Integration base image |
|
the strategy to adopt for publishing an Integration base image |
|
the Camel K Runtime dependency version |
|
the runtime used. Likely Camel Quarkus (we used to have main runtime which has been discontinued since version 1.5) |
|
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 |
|
the image registry used to push/pull Integration images |
|
how much time to wait before time out the build process |
|
Maven configuration used to build the Camel/Camel-Quarkus applications |
|
Generic options that can used by each publish strategy |
IntegrationPlatformCluster(string
alias)
Appears on:
IntegrationPlatformCluster is the kind of orchestration cluster the platform is installed into
IntegrationPlatformCondition
Appears on:
IntegrationPlatformCondition describes the state of a resource at a certain point.
Field | Description |
---|---|
Type of integration condition. |
|
Status of the condition, one of True, False, Unknown. |
|
|
The last time this condition was updated. |
|
Last time the condition transitioned from one status to another. |
|
The reason for the condition’s last transition. |
|
A human-readable message indicating details about the transition. |
IntegrationPlatformConditionType(string
alias)
Appears on:
IntegrationPlatformConditionType defines the type of condition
IntegrationPlatformKameletRepositorySpec
Appears on:
IntegrationPlatformKameletRepositorySpec defines the location of the Kamelet catalog to use
Field | Description |
---|---|
|
the remote repository in the format github:ORG/REPO/PATH_TO_KAMELETS_FOLDER |
IntegrationPlatformKameletSpec
Appears on:
IntegrationPlatformKameletSpec define the behavior for all the Kamelets controller by the IntegrationPlatform
Field | Description |
---|---|
|
remote repository used to retrieve Kamelet catalog |
IntegrationPlatformPhase(string
alias)
Appears on:
IntegrationPlatformPhase is the phase of an IntegrationPlatform
IntegrationPlatformSpec
Appears on:
IntegrationPlatformSpec defines the desired state of IntegrationPlatform
Field | Description |
---|---|
|
what kind of cluster you’re running (ie, plain Kubernetes or OpenShift) |
|
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) |
specify how to build the Integration/IntegrationKits |
|
|
list of traits to be executed for all the Integration/IntegrationKits built from this IntegrationPlatform |
|
Deprecated: Use camel trait (camel.properties) to manage properties Use mount trait (mount.configs) to manage configs Use mount trait (mount.resources) to manage resources Use mount trait (mount.volumes) to manage volumes list of configuration properties to be attached to all the Integration/IntegrationKits built from this IntegrationPlatform |
|
configuration to be executed to all Kamelets controlled by this IntegrationPlatform |
IntegrationPlatformStatus
Appears on:
IntegrationPlatformStatus defines the observed state of IntegrationPlatform
Field | Description |
---|---|
|
(Members of |
|
ObservedGeneration is the most recent generation observed for this IntegrationPlatform. |
|
defines in what phase the IntegrationPlatform is found |
|
which are the conditions met (particularly useful when in ERROR phase) |
|
the Camel K operator version controlling this IntegrationPlatform |
|
generic information related to the build of Camel K operator software |
IntegrationSpec
Appears on:
IntegrationSpec specifies the configuration of an Integration. The Integration will be watched by the operator which will be in charge to run the related application, according to the configuration specified.
Field | Description |
---|---|
|
the number of |
|
the sources which contain the Camel routes to run |
|
a source in YAML DSL language which contain the routes to run |
|
the reference of the |
|
the list of Camel or Maven dependencies required by the Integration |
|
the profile needed to run this Integration |
|
the traits needed to run this Integration |
|
Pod template customization |
|
Deprecated: Use camel trait (camel.properties) to manage properties Use mount trait (mount.configs) to manage configs Use mount trait (mount.resources) to manage resources Use mount trait (mount.volumes) to manage volumes |
|
additional Maven repositories to be used |
|
custom SA to use for the Integration |
IntegrationStatus
Appears on:
IntegrationStatus defines the observed state of Integration
Field | Description |
---|---|
|
ObservedGeneration is the most recent generation observed for this Integration. |
|
the actual phase |
|
the digest calculated for this Integration |
|
the container image used |
|
a list of dependencies needed by the application |
|
the profile needed to run this Integration |
|
the reference of the |
|
The IntegrationPlatform watching this Integration |
|
a list of sources generated for this Integration |
|
the runtime version targeted for this Integration |
|
the runtime provider targeted for this Integration |
|
Deprecated: a list of configuration specification |
|
a list of events happened for the Integration |
|
the operator version |
|
the number of replicas |
|
label selector |
|
features offered by the Integration |
|
the timestamp representing the last time when this integration was initialized. |
KanikoTask
Appears on:
KanikoTask is used to configure Kaniko
Field | Description |
---|---|
|
(Members of |
|
(Members of |
|
log more information |
|
use a cache |
|
docker image to use |
KanikoTaskCache
Appears on:
KanikoTaskCache is used to configure Kaniko cache
Field | Description |
---|---|
|
true if a cache is enabled |
|
the PVC used to store the cache |
MavenArtifact
Appears on:
MavenArtifact defines a GAV (Group:Artifact:Version) Maven artifact
Field | Description |
---|---|
|
Maven Group |
|
Maven Artifact |
|
Maven Version |
MavenBuildSpec
Appears on:
MavenBuildSpec defines the Maven configuration plus additional repositories to use
Field | Description |
---|---|
|
(Members of base Maven specification |
|
additional repositories |
|
Servers (auth) |
MavenSpec
Appears on:
MavenSpec —
Field | Description |
---|---|
|
The path of the local Maven repository. |
|
The Maven properties. |
|
A reference to the ConfigMap or Secret key that contains the Maven settings. |
|
A reference to the ConfigMap or Secret key that contains the security of the Maven settings. |
|
The Secrets name and key, containing the CA certificate(s) used to connect to remote Maven repositories. It can contain X.509 certificates, and PKCS#7 formatted certificate chains. A JKS formatted keystore is automatically created to store the CA certificate(s), and configured to be used as a trusted certificate(s) by the Maven commands. Note that the root CA certificates are also imported into the created keystore. |
|
The Maven build extensions. See https://maven.apache.org/guides/mini/guide-using-extensions.html. |
|
The CLI options that are appended to the list of arguments for Maven commands,
e.g., |
PodSpec
Appears on:
PodSpec defines a group of Kubernetes resources
Field | Description |
---|---|
|
Volumes |
|
InitContainers |
|
Containers |
|
EphemeralContainers |
|
RestartPolicy |
|
TerminationGracePeriodSeconds |
|
ActiveDeadlineSeconds |
|
DNSPolicy |
|
NodeSelector |
|
TopologySpreadConstraints |
|
PodSecurityContext |
PodSpecTemplate
Appears on:
PodSpecTemplate represent a template used to deploy an Integration Pod
Field | Description |
---|---|
|
the specification |
PublishTask
Appears on:
PublishTask image publish configuration
Field | Description |
---|---|
|
can be useful to share info with other tasks |
|
base image layer |
|
final image name |
|
where to publish the final image |
RawMessage([]byte
alias)
Appears on:
RawMessage is a raw encoded JSON value. It implements Marshaler and Unmarshaler and can be used to delay JSON decoding or precompute a JSON encoding.
RegistrySpec
Appears on:
RegistrySpec provides the configuration for the container registry
Field | Description |
---|---|
|
if the container registry is insecure (ie, http only) |
|
the URI to access |
|
the secret where credentials are stored |
|
the configmap which stores the Certificate Authority |
|
the registry organization |
Repository
Appears on:
Repository defines a Maven repository
Field | Description |
---|---|
|
identifies the repository |
|
name of the repository |
|
location of the repository |
|
can use snapshot |
|
can use stable releases |
RepositoryPolicy
Appears on:
RepositoryPolicy defines the policy associated to a Maven repository
Field | Description |
---|---|
|
is the policy activated or not |
|
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: |
|
When Maven deploys files to the repository, it also deploys corresponding checksum files.
Your options are to |
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
Field | Description |
---|---|
|
(Members of the content of the resource |
|
the kind of data to expect |
|
the mount path on destination |
RuntimeSpec
Appears on:
RuntimeSpec represents the configuration for the Java runtime in charge to execute the Camel application
Field | Description |
---|---|
|
Camel K Runtime version |
|
Camel main application provider, ie, Camel Quarkus |
|
application entry point (main) to be executed |
|
list of dependencies needed to run the application |
|
set of metadata |
|
features offered by this runtime |
S2iTask
Appears on:
S2iTask is used to configure S2I
Field | Description |
---|---|
|
(Members of |
|
can be useful to share info with other tasks |
|
used by the ImageStream |
Server
Appears on:
Field | Description |
---|---|
|
|
|
|
|
|
|
|
|
SourceSpec
Appears on:
SourceSpec defines the configuration for one or more routes to be executed in a certain Camel DSL language
Field | Description |
---|---|
|
(Members of contains configuration related to the source code |
|
specify which is the language (Camel DSL) used to interpret this source code |
|
Loader is an optional id of the org.apache.camel.k.RoutesLoader that will interpret this source at runtime |
|
Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader uses to pre/post process sources |
|
Type defines the kind of source described by this object |
|
List of property names defined in the source (e.g. if type is "template") |
SpectrumTask
Appears on:
SpectrumTask is used to configure Spectrum
Field | Description |
---|---|
|
(Members of |
|
(Members of |
Task
Appears on:
Task represents the abstract task. Only one of the task should be configured to represent the specific task chosen.
Field | Description |
---|---|
|
a BuilderTask (base task) |
|
a BuildahTask, for Buildah strategy |
|
a KanikoTask, for Kaniko strategy |
|
a SpectrumTask, for Spectrum strategy |
|
a S2iTask, for S2I strategy |
TraitConfiguration
Appears on:
TraitConfiguration represents the expected configuration for a given trait parameter Deprecated: superceded by each Trait type, left for backward compatibility.
Field | Description |
---|---|
|
(Members of generic raw message, typically a map containing the keys (trait parameters) and the values (either single text or array) |
TraitProfile(string
alias)
Appears on:
TraitProfile represents lists of traits that are enabled for the specific installation/integration
TraitSpec
Appears on:
A TraitSpec contains the configuration of a trait Deprecated: superceded by each Trait type, left for backward compatibility.
Field | Description |
---|---|
|
TraitConfiguration parameters configuration |
Traits
Appears on:
Traits represents the collection of trait configurations
Field | Description |
---|---|
|
The configuration of Affinity trait |
|
The configuration of Builder trait |
|
The configuration of Camel trait |
|
The configuration of Container trait |
|
The configuration of Cron trait |
|
The configuration of Dependencies trait |
|
The configuration of Deployer trait |
|
The configuration of Deployment trait |
|
The configuration of Environment trait |
|
The configuration of Error Handler trait |
|
The configuration of GC trait |
|
The configuration of Health trait |
|
The configuration of Ingress trait |
|
The configuration of Istio trait |
|
The configuration of Jolokia trait |
|
The configuration of JVM trait |
|
The configuration of Kamelets trait |
|
The configuration of Knative trait |
|
The configuration of Knative Service trait |
|
The configuration of Logging trait |
|
The configuration of Mount trait |
|
The configuration of OpenAPI trait |
|
The configuration of Owner trait |
|
The configuration of PDB trait |
|
The configuration of Platform trait |
|
The configuration of Pod trait |
|
The configuration of Prometheus trait |
|
The configuration of Pull Secret trait |
|
The configuration of Quarkus trait |
|
The configuration of Registry trait |
|
The configuration of Route trait |
|
The configuration of Service trait |
|
The configuration of Service Binding trait |
|
The configuration of Toleration trait |
|
The extension point with addon traits |
|
Deprecated: for backward compatibility. |
|
Deprecated: for backward compatibility. |
|
Deprecated: for backward compatibility. |
|
Deprecated: for backward compatibility. |
|
Deprecated: for backward compatibility. |
ValueSource
Appears on:
ValueSource —
Field | Description |
---|---|
|
Selects a key of a ConfigMap. |
|
Selects a key of a secret. |
AffinityTrait
Appears on:
Allows constraining which nodes the integration pod(s) are eligible to be scheduled on, based on labels on the node, or with inter-pod affinity and anti-affinity, based on labels on pods that are already running on the nodes.
It’s disabled by default.
Field | Description |
---|---|
|
(Members of |
|
Always co-locates multiple replicas of the integration in the same node (default false). |
|
Never co-locates multiple replicas of the integration in the same node (default false). |
|
Defines a set of nodes the integration pod(s) are eligible to be scheduled on, based on labels on the node. |
|
Defines a set of pods (namely those matching the label selector, relative to the given namespace) that the integration pod(s) should be co-located with. |
|
Defines a set of pods (namely those matching the label selector, relative to the given namespace) that the integration pod(s) should not be co-located with. |
BuilderTrait
Appears on:
The builder trait is internally used to determine the best strategy to build and configure IntegrationKits.
Field | Description |
---|---|
|
(Members of |
|
Enable verbose logging on build components that support it (e.g. Kaniko build pod). |
|
A list of properties to be provided to the build task |
CamelTrait
Appears on:
The Camel trait can be used to configure versions of Apache Camel K runtime and related libraries, it cannot be disabled.
Field | Description |
---|---|
|
(Members of |
|
The camel-k-runtime version to use for the integration. It overrides the default version set in the Integration Platform. |
|
A list of properties to be provided to the Integration runtime |
Configuration
Appears on:
Deprecated: for backward compatibility.
Field | Description |
---|---|
|
(Members of |
ContainerTrait
Appears on:
The Container trait can be used to configure properties of the container where the integration will run.
It also provides configuration for Services associated to the container.
nolint: tagliatelle
Field | Description |
---|---|
|
(Members of |
|
To automatically enable the trait |
|
The minimum amount of CPU required. |
|
The minimum amount of memory required. |
|
The maximum amount of CPU required. |
|
The maximum amount of memory required. |
|
Can be used to enable/disable exposure via kubernetes Service. |
|
To configure a different port exposed by the container (default |
|
To configure a different port name for the port exposed by the container. It defaults to |
|
To configure under which service port the container port is to be exposed (default |
|
To configure under which service port name the container port is to be exposed (default |
|
The main container name. It’s named |
|
The main container image |
|
The pull policy: Always|Never|IfNotPresent |
CronTrait
Appears on:
The Cron trait can be used to customize the behaviour of periodic timer/cron based integrations.
While normally an integration requires a pod to be always up and running, some periodic tasks, such as batch jobs, require to be activated at specific hours of the day or with a periodic delay of minutes. For such tasks, the cron trait can materialize the integration as a Kubernetes CronJob instead of a standard deployment, in order to save resources when the integration does not need to be executed.
Integrations that start from the following components are evaluated by the cron trait: timer
, cron
, quartz
.
The rules for using a Kubernetes CronJob are the following:
- timer
: when periods can be written as cron expressions. E.g. timer:tick?period=60000
.
- cron
, quartz
: when the cron expression does not contain seconds (or the "seconds" part is set to 0). E.g.
cron:tab?schedule=0/2${plus}*{plus}*{plus}*{plus}?
or quartz:trigger?cron=0{plus}0/2{plus}*{plus}*{plus}*{plus}?
.
Field | Description |
---|---|
|
(Members of |
|
The CronJob schedule for the whole integration. If multiple routes are declared, they must have the same schedule for this mechanism to work correctly. |
|
A comma separated list of the Camel components that need to be customized in order for them to work when the schedule is triggered externally by Kubernetes.
A specific customizer is activated for each specified component. E.g. for the Supported components are currently: |
|
Use the default Camel implementation of the |
|
Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow": allows CronJobs to run concurrently; - "Forbid" (default): forbids concurrent runs, skipping next run if previous run hasn’t finished yet; - "Replace": cancels currently running job and replaces it with a new one |
|
Automatically deploy the integration as CronJob when all routes are
either starting from a periodic consumer (only It’s required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. |
|
Optional deadline in seconds for starting the job if it misses scheduled time for any reason. Missed jobs executions will be counted as failed ones. |
|
Specifies the duration in seconds, relative to the start time, that the job may be continuously active before it is considered to be failed. It defaults to 60s. |
|
Specifies the number of retries before marking the job failed. It defaults to 2. |
DependenciesTrait
Appears on:
The Dependencies trait is internally used to automatically add runtime dependencies based on the integration that the user wants to run.
Field | Description |
---|---|
|
(Members of |
DeployerTrait
Appears on:
The deployer trait is responsible for deploying the resources owned by the integration, and can be used to explicitly select the underlying controller that will manage the integration pods.
Field | Description |
---|---|
|
(Members of |
|
Allows to explicitly select the desired deployment kind between |
|
Use server-side apply to update the owned resources (default |
DeploymentTrait
Appears on:
The Deployment trait is responsible for generating the Kubernetes deployment that will make sure the integration will run in the cluster.
Field | Description |
---|---|
|
(Members of |
|
The maximum time in seconds for the deployment to make progress before it is considered to be failed. It defaults to 60s. |
The deployment strategy to use to replace existing pods with new ones. |
|
|
The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding down. This can not be 0 if MaxSurge is 0. Defaults to 25%. |
|
The maximum number of pods that can be scheduled above the desired number of pods. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up. Defaults to 25%. |
EnvironmentTrait
Appears on:
The environment trait is used internally to inject standard environment variables in the integration container,
such as NAMESPACE
, POD_NAME
and others.
Field | Description |
---|---|
|
(Members of |
|
Enables injection of |
|
Propagates the |
|
A list of environment variables to be added to the integration container.
The syntax is KEY=VALUE, e.g., |
ErrorHandlerTrait
Appears on:
The error-handler is a platform trait used to inject Error Handler source into the integration runtime.
Field | Description |
---|---|
|
(Members of |
|
The error handler ref name provided or found in application properties |
GCTrait
Appears on:
The GC Trait garbage-collects all resources that are no longer necessary upon integration updates.
Field | Description |
---|---|
|
(Members of |
|
Discovery client cache to be used, either |
HealthTrait
Appears on:
The health trait is responsible for configuring the health probes on the integration container.
It’s disabled by default.
Field | Description |
---|---|
|
(Members of |
|
Configures the liveness probe for the integration container (default |
|
Scheme to use when connecting to the liveness probe (default |
|
Number of seconds after the container has started before the liveness probe is initiated. |
|
Number of seconds after which the liveness probe times out. |
|
How often to perform the liveness probe. |
|
Minimum consecutive successes for the liveness probe to be considered successful after having failed. |
|
Minimum consecutive failures for the liveness probe to be considered failed after having succeeded. |
|
Configures the readiness probe for the integration container (default |
|
Scheme to use when connecting to the readiness probe (default |
|
Number of seconds after the container has started before the readiness probe is initiated. |
|
Number of seconds after which the readiness probe times out. |
|
How often to perform the readiness probe. |
|
Minimum consecutive successes for the readiness probe to be considered successful after having failed. |
|
Minimum consecutive failures for the readiness probe to be considered failed after having succeeded. |
IngressTrait
Appears on:
The Ingress trait can be used to expose the service associated with the integration to the outside world with a Kubernetes Ingress.
It’s enabled by default whenever a Service is added to the integration (through the service
trait).
Field | Description |
---|---|
|
(Members of |
|
To configure the host exposed by the ingress. |
|
To automatically add an ingress whenever the integration uses an HTTP endpoint consumer. |
IstioTrait
Appears on:
The Istio trait allows configuring properties related to the Istio service mesh, such as sidecar injection and outbound IP ranges.
Field | Description |
---|---|
|
(Members of |
|
Configures a (comma-separated) list of CIDR subnets that should not be intercepted by the Istio proxy ( |
|
Forces the value for labels |
JVMTrait
Appears on:
The JVM trait is used to configure the JVM that runs the integration.
Field | Description |
---|---|
|
(Members of |
|
Activates remote debugging, so that a debugger can be attached to the JVM, e.g., using port-forwarding |
|
Suspends the target JVM immediately before the main class is loaded |
|
Prints the command used the start the JVM in the container logs (default |
|
Transport address at which to listen for the newly launched JVM (default |
|
A list of JVM options |
|
Additional JVM classpath (use |
JolokiaTrait
Appears on:
The Jolokia trait activates and configures the Jolokia Java agent.
nolint: tagliatelle
Field | Description |
---|---|
|
(Members of |
|
The PEM encoded CA certification file path, used to verify client certificates,
applicable when |
|
The principal(s) which must be given in a client certificate to allow access to the Jolokia endpoint,
applicable when |
|
Listen for multicast requests (default |
|
Mandate the client certificate contains a client flag in the extended key usage section,
applicable when |
|
The Host address to which the Jolokia agent should bind to. If |
|
The password used for authentication, applicable when the |
|
The Jolokia endpoint port (default |
|
The protocol to use, either |
|
The user to be used for authentication |
|
Whether client certificates should be used for authentication (default |
|
A list of additional Jolokia options as defined in JVM agent configuration options |
KameletsTrait
Appears on:
The kamelets trait is a platform trait used to inject Kamelets into the integration runtime.
Field | Description |
---|---|
|
(Members of |
|
Automatically inject all referenced Kamelets and their default configuration (enabled by default) |
|
Comma separated list of Kamelet names to load into the current integration |
KnativeServiceTrait
Appears on:
The Knative Service trait allows configuring options when running the Integration as a Knative service, instead of a standard Kubernetes Deployment.
Running an Integration as a Knative Service enables auto-scaling (and scaling-to-zero), but those features are only relevant when the Camel route(s) use(s) an HTTP endpoint consumer.
Field | Description |
---|---|
|
(Members of |
|
Configures the Knative autoscaling class property (e.g. to set Refer to the Knative documentation for more information. |
|
Configures the Knative autoscaling metric property (e.g. to set Refer to the Knative documentation for more information. |
|
Sets the allowed concurrency level or CPU percentage (depending on the autoscaling metric) for each Pod. Refer to the Knative documentation for more information. |
|
The minimum number of Pods that should be running at any time for the integration. It’s zero by default, meaning that the integration is scaled down to zero when not used for a configured amount of time. Refer to the Knative documentation for more information. |
|
An upper bound for the number of Pods that can be running in parallel for the integration. Knative has its own cap value that depends on the installation. Refer to the Knative documentation for more information. |
|
Enables to gradually shift traffic to the latest Revision and sets the rollout duration.
It’s disabled by default and must be expressed as a Golang |
|
Setting Refer to the Knative documentation for more information. |
|
Automatically deploy the integration as Knative service when all conditions hold:
|
KnativeTrait
Appears on:
The Knative trait automatically discovers addresses of Knative resources and inject them into the running integration.
The full Knative configuration is injected in the CAMEL_KNATIVE_CONFIGURATION in JSON format. The Camel Knative component will then use the full configuration to configure the routes.
The trait is enabled by default when the Knative profile is active.
Field | Description |
---|---|
|
(Members of |
|
Can be used to inject a Knative complete configuration in JSON format. |
|
List of channels used as source of integration routes. Can contain simple channel names or full Camel URIs. |
|
List of channels used as destination of integration routes. Can contain simple channel names or full Camel URIs. |
|
List of channels used as source of integration routes. |
|
List of endpoints used as destination of integration routes. Can contain simple endpoint names or full Camel URIs. |
|
List of event types that the integration will be subscribed to. Can contain simple event types or full Camel URIs (to use a specific broker different from "default"). |
|
List of event types that the integration will produce. Can contain simple event types or full Camel URIs (to use a specific broker). |
|
Enables filtering on events based on the header "ce-knativehistory". Since this header has been removed in newer versions of Knative, filtering is disabled by default. |
|
Allows binding the integration to a sink via a Knative SinkBinding resource. This can be used when the integration targets a single sink. It’s enabled by default when the integration targets a single sink (except when the integration is owned by a Knative source). |
|
Enable automatic discovery of all trait properties. |
LoggingTrait
Appears on:
The Logging trait is used to configure Integration runtime logging options (such as color and format). The logging backend is provided by Quarkus, whose configuration is documented at https://quarkus.io/guides/logging.
Field | Description |
---|---|
|
(Members of |
|
Colorize the log output |
|
Logs message format |
|
Adjust the logging level (defaults to INFO) |
|
Output the logs in JSON |
|
Enable "pretty printing" of the JSON logs |
MountTrait
Appears on:
The Mount trait can be used to configure volumes mounted on the Integration Pods.
nolint: tagliatelle
Field | Description |
---|---|
|
(Members of |
|
A list of configuration pointing to configmap/secret. The configuration are expected to be UTF-8 resources as they are processed by runtime Camel Context and tried to be parsed as property files. They are also made available on the classpath in order to ease their usage directly from the Route. Syntax: [configmap|secret]:name[/key], where name represents the resource name and key optionally represents the resource key to be filtered |
|
A list of resources (text or binary content) pointing to configmap/secret. The resources are expected to be any resource type (text or binary content). The destination path can be either a default location or any path specified by the user. Syntax: [configmap|secret]:name[/key][@path], where name represents the resource name, key optionally represents the resource key to be filtered and path represents the destination path |
|
A list of Persistent Volume Claims to be mounted. Syntax: [pvcname:/container/path] |
OpenAPITrait
Appears on:
The OpenAPI DSL trait is internally used to allow creating integrations from a OpenAPI specs.
Field | Description |
---|---|
|
(Members of |
|
The configmaps holding the spec of the OpenAPI |
OwnerTrait
Appears on:
The Owner trait ensures that all created resources belong to the integration being created and transfers annotations and labels on the integration onto these owned resources.
Field | Description |
---|---|
|
(Members of |
|
The set of annotations to be transferred |
|
The set of labels to be transferred |
PDBTrait
Appears on:
The PDB trait allows to configure the PodDisruptionBudget resource for the Integration pods.
Field | Description |
---|---|
|
(Members of |
|
The number of pods for the Integration that must still be available after an eviction.
It can be either an absolute number or a percentage.
Only one of |
|
The number of pods for the Integration that can be unavailable after an eviction.
It can be either an absolute number or a percentage (default |
PlatformTrait
Appears on:
The platform trait is a base trait that is used to assign an integration platform to an integration.
In case the platform is missing, the trait is allowed to create a default platform. This feature is especially useful in contexts where there’s no need to provide a custom configuration for the platform (e.g. on OpenShift the default settings work, since there’s an embedded container image registry).
Field | Description |
---|---|
|
(Members of |
|
To create a default (empty) platform when the platform is missing. |
|
Indicates if the platform should be created globally in the case of global operator (default true). |
|
To automatically detect from the environment if a default platform can be created (it will be created on OpenShift only). |
PodTrait
Appears on:
The pod trait allows the customization of the Integration pods.
It applies the PodSpecTemplate
struct contained in the Integration .spec.podTemplate
field,
into the Integration deployment Pods template, using strategic merge patch.
This can be used to customize the container where Camel routes execute,
by using the integration
container name.
Field | Description |
---|---|
|
(Members of |
PrometheusTrait
Appears on:
The Prometheus trait configures a Prometheus-compatible endpoint. It also creates a PodMonitor
resource,
so that the endpoint can be scraped automatically, when using the Prometheus operator.
The metrics are exposed using MicroProfile Metrics.
The creation of the PodMonitor resource requires the Prometheus Operator
custom resource definition to be installed.
You can set pod-monitor to false for the Prometheus trait to work without the Prometheus Operator.
|
The Prometheus trait is disabled by default.
Field | Description |
---|---|
|
(Members of |
|
Whether a |
|
The |
PullSecretTrait
Appears on:
The Pull Secret trait sets a pull secret on the pod, to allow Kubernetes to retrieve the container image from an external registry.
The pull secret can be specified manually or, in case you’ve configured authentication for an external container registry
on the IntegrationPlatform
, the same secret is used to pull images.
It’s enabled by default whenever you configure authentication for an external container registry, so it assumes that external registries are private.
If your registry does not need authentication for pulling images, you can disable this trait.
Field | Description |
---|---|
|
(Members of |
|
The pull secret name to set on the Pod. If left empty this is automatically taken from the |
|
When using a global operator with a shared platform, this enables delegation of the |
|
Automatically configures the platform registry secret on the pod if it is of type |
QuarkusTrait
Appears on:
The Quarkus trait configures the Quarkus runtime.
It’s enabled by default.
Compiling to a native executable, i.e. when using package-type=native , is only supported
for kamelets, as well as YAML and XML integrations.
It also requires at least 4GiB of memory, so the Pod running the native build, that is either
the operator Pod, or the build Pod (depending on the build strategy configured for the platform),
must have enough memory available.
|
Field | Description |
---|---|
|
(Members of |
|
The Quarkus package types, either |
RegistryTrait
Appears on:
The Registry trait sets up Maven to use the Image registry as a Maven repository.
Field | Description |
---|---|
|
(Members of |
RouteTrait
Appears on:
The Route trait can be used to configure the creation of OpenShift routes for the integration.
The certificate and key contents may be sourced either from the local filesystem or in a OpenShift secret
object.
The user may use the parameters ending in -secret
(example: tls-certificate-secret
) to reference a certificate stored in a secret
.
Parameters ending in -secret
have higher priorities and in case the same route parameter is set, for example: tls-key-secret
and tls-key
,
then tls-key-secret
is used.
The recommended approach to set the key and certificates is to use secrets
to store their contents and use the
following parameters to reference them: tls-certificate-secret
, tls-key-secret
, tls-ca-certificate-secret
, tls-destination-ca-certificate-secret
See the examples section at the end of this page to see the setup options.
nolint: tagliatelle
Field | Description |
---|---|
|
(Members of |
|
To configure the host exposed by the route. |
|
The TLS termination type, like Refer to the OpenShift route documentation for additional information. |
|
The TLS certificate contents. Refer to the OpenShift route documentation for additional information. |
|
The secret name and key reference to the TLS certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". Refer to the OpenShift route documentation for additional information. |
|
The TLS certificate key contents. Refer to the OpenShift route documentation for additional information. |
|
The secret name and key reference to the TLS certificate key. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". Refer to the OpenShift route documentation for additional information. |
|
The TLS CA certificate contents. Refer to the OpenShift route documentation for additional information. |
|
The secret name and key reference to the TLS CA certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". Refer to the OpenShift route documentation for additional information. |
|
The destination CA certificate provides the contents of the ca certificate of the final destination. When using reencrypt termination this file should be provided in order to have routers use it for health checks on the secure connection. If this field is not specified, the router may provide its own destination CA and perform hostname validation using the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically verify. Refer to the OpenShift route documentation for additional information. |
|
The secret name and key reference to the destination CA certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". Refer to the OpenShift route documentation for additional information. |
|
To configure how to deal with insecure traffic, e.g. Refer to the OpenShift route documentation for additional information. |
ServiceBindingTrait
Appears on:
The Service Binding trait allows users to connect to Services in Kubernetes: https://github.com/k8s-service-bindings/spec#service-binding As the specification is still evolving this is subject to change.
Field | Description |
---|---|
|
(Members of |
|
List of Services in the form [[apigroup/]version:]kind:[namespace/]name |
ServiceTrait
Appears on:
The Service trait exposes the integration with a Service resource so that it can be accessed by other applications (or integrations) in the same namespace.
It’s enabled by default if the integration depends on a Camel component that can expose a HTTP endpoint.
Field | Description |
---|---|
|
(Members of |
|
To automatically detect from the code if a Service needs to be created. |
|
Enable Service to be exposed as NodePort (default |
|
The type of service to be used, either 'ClusterIP', 'NodePort' or 'LoadBalancer'. |
TolerationTrait
Appears on:
This trait sets Tolerations over Integration pods. Tolerations allow (but do not require) the pods to schedule onto nodes with matching taints. See https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ for more details.
The toleration should be expressed in a similar manner that of taints, i.e., Key[=Value]:Effect[:Seconds]
, where values in square brackets are optional.
For examples:
-
node-role.kubernetes.io/master:NoSchedule
-
node.kubernetes.io/network-unavailable:NoExecute:3000
-
disktype=ssd:PreferNoSchedule
It’s disabled by default.
Field | Description |
---|---|
|
(Members of |
|
The list of taints to tolerate, in the form |
Trait
Appears on:
Base type for all traits.
Field | Description |
---|---|
|
Can be used to enable or disable a trait. All traits share this common property. |
|
Legacy trait configuration parameters. Deprecated: for backward compatibility. |