pkg/resources/config/crd/bases/camel.apache.org_integrationplatforms.yaml (4,384 lines of code) (raw):
# ---------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ---------------------------------------------------------------------------
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.2
name: integrationplatforms.camel.apache.org
spec:
group: camel.apache.org
names:
categories:
- kamel
- camel
kind: IntegrationPlatform
listKind: IntegrationPlatformList
plural: integrationplatforms
shortNames:
- itp
singular: integrationplatform
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: The integration platform phase
jsonPath: .status.phase
name: Phase
type: string
- description: The default build strategy
jsonPath: .status.build.buildConfiguration.strategy
name: Build strategy
type: string
- description: The default publish strategy
jsonPath: .status.build.publishStrategy
name: Publish strategy
type: string
- description: The container registry address
jsonPath: .status.build.registry.address
name: Registry address
type: string
- description: The default runtime version
jsonPath: .status.build.runtimeVersion
name: Default runtime
type: string
- description: The default Camel core version
jsonPath: .status.build.runtimeCoreVersion
name: Camel version
type: string
name: v1
schema:
openAPIV3Schema:
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 of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: IntegrationPlatformSpec defines the desired state of IntegrationPlatform.
properties:
build:
description: specify how to build the Integration/IntegrationKits
properties:
PublishStrategyOptions:
additionalProperties:
type: string
description: 'Deprecated: no longer in use'
type: object
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 software
type: string
buildCatalogToolTimeout:
description: |-
the timeout (in seconds) to use when creating the build tools container image
Deprecated: no longer in use
type: string
buildConfiguration:
description: the configuration required to build an Integration
container image
properties:
annotations:
additionalProperties:
type: string
description: Annotation to use for the builder pod. Only used
for `pod` strategy
type: object
limitCPU:
description: The maximum amount of CPU required. Only used
for `pod` strategy
type: string
limitMemory:
description: The maximum amount of memory required. Only used
for `pod` strategy
type: string
nodeSelector:
additionalProperties:
type: string
description: The node selector for the builder pod. Only used
for `pod` strategy
type: object
operatorNamespace:
description: The namespace where to run the builder Pod (must
be the same of the operator in charge of this Build reconciliation).
type: string
orderStrategy:
description: the build order strategy to adopt
enum:
- dependencies
- fifo
- sequential
type: string
platforms:
description: The list of platforms used in order to build
a container image.
items:
type: string
type: array
requestCPU:
description: The minimum amount of CPU required. Only used
for `pod` strategy
type: string
requestMemory:
description: The minimum amount of memory required. Only used
for `pod` strategy
type: string
strategy:
description: the strategy to adopt
enum:
- routine
- pod
type: string
toolImage:
description: The container image to be used to run the build.
type: string
type: object
maven:
description: Maven configuration used to build the Camel/Camel-Quarkus
applications
properties:
caSecrets:
description: |-
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.
items:
description: SecretKeySelector selects a key of a Secret.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: array
cliOptions:
description: |-
The CLI options that are appended to the list of arguments for Maven commands,
e.g., `-V,--no-transfer-progress,-Dstyle.color=never`.
See https://maven.apache.org/ref/3.8.4/maven-embedder/cli.html.
items:
type: string
type: array
extension:
description: |-
The Maven build extensions.
See https://maven.apache.org/guides/mini/guide-using-extensions.html.
items:
description: MavenArtifact defines a GAV (Group:Artifact:Type:Version:Classifier)
Maven artifact.
properties:
artifactId:
description: Maven Artifact
type: string
classifier:
description: Maven Classifier
type: string
groupId:
description: Maven Group
type: string
type:
description: Maven Type
type: string
version:
description: Maven Version
type: string
required:
- artifactId
- groupId
type: object
type: array
localRepository:
description: The path of the local Maven repository.
type: string
profiles:
description: |-
A reference to the ConfigMap or Secret key that contains
the Maven profile.
items:
description: ValueSource --.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
type: array
properties:
additionalProperties:
type: string
description: The Maven properties.
type: object
settings:
description: |-
A reference to the ConfigMap or Secret key that contains
the Maven settings.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
settingsSecurity:
description: |-
A reference to the ConfigMap or Secret key that contains
the security of the Maven settings.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
type: object
maxRunningBuilds:
description: the maximum amount of parallel running pipelines
started by this operator instance
format: int32
type: integer
publishStrategy:
description: the strategy to adopt for publishing an Integration
container image
type: string
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
runtimeCoreVersion:
description: the Camel core version used by this IntegrationPlatform
type: string
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 pipeline
process
type: string
type: object
cluster:
description: what kind of cluster you're running (ie, plain Kubernetes
or OpenShift)
type: string
configuration:
description: |-
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
items:
description: ConfigurationSpec represents a generic configuration
specification.
properties:
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
- value
type: object
type: array
kamelet:
description: configuration to be executed to all Kamelets controlled
by this IntegrationPlatform
properties:
repositories:
description: remote repository used to retrieve Kamelet catalog
items:
description: KameletRepositorySpec 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: |-
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
traits:
description: list of traits to be executed for all the Integration/IntegrationKits
built from this IntegrationPlatform
properties:
3scale:
description: 'Deprecated: for backward compatibility.'
properties:
configuration:
description: TraitConfiguration parameters configuration
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- configuration
type: object
addons:
additionalProperties:
description: AddonTrait represents the configuration of an addon
trait.
type: object
x-kubernetes-preserve-unknown-fields: true
description: The extension point with addon traits
type: object
affinity:
description: The configuration of Affinity trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
nodeAffinityLabels:
description: Defines a set of nodes the integration pod(s)
are eligible to be scheduled on, based on labels on the
node.
items:
type: string
type: array
podAffinity:
description: Always co-locates multiple replicas of the integration
in the same node (default `false`).
type: boolean
podAffinityLabels:
description: |-
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.
items:
type: string
type: array
podAntiAffinity:
description: Never co-locates multiple replicas of the integration
in the same node (default `false`).
type: boolean
podAntiAffinityLabels:
description: |-
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.
items:
type: string
type: array
type: object
builder:
description: The configuration of Builder trait
properties:
annotations:
additionalProperties:
type: string
description: When using `pod` strategy, annotation to use
for the builder pod.
type: object
baseImage:
description: |-
Specify a base image. In order to have the application working properly it must be a container image which has a Java JDK
installed and ready to use on path (ie `/usr/bin/java`).
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
incrementalImageBuild:
description: Use the incremental image build option, to reuse
existing containers (default `true`)
type: boolean
limitCPU:
description: |-
When using `pod` strategy, the maximum amount of CPU required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
type: string
limitMemory:
description: |-
When using `pod` strategy, the maximum amount of memory required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
type: string
mavenProfiles:
description: |-
A list of references pointing to configmaps/secrets that contains a maven profile.
This configmap/secret is a resource of the IntegrationKit created, therefore it needs to be present in the namespace where the operator is going to create the IntegrationKit.
The content of the maven profile is expected to be a text containing a valid maven profile starting with `<profile>` and ending with `</profile>` that will be integrated as an inline profile in the POM.
Syntax: [configmap|secret]:name[/key], where name represents the resource name, key optionally represents the resource key to be filtered (default key value = profile.xml).
items:
type: string
type: array
nodeSelector:
additionalProperties:
type: string
description: Defines a set of nodes the builder pod is eligible
to be scheduled on, based on labels on the node.
type: object
orderStrategy:
description: The build order strategy to use, either `dependencies`,
`fifo` or `sequential` (default is the platform default)
enum:
- dependencies
- fifo
- sequential
type: string
platforms:
description: The list of manifest platforms to use to build
a container image (default `linux/amd64`).
items:
type: string
type: array
properties:
description: A list of properties to be provided to the build
task
items:
type: string
type: array
requestCPU:
description: |-
When using `pod` strategy, the minimum amount of CPU required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
type: string
requestMemory:
description: |-
When using `pod` strategy, the minimum amount of memory required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
type: string
strategy:
description: The strategy to use, either `pod` or `routine`
(default `routine`)
enum:
- pod
- routine
type: string
tasks:
description: A list of tasks to be executed (available only
when using `pod` strategy) with format `<name>;<container-image>;<container-command>`.
items:
type: string
type: array
tasksFilter:
description: |-
A list of tasks sorted by the order of execution in a csv format, ie, `<taskName1>,<taskName2>,...`.
Mind that you must include also the operator tasks (`builder`, `quarkus-native`, `package`, `jib`, `s2i`)
if you need to execute them. Useful only with `pod` strategy.
type: string
tasksLimitCPU:
description: A list of limit cpu configuration for the specific
task with format `<task-name>:<limit-cpu-conf>`.
items:
type: string
type: array
tasksLimitMemory:
description: A list of limit memory configuration for the
specific task with format `<task-name>:<limit-memory-conf>`.
items:
type: string
type: array
tasksRequestCPU:
description: A list of request cpu configuration for the specific
task with format `<task-name>:<request-cpu-conf>`.
items:
type: string
type: array
tasksRequestMemory:
description: A list of request memory configuration for the
specific task with format `<task-name>:<request-memory-conf>`.
items:
type: string
type: array
verbose:
description: |-
Enable verbose logging on build components that support it (e.g. Kaniko build pod).
Deprecated no longer in use
type: boolean
type: object
camel:
description: The configuration of Camel trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
properties:
description: A list of properties to be provided to the Integration
runtime
items:
type: string
type: array
runtimeProvider:
description: The runtime provider to use for the integration.
(Default, Camel K Runtime).
enum:
- quarkus
- plain-quarkus
type: string
runtimeVersion:
description: |-
The runtime version to use for the integration. It overrides the default version set in the Integration Platform.
You can use a fixed version (for example "3.2.3") or a semantic version (for example "3.x") which will try to resolve
to the best matching Catalog existing on the cluster (Default, the one provided by the operator version).
type: string
type: object
container:
description: The configuration of Container trait
properties:
allowPrivilegeEscalation:
description: Security Context AllowPrivilegeEscalation configuration
(default false).
type: boolean
auto:
description: To automatically enable the trait
type: boolean
capabilitiesAdd:
description: Security Context Capabilities Add configuration
(default none).
items:
description: Capability represent POSIX capabilities type
type: string
type: array
capabilitiesDrop:
description: Security Context Capabilities Drop configuration
(default ALL).
items:
description: Capability represent POSIX capabilities type
type: string
type: array
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
expose:
description: Can be used to enable/disable exposure via kubernetes
Service.
type: boolean
image:
description: |-
The main container image to use for the Integration. When using this parameter the operator will create a synthetic IntegrationKit which
won't be able to execute traits requiring CamelCatalog. If the container image you're using is coming from an IntegrationKit, use instead
Integration `.spec.integrationKit` parameter. If you're moving the Integration across environments, you will also need to create an "external" IntegrationKit.
type: string
imagePullPolicy:
description: 'The pull policy: Always|Never|IfNotPresent'
enum:
- Always
- Never
- IfNotPresent
type: string
limitCPU:
description: The maximum amount of CPU to be provided (default
500 millicores).
type: string
limitMemory:
description: The maximum amount of memory to be provided (default
512 Mi).
type: string
name:
description: The main container name. It's named `integration`
by default.
type: string
port:
description: To configure a different port exposed by the
container (default `8080`).
format: int32
type: integer
portName:
description: To configure a different port name for the port
exposed by the container. It defaults to `http` only when
the `expose` parameter is true.
type: string
requestCPU:
description: The minimum amount of CPU required (default 125
millicores).
type: string
requestMemory:
description: The minimum amount of memory required (default
128 Mi).
type: string
runAsNonRoot:
description: Security Context RunAsNonRoot configuration (default
false).
type: boolean
runAsUser:
description: 'Security Context RunAsUser configuration (default
none): this value is automatically retrieved in Openshift
clusters when not explicitly set.'
format: int64
type: integer
seccompProfileType:
description: Security Context SeccompProfileType configuration
(default RuntimeDefault).
enum:
- Unconfined
- RuntimeDefault
type: string
servicePort:
description: To configure under which service port the container
port is to be exposed (default `80`).
format: int32
type: integer
servicePortName:
description: To configure under which service port name the
container port is to be exposed (default `http`).
type: string
type: object
cron:
description: The configuration of Cron trait
properties:
activeDeadlineSeconds:
description: |-
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.
format: int64
type: integer
auto:
description: |-
Automatically deploy the integration as CronJob when all routes are
either starting from a periodic consumer (only `cron`, `timer` and `quartz` are supported) or a passive consumer (e.g. `direct` is a passive consumer).
It's required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`,
while `35m` or `50s` cannot).
type: boolean
backoffLimit:
description: |-
Specifies the number of retries before marking the job failed.
It defaults to 2.
format: int32
type: integer
components:
description: |-
A comma separated list of the Camel components that need to be customized in order for them to work when the schedule is triggered externally by Kubernetes.
Supported components are currently: `cron`, `timer` and `quartz`.
type: string
concurrencyPolicy:
description: |-
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
enum:
- Allow
- Forbid
- Replace
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
fallback:
description: |-
Use the default Camel implementation of the `cron` endpoint (`quartz`) instead of trying to materialize the integration
as Kubernetes CronJob.
type: boolean
schedule:
description: |-
The CronJob schedule for the whole integration. If multiple routes are declared, they must have the same schedule for this
mechanism to work correctly.
type: string
startingDeadlineSeconds:
description: |-
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.
format: int64
type: integer
timeZone:
description: The timezone that the CronJob will run on
type: string
type: object
dependencies:
description: The configuration of Dependencies trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
type: object
deployer:
description: The configuration of Deployer trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
kind:
description: Allows to explicitly select the desired deployment
kind between `deployment`, `cron-job` or `knative-service`
when creating the resources for running the integration.
enum:
- deployment
- cron-job
- knative-service
type: string
useSSA:
description: |-
Deprecated: won't be able to enforce client side update in the future.
Use server-side apply to update the owned resources (default `true`).
Note that it automatically falls back to client-side patching, if SSA is not available, e.g., on old Kubernetes clusters.
type: boolean
type: object
deployment:
description: The configuration of Deployment trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
progressDeadlineSeconds:
description: |-
The maximum time in seconds for the deployment to make progress before it
is considered to be failed. It defaults to `60s`.
format: int32
type: integer
rollingUpdateMaxSurge:
anyOf:
- type: integer
- type: string
description: |-
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%`.
x-kubernetes-int-or-string: true
rollingUpdateMaxUnavailable:
anyOf:
- type: integer
- type: string
description: |-
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%`.
x-kubernetes-int-or-string: true
strategy:
description: The deployment strategy to use to replace existing
pods with new ones.
enum:
- Recreate
- RollingUpdate
type: string
type: object
environment:
description: The configuration of Environment trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
containerMeta:
description: Enables injection of `NAMESPACE` and `POD_NAME`
environment variables (default `true`)
type: boolean
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
httpProxy:
description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and
`NO_PROXY` environment variables (default `true`)
type: boolean
vars:
description: |-
A list of environment variables to be added to the integration container.
The syntax is either VAR=VALUE or VAR=[configmap|secret]:name/key, where name represents the resource name,
and key represents the resource key to be mapped as and environment variable.
These take precedence over any previously defined environment variables.
items:
type: string
type: array
type: object
error-handler:
description: |-
The configuration of Error Handler trait
Deprecated: no longer in use.
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
ref:
description: The error handler ref name provided or found
in application properties
type: string
type: object
gc:
description: The configuration of GC trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
discoveryCache:
description: |-
Discovery client cache to be used, either `disabled`, `disk` or `memory` (default `memory`).
Deprecated: no longer in use.
enum:
- disabled
- disk
- memory
type: string
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
type: object
health:
description: The configuration of Health trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
livenessFailureThreshold:
description: Minimum consecutive failures for the liveness
probe to be considered failed after having succeeded.
format: int32
type: integer
livenessInitialDelay:
description: Number of seconds after the container has started
before the liveness probe is initiated.
format: int32
type: integer
livenessPeriod:
description: How often to perform the liveness probe.
format: int32
type: integer
livenessProbe:
description: The liveness probe path to use (default provided
by the Catalog runtime used).
type: string
livenessProbeEnabled:
description: Configures the liveness probe for the integration
container (default `false`).
type: boolean
livenessScheme:
description: Scheme to use when connecting to the liveness
probe (default `HTTP`).
type: string
livenessSuccessThreshold:
description: Minimum consecutive successes for the liveness
probe to be considered successful after having failed.
format: int32
type: integer
livenessTimeout:
description: Number of seconds after which the liveness probe
times out.
format: int32
type: integer
readinessFailureThreshold:
description: Minimum consecutive failures for the readiness
probe to be considered failed after having succeeded.
format: int32
type: integer
readinessInitialDelay:
description: Number of seconds after the container has started
before the readiness probe is initiated.
format: int32
type: integer
readinessPeriod:
description: How often to perform the readiness probe.
format: int32
type: integer
readinessProbe:
description: The readiness probe path to use (default provided
by the Catalog runtime used).
type: string
readinessProbeEnabled:
description: Configures the readiness probe for the integration
container (default `true`).
type: boolean
readinessScheme:
description: Scheme to use when connecting to the readiness
probe (default `HTTP`).
type: string
readinessSuccessThreshold:
description: Minimum consecutive successes for the readiness
probe to be considered successful after having failed.
format: int32
type: integer
readinessTimeout:
description: Number of seconds after which the readiness probe
times out.
format: int32
type: integer
startupFailureThreshold:
description: Minimum consecutive failures for the startup
probe to be considered failed after having succeeded.
format: int32
type: integer
startupInitialDelay:
description: Number of seconds after the container has started
before the startup probe is initiated.
format: int32
type: integer
startupPeriod:
description: How often to perform the startup probe.
format: int32
type: integer
startupProbe:
description: The startup probe path to use (default provided
by the Catalog runtime used).
type: string
startupProbeEnabled:
description: Configures the startup probe for the integration
container (default `false`).
type: boolean
startupScheme:
description: Scheme to use when connecting to the startup
probe (default `HTTP`).
type: string
startupSuccessThreshold:
description: Minimum consecutive successes for the startup
probe to be considered successful after having failed.
format: int32
type: integer
startupTimeout:
description: Number of seconds after which the startup probe
times out.
format: int32
type: integer
type: object
ingress:
description: The configuration of Ingress trait
properties:
annotations:
additionalProperties:
type: string
description: |-
The annotations added to the ingress.
This can be used to set controller specific annotations, e.g., when using the NGINX Ingress controller:
See https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
type: object
auto:
description: To automatically add an ingress whenever the
integration uses an HTTP endpoint consumer.
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
host:
description: To configure the host exposed by the ingress.
type: string
ingressClassName:
description: |-
The Ingress class name as defined by the Ingress spec
See https://kubernetes.io/docs/concepts/services-networking/ingress/
type: string
path:
description: |-
To configure the path exposed by the ingress (default `/`).
Deprecated: In favor of `paths` - left for backward compatibility.
type: string
pathType:
description: |-
To configure the path type exposed by the ingress.
One of `Exact`, `Prefix`, `ImplementationSpecific` (default to `Prefix`).
enum:
- Exact
- Prefix
- ImplementationSpecific
type: string
paths:
description: To configure the paths exposed by the ingress
(default `['/']`).
items:
type: string
type: array
tlsHosts:
description: To configure tls hosts
items:
type: string
type: array
tlsSecretName:
description: To configure tls secret name
type: string
type: object
istio:
description: The configuration of Istio trait
properties:
allow:
description: Configures a (comma-separated) list of CIDR subnets
that should not be intercepted by the Istio proxy (`10.0.0.0/8,172.16.0.0/12,192.168.0.0/16`
by default).
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
inject:
description: Forces the value for labels `sidecar.istio.io/inject`.
By default the label is set to `true` on deployment and
not set on Knative Service.
type: boolean
type: object
jolokia:
description: The configuration of Jolokia trait
properties:
CACert:
description: |-
The PEM encoded CA certification file path, used to verify client certificates,
applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true`
(default `/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt` for OpenShift).
type: string
clientPrincipal:
description: |-
The principal(s) which must be given in a client certificate to allow access to the Jolokia endpoint,
applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true`
(default `clientPrincipal=cn=system:master-proxy`, `cn=hawtio-online.hawtio.svc` and `cn=fuse-console.fuse.svc` for OpenShift).
items:
type: string
type: array
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
discoveryEnabled:
description: Listen for multicast requests (default `false`)
type: boolean
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
extendedClientCheck:
description: |-
Mandate the client certificate contains a client flag in the extended key usage section,
applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true`
(default `true` for OpenShift).
type: boolean
host:
description: |-
The Host address to which the Jolokia agent should bind to. If `"\*"` or `"0.0.0.0"` is given,
the servers binds to every network interface (default `"*"`).
type: string
options:
description: |-
A list of additional Jolokia options as defined
in https://jolokia.org/reference/html/agents.html#agent-jvm-config[JVM agent configuration options]
items:
type: string
type: array
password:
description: The password used for authentication, applicable
when the `user` option is set.
type: string
port:
description: The Jolokia endpoint port (default `8778`).
format: int32
type: integer
protocol:
description: The protocol to use, either `http` or `https`
(default `https` for OpenShift)
type: string
useSSLClientAuthentication:
description: Whether client certificates should be used for
authentication (default `true` for OpenShift).
type: boolean
user:
description: The user to be used for authentication
type: string
type: object
jvm:
description: The configuration of JVM trait
properties:
classpath:
description: Additional JVM classpath (use `Linux` classpath
separator)
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
debug:
description: Activates remote debugging, so that a debugger
can be attached to the JVM, e.g., using port-forwarding
type: boolean
debugAddress:
description: Transport address at which to listen for the
newly launched JVM (default `*:5005`)
type: string
debugSuspend:
description: Suspends the target JVM immediately before the
main class is loaded
type: boolean
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
jar:
description: The Jar dependency which will run the application.
Leave it empty for managed Integrations.
type: string
options:
description: A list of JVM options
items:
type: string
type: array
printCommand:
description: |-
Prints the command used the start the JVM in the container logs (default `true`)
Deprecated: no longer in use.
type: boolean
type: object
kamelets:
description: The configuration of Kamelets trait
properties:
auto:
description: Automatically inject all referenced Kamelets
and their default configuration (enabled by default)
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
list:
description: Comma separated list of Kamelet names to load
into the current integration
type: string
mountPoint:
description: The directory where the application mounts and
reads Kamelet spec (default `/etc/camel/kamelets`)
type: string
type: object
keda:
description: 'Deprecated: for backward compatibility.'
properties:
configuration:
description: TraitConfiguration parameters configuration
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- configuration
type: object
knative:
description: The configuration of Knative trait
properties:
auto:
description: Enable automatic discovery of all trait properties.
type: boolean
channelSinks:
description: |-
List of channels used as destination of integration routes.
Can contain simple channel names or full Camel URIs.
items:
type: string
type: array
channelSources:
description: |-
List of channels used as source of integration routes.
Can contain simple channel names or full Camel URIs.
items:
type: string
type: array
config:
description: Can be used to inject a Knative complete configuration
in JSON format.
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
endpointSinks:
description: |-
List of endpoints used as destination of integration routes.
Can contain simple endpoint names or full Camel URIs.
items:
type: string
type: array
endpointSources:
description: List of channels used as source of integration
routes.
items:
type: string
type: array
eventSinks:
description: |-
List of event types that the integration will produce.
Can contain simple event types or full Camel URIs (to use a specific broker).
items:
type: string
type: array
eventSources:
description: |-
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").
items:
type: string
type: array
filterEventType:
description: |-
Enables the default filtering for the Knative trigger using the event type
If this is true, the created Knative trigger uses the event type as a filter on the event stream when no other filter criteria is given. (default: true)
type: boolean
filterSourceChannels:
description: |-
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.
type: boolean
filters:
description: |-
Sets filter attributes on the event stream (such as event type, source, subject and so on).
A list of key-value pairs that represent filter attributes and its values.
The syntax is KEY=VALUE, e.g., `source="my.source"`.
Filter attributes get set on the Knative trigger that is being created as part of this integration.
items:
type: string
type: array
namespaceLabel:
description: |-
Enables the camel-k-operator to set the "bindings.knative.dev/include=true" label to the namespace
As Knative requires this label to perform injection of K_SINK URL into the service.
If this is false, the integration pod may start and fail, read the SinkBinding Knative documentation. (default: true)
type: boolean
sinkBinding:
description: |-
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).
type: boolean
type: object
knative-service:
description: The configuration of Knative Service trait
properties:
annotations:
additionalProperties:
type: string
description: |-
The annotations added to route.
This can be used to set knative service specific annotations
CLI usage example: -t "knative-service.annotations.'haproxy.router.openshift.io/balance'=true"
type: object
auto:
description: |-
Automatically deploy the integration as Knative service when all conditions hold:
* Integration is using the Knative profile
* All routes are either starting from an HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer)
type: boolean
autoscalingMetric:
description: |-
Configures the Knative autoscaling metric property (e.g. to set `concurrency` based or `cpu` based autoscaling).
Refer to the Knative documentation for more information.
type: string
autoscalingTarget:
description: |-
Sets the allowed concurrency level or CPU percentage (depending on the autoscaling metric) for each Pod.
Refer to the Knative documentation for more information.
type: integer
class:
description: |-
Configures the Knative autoscaling class property (e.g. to set `hpa.autoscaling.knative.dev` or `kpa.autoscaling.knative.dev` autoscaling).
Refer to the Knative documentation for more information.
enum:
- kpa.autoscaling.knative.dev
- hpa.autoscaling.knative.dev
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
maxScale:
description: |-
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.
type: integer
minScale:
description: |-
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.
type: integer
rolloutDuration:
description: |-
Enables to gradually shift traffic to the latest Revision and sets the rollout duration.
It's disabled by default and must be expressed as a Golang `time.Duration` string representation,
rounded to a second precision.
type: string
timeoutSeconds:
description: |-
The maximum duration in seconds that the request instance is allowed to respond to a request.
This field propagates to the integration pod's terminationGracePeriodSeconds
Refer to the Knative documentation for more information.
format: int64
type: integer
visibility:
description: |-
Setting `cluster-local`, Knative service becomes a private service.
Specifically, this option applies the `networking.knative.dev/visibility` label to Knative service.
Refer to the Knative documentation for more information.
enum:
- cluster-local
type: string
type: object
logging:
description: The configuration of Logging trait
properties:
color:
description: Colorize the log output
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
format:
description: Logs message format
type: string
json:
description: Output the logs in JSON
type: boolean
jsonPrettyPrint:
description: Enable "pretty printing" of the JSON logs
type: boolean
level:
description: Adjust the logging level (defaults to `INFO`)
enum:
- FATAL
- WARN
- INFO
- DEBUG
- TRACE
type: string
type: object
master:
description: The configuration of Master trait
properties:
auto:
description: Enables automatic configuration of the trait.
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
includeDelegateDependencies:
description: |-
When this flag is active, the operator analyzes the source code to add dependencies required by delegate endpoints.
E.g. when using `master:lockname:timer`, then `camel:timer` is automatically added to the set of dependencies.
It's enabled by default.
type: boolean
labelKey:
description: Label that will be used to identify all pods
contending the lock. Defaults to "camel.apache.org/integration".
type: string
labelValue:
description: Label value that will be used to identify all
pods contending the lock. Defaults to the integration name.
type: string
resourceName:
description: |-
Name of the configmap that will be used to store the lock. Defaults to "<integration-name>-lock".
Name of the configmap/lease resource that will be used to store the lock. Defaults to "<integration-name>-lock".
type: string
resourceType:
description: Type of Kubernetes resource to use for locking
("ConfigMap" or "Lease"). Defaults to "Lease".
type: string
type: object
mount:
description: The configuration of Mount trait
properties:
configs:
description: |-
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
items:
type: string
type: array
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
emptyDirs:
description: |-
A list of EmptyDir volumes to be mounted. An optional size limit may be configured (default 500Mi).
Syntax: name:/container/path[:sizeLimit]
items:
type: string
type: array
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
hotReload:
description: |-
Enable "hot reload" when a secret/configmap mounted is edited (default `false`). The configmap/secret must be
marked with `camel.apache.org/integration` label to be taken in account. The resource will be watched for any kind change, also for
changes in metadata.
type: boolean
resources:
description: |-
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
items:
type: string
type: array
scanKameletsImplicitLabelSecrets:
description: 'Deprecated: no longer available since version
2.5.'
type: boolean
volumes:
description: |-
A list of Persistent Volume Claims to be mounted. Syntax: [pvcname:/container/path]. If the PVC is not found, the Integration fails.
You can use the syntax [pvcname:/container/path:size:accessMode<:storageClass>] to create a dynamic PVC based on the Storage Class provided
or the default cluster Storage Class. However, if the PVC exists, the operator would mount it.
items:
type: string
type: array
type: object
openapi:
description: The configuration of OpenAPI trait
properties:
configmaps:
description: The configmaps holding the spec of the OpenAPI
(compatible with > 3.0 spec only).
items:
type: string
type: array
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
type: object
owner:
description: The configuration of Owner trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
targetAnnotations:
description: The set of annotations to be transferred
items:
type: string
type: array
targetLabels:
description: The set of labels to be transferred
items:
type: string
type: array
type: object
pdb:
description: The configuration of PDB trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
maxUnavailable:
description: |-
The number of pods for the Integration that can be unavailable after an eviction.
It can be either an absolute number or a percentage (default `1` if `min-available` is also not set).
Only one of `max-unavailable` and `min-available` can be specified.
type: string
minAvailable:
description: |-
The number of pods for the Integration that must still be available after an eviction.
It can be either an absolute number or a percentage.
Only one of `min-available` and `max-unavailable` can be specified.
type: string
type: object
platform:
description: The configuration of Platform trait
properties:
auto:
description: |-
To automatically detect from the environment if a default platform can be created (it will be created on OpenShift or when a registry address is set).
Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
createDefault:
description: |-
To create a default (empty) platform when the platform is missing.
Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility
type: boolean
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
global:
description: |-
Indicates if the platform should be created globally in the case of global operator (default true).
Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility
type: boolean
type: object
pod:
description: The configuration of Pod trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
type: object
prometheus:
description: The configuration of Prometheus trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
podMonitor:
description: Whether a `PodMonitor` resource is created (default
`true`).
type: boolean
podMonitorLabels:
description: The `PodMonitor` resource labels, applicable
when `pod-monitor` is `true`.
items:
type: string
type: array
type: object
pull-secret:
description: The configuration of Pull Secret trait
properties:
auto:
description: Automatically configures the platform registry
secret on the pod if it is of type `kubernetes.io/dockerconfigjson`.
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
imagePullerDelegation:
description: When using a global operator with a shared platform,
this enables delegation of the `system:image-puller` cluster
role on the operator namespace to the integration service
account.
type: boolean
secretName:
description: The pull secret name to set on the Pod. If left
empty this is automatically taken from the `IntegrationPlatform`
registry configuration.
type: string
type: object
quarkus:
description: The configuration of Quarkus trait
properties:
buildMode:
description: |-
The Quarkus mode to run: either `jvm` or `native` (default `jvm`).
In case both `jvm` and `native` are specified, two `IntegrationKit` resources are created,
with the `native` kit having precedence over the `jvm` one once ready.
items:
description: QuarkusMode is the type of Quarkus build packaging.
enum:
- jvm
- native
type: string
type: array
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
nativeBaseImage:
description: The base image to use when running a native build
(default `quay.io/quarkus/quarkus-micro-image:2.0`)
type: string
nativeBuilderImage:
description: The image containing the tooling required for
a native build (by default it will use the one provided
in the runtime catalog)
type: string
packageTypes:
description: |-
The Quarkus package types, `fast-jar` or `native` (default `fast-jar`).
In case both `fast-jar` and `native` are specified, two `IntegrationKit` resources are created,
with the native kit having precedence over the `fast-jar` one once ready.
The order influences the resolution of the current kit for the integration.
The kit corresponding to the first package type will be assigned to the
integration in case no existing kit that matches the integration exists.
Deprecated: use `build-mode` instead.
items:
description: |-
QuarkusPackageType is the type of Quarkus build packaging.
Deprecated: use `QuarkusMode` instead.
enum:
- fast-jar
- native
type: string
type: array
type: object
registry:
description: |-
The configuration of Registry trait (support removed since version 2.5.0).
Deprecated: use jvm trait or read documentation.
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
type: object
route:
description: The configuration of Route trait
properties:
annotations:
additionalProperties:
type: string
description: |-
The annotations added to route.
This can be used to set route specific annotations
For annotations options see https://docs.openshift.com/container-platform/3.11/architecture/networking/routes.html#route-specific-annotations
CLI usage example: -t "route.annotations.'haproxy.router.openshift.io/balance'=true"
type: object
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
host:
description: To configure the host exposed by the route.
type: string
tlsCACertificate:
description: |-
The TLS CA certificate contents.
Refer to the OpenShift route documentation for additional information.
type: string
tlsCACertificateSecret:
description: |-
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.
type: string
tlsCertificate:
description: |-
The TLS certificate contents.
Refer to the OpenShift route documentation for additional information.
type: string
tlsCertificateSecret:
description: |-
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.
type: string
tlsDestinationCACertificate:
description: |-
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.
type: string
tlsDestinationCACertificateSecret:
description: |-
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.
type: string
tlsInsecureEdgeTerminationPolicy:
description: |-
To configure how to deal with insecure traffic, e.g. `Allow`, `Disable` or `Redirect` traffic.
Refer to the OpenShift route documentation for additional information.
enum:
- None
- Allow
- Redirect
type: string
tlsKey:
description: |-
The TLS certificate key contents.
Refer to the OpenShift route documentation for additional information.
type: string
tlsKeySecret:
description: |-
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.
type: string
tlsTermination:
description: |-
The TLS termination type, like `edge`, `passthrough` or `reencrypt`.
Refer to the OpenShift route documentation for additional information.
enum:
- edge
- reencrypt
- passthrough
type: string
type: object
security-context:
description: The configuration of Security Context trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
runAsNonRoot:
description: Security Context RunAsNonRoot configuration (default
false).
type: boolean
runAsUser:
description: 'Security Context RunAsUser configuration (default
none): this value is automatically retrieved in Openshift
clusters when not explicitly set.'
format: int64
type: integer
seccompProfileType:
description: Security Context SeccompProfileType configuration
(default RuntimeDefault).
enum:
- Unconfined
- RuntimeDefault
type: string
type: object
service:
description: The configuration of Service trait
properties:
annotations:
additionalProperties:
type: string
description: The annotations added to the Service object.
type: object
auto:
description: To automatically detect from the code if a Service
needs to be created.
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
labels:
additionalProperties:
type: string
description: The labels added to the Service object.
type: object
nodePort:
description: |-
Enable Service to be exposed as NodePort (default `false`).
Deprecated: Use service type instead.
type: boolean
type:
description: The type of service to be used, either 'ClusterIP',
'NodePort' or 'LoadBalancer'.
enum:
- ClusterIP
- NodePort
- LoadBalancer
type: string
type: object
service-binding:
description: |-
The configuration of Service Binding trait
Deprecated: no longer in use.
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
services:
description: List of Services in the form [[apigroup/]version:]kind:[namespace/]name
items:
type: string
type: array
type: object
strimzi:
description: 'Deprecated: for backward compatibility.'
properties:
configuration:
description: TraitConfiguration parameters configuration
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- configuration
type: object
telemetry:
description: The configuration of Telemetry trait
properties:
auto:
description: Enables automatic configuration of the trait,
including automatic discovery of the telemetry endpoint.
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
endpoint:
description: The target endpoint of the Telemetry service
(automatically discovered by default)
type: string
sampler:
description: The sampler of the telemetry used for tracing
(default "on")
type: string
sampler-parent-based:
description: The sampler of the telemetry used for tracing
is parent based (default "true")
type: boolean
sampler-ratio:
description: The sampler ratio of the telemetry used for tracing
type: string
serviceName:
description: The name of the service that publishes telemetry
data (defaults to the integration name)
type: string
type: object
toleration:
description: The configuration of Toleration trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
taints:
description: The list of taints to tolerate, in the form `Key[=Value]:Effect[:Seconds]`
items:
type: string
type: array
type: object
tracing:
description: 'Deprecated: for backward compatibility.'
properties:
configuration:
description: TraitConfiguration parameters configuration
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- configuration
type: object
type: object
type: object
status:
description: IntegrationPlatformStatus defines the observed state of IntegrationPlatform.
properties:
build:
description: specify how to build the Integration/IntegrationKits
properties:
PublishStrategyOptions:
additionalProperties:
type: string
description: 'Deprecated: no longer in use'
type: object
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 software
type: string
buildCatalogToolTimeout:
description: |-
the timeout (in seconds) to use when creating the build tools container image
Deprecated: no longer in use
type: string
buildConfiguration:
description: the configuration required to build an Integration
container image
properties:
annotations:
additionalProperties:
type: string
description: Annotation to use for the builder pod. Only used
for `pod` strategy
type: object
limitCPU:
description: The maximum amount of CPU required. Only used
for `pod` strategy
type: string
limitMemory:
description: The maximum amount of memory required. Only used
for `pod` strategy
type: string
nodeSelector:
additionalProperties:
type: string
description: The node selector for the builder pod. Only used
for `pod` strategy
type: object
operatorNamespace:
description: The namespace where to run the builder Pod (must
be the same of the operator in charge of this Build reconciliation).
type: string
orderStrategy:
description: the build order strategy to adopt
enum:
- dependencies
- fifo
- sequential
type: string
platforms:
description: The list of platforms used in order to build
a container image.
items:
type: string
type: array
requestCPU:
description: The minimum amount of CPU required. Only used
for `pod` strategy
type: string
requestMemory:
description: The minimum amount of memory required. Only used
for `pod` strategy
type: string
strategy:
description: the strategy to adopt
enum:
- routine
- pod
type: string
toolImage:
description: The container image to be used to run the build.
type: string
type: object
maven:
description: Maven configuration used to build the Camel/Camel-Quarkus
applications
properties:
caSecrets:
description: |-
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.
items:
description: SecretKeySelector selects a key of a Secret.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key must
be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: array
cliOptions:
description: |-
The CLI options that are appended to the list of arguments for Maven commands,
e.g., `-V,--no-transfer-progress,-Dstyle.color=never`.
See https://maven.apache.org/ref/3.8.4/maven-embedder/cli.html.
items:
type: string
type: array
extension:
description: |-
The Maven build extensions.
See https://maven.apache.org/guides/mini/guide-using-extensions.html.
items:
description: MavenArtifact defines a GAV (Group:Artifact:Type:Version:Classifier)
Maven artifact.
properties:
artifactId:
description: Maven Artifact
type: string
classifier:
description: Maven Classifier
type: string
groupId:
description: Maven Group
type: string
type:
description: Maven Type
type: string
version:
description: Maven Version
type: string
required:
- artifactId
- groupId
type: object
type: array
localRepository:
description: The path of the local Maven repository.
type: string
profiles:
description: |-
A reference to the ConfigMap or Secret key that contains
the Maven profile.
items:
description: ValueSource --.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
type: array
properties:
additionalProperties:
type: string
description: The Maven properties.
type: object
settings:
description: |-
A reference to the ConfigMap or Secret key that contains
the Maven settings.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
settingsSecurity:
description: |-
A reference to the ConfigMap or Secret key that contains
the security of the Maven settings.
properties:
configMapKeyRef:
description: Selects a key of a ConfigMap.
properties:
key:
description: The key to select.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the ConfigMap or its
key must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
description: Selects a key of a secret.
properties:
key:
description: The key of the secret to select from. Must
be a valid secret key.
type: string
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
optional:
description: Specify whether the Secret or its key
must be defined
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
type: object
maxRunningBuilds:
description: the maximum amount of parallel running pipelines
started by this operator instance
format: int32
type: integer
publishStrategy:
description: the strategy to adopt for publishing an Integration
container image
type: string
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
runtimeCoreVersion:
description: the Camel core version used by this IntegrationPlatform
type: string
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 pipeline
process
type: string
type: object
cluster:
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.
properties:
lastTransitionTime:
description: Last time the condition transitioned from one status
to another.
format: date-time
type: string
lastUpdateTime:
description: The last time this condition was updated.
format: date-time
type: string
message:
description: A human-readable message indicating details about
the transition.
type: string
reason:
description: The reason for the condition's last transition.
type: string
status:
description: Status of the condition, one of True, False, Unknown.
type: string
type:
description: Type of integration condition.
type: string
required:
- status
- type
type: object
type: array
configuration:
description: |-
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
items:
description: ConfigurationSpec represents a generic configuration
specification.
properties:
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
- value
type: object
type: array
info:
additionalProperties:
type: string
description: generic information related to the build of Camel K operator
software
type: object
kamelet:
description: configuration to be executed to all Kamelets controlled
by this IntegrationPlatform
properties:
repositories:
description: remote repository used to retrieve Kamelet catalog
items:
description: KameletRepositorySpec 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
observedGeneration:
description: ObservedGeneration is the most recent generation observed
for this IntegrationPlatform.
format: int64
type: integer
phase:
description: defines in what phase the IntegrationPlatform is found
type: string
profile:
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
traits:
description: list of traits to be executed for all the Integration/IntegrationKits
built from this IntegrationPlatform
properties:
3scale:
description: 'Deprecated: for backward compatibility.'
properties:
configuration:
description: TraitConfiguration parameters configuration
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- configuration
type: object
addons:
additionalProperties:
description: AddonTrait represents the configuration of an addon
trait.
type: object
x-kubernetes-preserve-unknown-fields: true
description: The extension point with addon traits
type: object
affinity:
description: The configuration of Affinity trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
nodeAffinityLabels:
description: Defines a set of nodes the integration pod(s)
are eligible to be scheduled on, based on labels on the
node.
items:
type: string
type: array
podAffinity:
description: Always co-locates multiple replicas of the integration
in the same node (default `false`).
type: boolean
podAffinityLabels:
description: |-
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.
items:
type: string
type: array
podAntiAffinity:
description: Never co-locates multiple replicas of the integration
in the same node (default `false`).
type: boolean
podAntiAffinityLabels:
description: |-
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.
items:
type: string
type: array
type: object
builder:
description: The configuration of Builder trait
properties:
annotations:
additionalProperties:
type: string
description: When using `pod` strategy, annotation to use
for the builder pod.
type: object
baseImage:
description: |-
Specify a base image. In order to have the application working properly it must be a container image which has a Java JDK
installed and ready to use on path (ie `/usr/bin/java`).
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
incrementalImageBuild:
description: Use the incremental image build option, to reuse
existing containers (default `true`)
type: boolean
limitCPU:
description: |-
When using `pod` strategy, the maximum amount of CPU required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
type: string
limitMemory:
description: |-
When using `pod` strategy, the maximum amount of memory required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
type: string
mavenProfiles:
description: |-
A list of references pointing to configmaps/secrets that contains a maven profile.
This configmap/secret is a resource of the IntegrationKit created, therefore it needs to be present in the namespace where the operator is going to create the IntegrationKit.
The content of the maven profile is expected to be a text containing a valid maven profile starting with `<profile>` and ending with `</profile>` that will be integrated as an inline profile in the POM.
Syntax: [configmap|secret]:name[/key], where name represents the resource name, key optionally represents the resource key to be filtered (default key value = profile.xml).
items:
type: string
type: array
nodeSelector:
additionalProperties:
type: string
description: Defines a set of nodes the builder pod is eligible
to be scheduled on, based on labels on the node.
type: object
orderStrategy:
description: The build order strategy to use, either `dependencies`,
`fifo` or `sequential` (default is the platform default)
enum:
- dependencies
- fifo
- sequential
type: string
platforms:
description: The list of manifest platforms to use to build
a container image (default `linux/amd64`).
items:
type: string
type: array
properties:
description: A list of properties to be provided to the build
task
items:
type: string
type: array
requestCPU:
description: |-
When using `pod` strategy, the minimum amount of CPU required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
type: string
requestMemory:
description: |-
When using `pod` strategy, the minimum amount of memory required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
type: string
strategy:
description: The strategy to use, either `pod` or `routine`
(default `routine`)
enum:
- pod
- routine
type: string
tasks:
description: A list of tasks to be executed (available only
when using `pod` strategy) with format `<name>;<container-image>;<container-command>`.
items:
type: string
type: array
tasksFilter:
description: |-
A list of tasks sorted by the order of execution in a csv format, ie, `<taskName1>,<taskName2>,...`.
Mind that you must include also the operator tasks (`builder`, `quarkus-native`, `package`, `jib`, `s2i`)
if you need to execute them. Useful only with `pod` strategy.
type: string
tasksLimitCPU:
description: A list of limit cpu configuration for the specific
task with format `<task-name>:<limit-cpu-conf>`.
items:
type: string
type: array
tasksLimitMemory:
description: A list of limit memory configuration for the
specific task with format `<task-name>:<limit-memory-conf>`.
items:
type: string
type: array
tasksRequestCPU:
description: A list of request cpu configuration for the specific
task with format `<task-name>:<request-cpu-conf>`.
items:
type: string
type: array
tasksRequestMemory:
description: A list of request memory configuration for the
specific task with format `<task-name>:<request-memory-conf>`.
items:
type: string
type: array
verbose:
description: |-
Enable verbose logging on build components that support it (e.g. Kaniko build pod).
Deprecated no longer in use
type: boolean
type: object
camel:
description: The configuration of Camel trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
properties:
description: A list of properties to be provided to the Integration
runtime
items:
type: string
type: array
runtimeProvider:
description: The runtime provider to use for the integration.
(Default, Camel K Runtime).
enum:
- quarkus
- plain-quarkus
type: string
runtimeVersion:
description: |-
The runtime version to use for the integration. It overrides the default version set in the Integration Platform.
You can use a fixed version (for example "3.2.3") or a semantic version (for example "3.x") which will try to resolve
to the best matching Catalog existing on the cluster (Default, the one provided by the operator version).
type: string
type: object
container:
description: The configuration of Container trait
properties:
allowPrivilegeEscalation:
description: Security Context AllowPrivilegeEscalation configuration
(default false).
type: boolean
auto:
description: To automatically enable the trait
type: boolean
capabilitiesAdd:
description: Security Context Capabilities Add configuration
(default none).
items:
description: Capability represent POSIX capabilities type
type: string
type: array
capabilitiesDrop:
description: Security Context Capabilities Drop configuration
(default ALL).
items:
description: Capability represent POSIX capabilities type
type: string
type: array
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
expose:
description: Can be used to enable/disable exposure via kubernetes
Service.
type: boolean
image:
description: |-
The main container image to use for the Integration. When using this parameter the operator will create a synthetic IntegrationKit which
won't be able to execute traits requiring CamelCatalog. If the container image you're using is coming from an IntegrationKit, use instead
Integration `.spec.integrationKit` parameter. If you're moving the Integration across environments, you will also need to create an "external" IntegrationKit.
type: string
imagePullPolicy:
description: 'The pull policy: Always|Never|IfNotPresent'
enum:
- Always
- Never
- IfNotPresent
type: string
limitCPU:
description: The maximum amount of CPU to be provided (default
500 millicores).
type: string
limitMemory:
description: The maximum amount of memory to be provided (default
512 Mi).
type: string
name:
description: The main container name. It's named `integration`
by default.
type: string
port:
description: To configure a different port exposed by the
container (default `8080`).
format: int32
type: integer
portName:
description: To configure a different port name for the port
exposed by the container. It defaults to `http` only when
the `expose` parameter is true.
type: string
requestCPU:
description: The minimum amount of CPU required (default 125
millicores).
type: string
requestMemory:
description: The minimum amount of memory required (default
128 Mi).
type: string
runAsNonRoot:
description: Security Context RunAsNonRoot configuration (default
false).
type: boolean
runAsUser:
description: 'Security Context RunAsUser configuration (default
none): this value is automatically retrieved in Openshift
clusters when not explicitly set.'
format: int64
type: integer
seccompProfileType:
description: Security Context SeccompProfileType configuration
(default RuntimeDefault).
enum:
- Unconfined
- RuntimeDefault
type: string
servicePort:
description: To configure under which service port the container
port is to be exposed (default `80`).
format: int32
type: integer
servicePortName:
description: To configure under which service port name the
container port is to be exposed (default `http`).
type: string
type: object
cron:
description: The configuration of Cron trait
properties:
activeDeadlineSeconds:
description: |-
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.
format: int64
type: integer
auto:
description: |-
Automatically deploy the integration as CronJob when all routes are
either starting from a periodic consumer (only `cron`, `timer` and `quartz` are supported) or a passive consumer (e.g. `direct` is a passive consumer).
It's required that all periodic consumers have the same period, and it can be expressed as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`,
while `35m` or `50s` cannot).
type: boolean
backoffLimit:
description: |-
Specifies the number of retries before marking the job failed.
It defaults to 2.
format: int32
type: integer
components:
description: |-
A comma separated list of the Camel components that need to be customized in order for them to work when the schedule is triggered externally by Kubernetes.
Supported components are currently: `cron`, `timer` and `quartz`.
type: string
concurrencyPolicy:
description: |-
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
enum:
- Allow
- Forbid
- Replace
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
fallback:
description: |-
Use the default Camel implementation of the `cron` endpoint (`quartz`) instead of trying to materialize the integration
as Kubernetes CronJob.
type: boolean
schedule:
description: |-
The CronJob schedule for the whole integration. If multiple routes are declared, they must have the same schedule for this
mechanism to work correctly.
type: string
startingDeadlineSeconds:
description: |-
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.
format: int64
type: integer
timeZone:
description: The timezone that the CronJob will run on
type: string
type: object
dependencies:
description: The configuration of Dependencies trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
type: object
deployer:
description: The configuration of Deployer trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
kind:
description: Allows to explicitly select the desired deployment
kind between `deployment`, `cron-job` or `knative-service`
when creating the resources for running the integration.
enum:
- deployment
- cron-job
- knative-service
type: string
useSSA:
description: |-
Deprecated: won't be able to enforce client side update in the future.
Use server-side apply to update the owned resources (default `true`).
Note that it automatically falls back to client-side patching, if SSA is not available, e.g., on old Kubernetes clusters.
type: boolean
type: object
deployment:
description: The configuration of Deployment trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
progressDeadlineSeconds:
description: |-
The maximum time in seconds for the deployment to make progress before it
is considered to be failed. It defaults to `60s`.
format: int32
type: integer
rollingUpdateMaxSurge:
anyOf:
- type: integer
- type: string
description: |-
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%`.
x-kubernetes-int-or-string: true
rollingUpdateMaxUnavailable:
anyOf:
- type: integer
- type: string
description: |-
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%`.
x-kubernetes-int-or-string: true
strategy:
description: The deployment strategy to use to replace existing
pods with new ones.
enum:
- Recreate
- RollingUpdate
type: string
type: object
environment:
description: The configuration of Environment trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
containerMeta:
description: Enables injection of `NAMESPACE` and `POD_NAME`
environment variables (default `true`)
type: boolean
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
httpProxy:
description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and
`NO_PROXY` environment variables (default `true`)
type: boolean
vars:
description: |-
A list of environment variables to be added to the integration container.
The syntax is either VAR=VALUE or VAR=[configmap|secret]:name/key, where name represents the resource name,
and key represents the resource key to be mapped as and environment variable.
These take precedence over any previously defined environment variables.
items:
type: string
type: array
type: object
error-handler:
description: |-
The configuration of Error Handler trait
Deprecated: no longer in use.
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
ref:
description: The error handler ref name provided or found
in application properties
type: string
type: object
gc:
description: The configuration of GC trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
discoveryCache:
description: |-
Discovery client cache to be used, either `disabled`, `disk` or `memory` (default `memory`).
Deprecated: no longer in use.
enum:
- disabled
- disk
- memory
type: string
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
type: object
health:
description: The configuration of Health trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
livenessFailureThreshold:
description: Minimum consecutive failures for the liveness
probe to be considered failed after having succeeded.
format: int32
type: integer
livenessInitialDelay:
description: Number of seconds after the container has started
before the liveness probe is initiated.
format: int32
type: integer
livenessPeriod:
description: How often to perform the liveness probe.
format: int32
type: integer
livenessProbe:
description: The liveness probe path to use (default provided
by the Catalog runtime used).
type: string
livenessProbeEnabled:
description: Configures the liveness probe for the integration
container (default `false`).
type: boolean
livenessScheme:
description: Scheme to use when connecting to the liveness
probe (default `HTTP`).
type: string
livenessSuccessThreshold:
description: Minimum consecutive successes for the liveness
probe to be considered successful after having failed.
format: int32
type: integer
livenessTimeout:
description: Number of seconds after which the liveness probe
times out.
format: int32
type: integer
readinessFailureThreshold:
description: Minimum consecutive failures for the readiness
probe to be considered failed after having succeeded.
format: int32
type: integer
readinessInitialDelay:
description: Number of seconds after the container has started
before the readiness probe is initiated.
format: int32
type: integer
readinessPeriod:
description: How often to perform the readiness probe.
format: int32
type: integer
readinessProbe:
description: The readiness probe path to use (default provided
by the Catalog runtime used).
type: string
readinessProbeEnabled:
description: Configures the readiness probe for the integration
container (default `true`).
type: boolean
readinessScheme:
description: Scheme to use when connecting to the readiness
probe (default `HTTP`).
type: string
readinessSuccessThreshold:
description: Minimum consecutive successes for the readiness
probe to be considered successful after having failed.
format: int32
type: integer
readinessTimeout:
description: Number of seconds after which the readiness probe
times out.
format: int32
type: integer
startupFailureThreshold:
description: Minimum consecutive failures for the startup
probe to be considered failed after having succeeded.
format: int32
type: integer
startupInitialDelay:
description: Number of seconds after the container has started
before the startup probe is initiated.
format: int32
type: integer
startupPeriod:
description: How often to perform the startup probe.
format: int32
type: integer
startupProbe:
description: The startup probe path to use (default provided
by the Catalog runtime used).
type: string
startupProbeEnabled:
description: Configures the startup probe for the integration
container (default `false`).
type: boolean
startupScheme:
description: Scheme to use when connecting to the startup
probe (default `HTTP`).
type: string
startupSuccessThreshold:
description: Minimum consecutive successes for the startup
probe to be considered successful after having failed.
format: int32
type: integer
startupTimeout:
description: Number of seconds after which the startup probe
times out.
format: int32
type: integer
type: object
ingress:
description: The configuration of Ingress trait
properties:
annotations:
additionalProperties:
type: string
description: |-
The annotations added to the ingress.
This can be used to set controller specific annotations, e.g., when using the NGINX Ingress controller:
See https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md
type: object
auto:
description: To automatically add an ingress whenever the
integration uses an HTTP endpoint consumer.
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
host:
description: To configure the host exposed by the ingress.
type: string
ingressClassName:
description: |-
The Ingress class name as defined by the Ingress spec
See https://kubernetes.io/docs/concepts/services-networking/ingress/
type: string
path:
description: |-
To configure the path exposed by the ingress (default `/`).
Deprecated: In favor of `paths` - left for backward compatibility.
type: string
pathType:
description: |-
To configure the path type exposed by the ingress.
One of `Exact`, `Prefix`, `ImplementationSpecific` (default to `Prefix`).
enum:
- Exact
- Prefix
- ImplementationSpecific
type: string
paths:
description: To configure the paths exposed by the ingress
(default `['/']`).
items:
type: string
type: array
tlsHosts:
description: To configure tls hosts
items:
type: string
type: array
tlsSecretName:
description: To configure tls secret name
type: string
type: object
istio:
description: The configuration of Istio trait
properties:
allow:
description: Configures a (comma-separated) list of CIDR subnets
that should not be intercepted by the Istio proxy (`10.0.0.0/8,172.16.0.0/12,192.168.0.0/16`
by default).
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
inject:
description: Forces the value for labels `sidecar.istio.io/inject`.
By default the label is set to `true` on deployment and
not set on Knative Service.
type: boolean
type: object
jolokia:
description: The configuration of Jolokia trait
properties:
CACert:
description: |-
The PEM encoded CA certification file path, used to verify client certificates,
applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true`
(default `/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt` for OpenShift).
type: string
clientPrincipal:
description: |-
The principal(s) which must be given in a client certificate to allow access to the Jolokia endpoint,
applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true`
(default `clientPrincipal=cn=system:master-proxy`, `cn=hawtio-online.hawtio.svc` and `cn=fuse-console.fuse.svc` for OpenShift).
items:
type: string
type: array
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
discoveryEnabled:
description: Listen for multicast requests (default `false`)
type: boolean
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
extendedClientCheck:
description: |-
Mandate the client certificate contains a client flag in the extended key usage section,
applicable when `protocol` is `https` and `use-ssl-client-authentication` is `true`
(default `true` for OpenShift).
type: boolean
host:
description: |-
The Host address to which the Jolokia agent should bind to. If `"\*"` or `"0.0.0.0"` is given,
the servers binds to every network interface (default `"*"`).
type: string
options:
description: |-
A list of additional Jolokia options as defined
in https://jolokia.org/reference/html/agents.html#agent-jvm-config[JVM agent configuration options]
items:
type: string
type: array
password:
description: The password used for authentication, applicable
when the `user` option is set.
type: string
port:
description: The Jolokia endpoint port (default `8778`).
format: int32
type: integer
protocol:
description: The protocol to use, either `http` or `https`
(default `https` for OpenShift)
type: string
useSSLClientAuthentication:
description: Whether client certificates should be used for
authentication (default `true` for OpenShift).
type: boolean
user:
description: The user to be used for authentication
type: string
type: object
jvm:
description: The configuration of JVM trait
properties:
classpath:
description: Additional JVM classpath (use `Linux` classpath
separator)
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
debug:
description: Activates remote debugging, so that a debugger
can be attached to the JVM, e.g., using port-forwarding
type: boolean
debugAddress:
description: Transport address at which to listen for the
newly launched JVM (default `*:5005`)
type: string
debugSuspend:
description: Suspends the target JVM immediately before the
main class is loaded
type: boolean
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
jar:
description: The Jar dependency which will run the application.
Leave it empty for managed Integrations.
type: string
options:
description: A list of JVM options
items:
type: string
type: array
printCommand:
description: |-
Prints the command used the start the JVM in the container logs (default `true`)
Deprecated: no longer in use.
type: boolean
type: object
kamelets:
description: The configuration of Kamelets trait
properties:
auto:
description: Automatically inject all referenced Kamelets
and their default configuration (enabled by default)
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
list:
description: Comma separated list of Kamelet names to load
into the current integration
type: string
mountPoint:
description: The directory where the application mounts and
reads Kamelet spec (default `/etc/camel/kamelets`)
type: string
type: object
keda:
description: 'Deprecated: for backward compatibility.'
properties:
configuration:
description: TraitConfiguration parameters configuration
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- configuration
type: object
knative:
description: The configuration of Knative trait
properties:
auto:
description: Enable automatic discovery of all trait properties.
type: boolean
channelSinks:
description: |-
List of channels used as destination of integration routes.
Can contain simple channel names or full Camel URIs.
items:
type: string
type: array
channelSources:
description: |-
List of channels used as source of integration routes.
Can contain simple channel names or full Camel URIs.
items:
type: string
type: array
config:
description: Can be used to inject a Knative complete configuration
in JSON format.
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
endpointSinks:
description: |-
List of endpoints used as destination of integration routes.
Can contain simple endpoint names or full Camel URIs.
items:
type: string
type: array
endpointSources:
description: List of channels used as source of integration
routes.
items:
type: string
type: array
eventSinks:
description: |-
List of event types that the integration will produce.
Can contain simple event types or full Camel URIs (to use a specific broker).
items:
type: string
type: array
eventSources:
description: |-
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").
items:
type: string
type: array
filterEventType:
description: |-
Enables the default filtering for the Knative trigger using the event type
If this is true, the created Knative trigger uses the event type as a filter on the event stream when no other filter criteria is given. (default: true)
type: boolean
filterSourceChannels:
description: |-
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.
type: boolean
filters:
description: |-
Sets filter attributes on the event stream (such as event type, source, subject and so on).
A list of key-value pairs that represent filter attributes and its values.
The syntax is KEY=VALUE, e.g., `source="my.source"`.
Filter attributes get set on the Knative trigger that is being created as part of this integration.
items:
type: string
type: array
namespaceLabel:
description: |-
Enables the camel-k-operator to set the "bindings.knative.dev/include=true" label to the namespace
As Knative requires this label to perform injection of K_SINK URL into the service.
If this is false, the integration pod may start and fail, read the SinkBinding Knative documentation. (default: true)
type: boolean
sinkBinding:
description: |-
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).
type: boolean
type: object
knative-service:
description: The configuration of Knative Service trait
properties:
annotations:
additionalProperties:
type: string
description: |-
The annotations added to route.
This can be used to set knative service specific annotations
CLI usage example: -t "knative-service.annotations.'haproxy.router.openshift.io/balance'=true"
type: object
auto:
description: |-
Automatically deploy the integration as Knative service when all conditions hold:
* Integration is using the Knative profile
* All routes are either starting from an HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer)
type: boolean
autoscalingMetric:
description: |-
Configures the Knative autoscaling metric property (e.g. to set `concurrency` based or `cpu` based autoscaling).
Refer to the Knative documentation for more information.
type: string
autoscalingTarget:
description: |-
Sets the allowed concurrency level or CPU percentage (depending on the autoscaling metric) for each Pod.
Refer to the Knative documentation for more information.
type: integer
class:
description: |-
Configures the Knative autoscaling class property (e.g. to set `hpa.autoscaling.knative.dev` or `kpa.autoscaling.knative.dev` autoscaling).
Refer to the Knative documentation for more information.
enum:
- kpa.autoscaling.knative.dev
- hpa.autoscaling.knative.dev
type: string
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
maxScale:
description: |-
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.
type: integer
minScale:
description: |-
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.
type: integer
rolloutDuration:
description: |-
Enables to gradually shift traffic to the latest Revision and sets the rollout duration.
It's disabled by default and must be expressed as a Golang `time.Duration` string representation,
rounded to a second precision.
type: string
timeoutSeconds:
description: |-
The maximum duration in seconds that the request instance is allowed to respond to a request.
This field propagates to the integration pod's terminationGracePeriodSeconds
Refer to the Knative documentation for more information.
format: int64
type: integer
visibility:
description: |-
Setting `cluster-local`, Knative service becomes a private service.
Specifically, this option applies the `networking.knative.dev/visibility` label to Knative service.
Refer to the Knative documentation for more information.
enum:
- cluster-local
type: string
type: object
logging:
description: The configuration of Logging trait
properties:
color:
description: Colorize the log output
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
format:
description: Logs message format
type: string
json:
description: Output the logs in JSON
type: boolean
jsonPrettyPrint:
description: Enable "pretty printing" of the JSON logs
type: boolean
level:
description: Adjust the logging level (defaults to `INFO`)
enum:
- FATAL
- WARN
- INFO
- DEBUG
- TRACE
type: string
type: object
master:
description: The configuration of Master trait
properties:
auto:
description: Enables automatic configuration of the trait.
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
includeDelegateDependencies:
description: |-
When this flag is active, the operator analyzes the source code to add dependencies required by delegate endpoints.
E.g. when using `master:lockname:timer`, then `camel:timer` is automatically added to the set of dependencies.
It's enabled by default.
type: boolean
labelKey:
description: Label that will be used to identify all pods
contending the lock. Defaults to "camel.apache.org/integration".
type: string
labelValue:
description: Label value that will be used to identify all
pods contending the lock. Defaults to the integration name.
type: string
resourceName:
description: |-
Name of the configmap that will be used to store the lock. Defaults to "<integration-name>-lock".
Name of the configmap/lease resource that will be used to store the lock. Defaults to "<integration-name>-lock".
type: string
resourceType:
description: Type of Kubernetes resource to use for locking
("ConfigMap" or "Lease"). Defaults to "Lease".
type: string
type: object
mount:
description: The configuration of Mount trait
properties:
configs:
description: |-
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
items:
type: string
type: array
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
emptyDirs:
description: |-
A list of EmptyDir volumes to be mounted. An optional size limit may be configured (default 500Mi).
Syntax: name:/container/path[:sizeLimit]
items:
type: string
type: array
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
hotReload:
description: |-
Enable "hot reload" when a secret/configmap mounted is edited (default `false`). The configmap/secret must be
marked with `camel.apache.org/integration` label to be taken in account. The resource will be watched for any kind change, also for
changes in metadata.
type: boolean
resources:
description: |-
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
items:
type: string
type: array
scanKameletsImplicitLabelSecrets:
description: 'Deprecated: no longer available since version
2.5.'
type: boolean
volumes:
description: |-
A list of Persistent Volume Claims to be mounted. Syntax: [pvcname:/container/path]. If the PVC is not found, the Integration fails.
You can use the syntax [pvcname:/container/path:size:accessMode<:storageClass>] to create a dynamic PVC based on the Storage Class provided
or the default cluster Storage Class. However, if the PVC exists, the operator would mount it.
items:
type: string
type: array
type: object
openapi:
description: The configuration of OpenAPI trait
properties:
configmaps:
description: The configmaps holding the spec of the OpenAPI
(compatible with > 3.0 spec only).
items:
type: string
type: array
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
type: object
owner:
description: The configuration of Owner trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
targetAnnotations:
description: The set of annotations to be transferred
items:
type: string
type: array
targetLabels:
description: The set of labels to be transferred
items:
type: string
type: array
type: object
pdb:
description: The configuration of PDB trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
maxUnavailable:
description: |-
The number of pods for the Integration that can be unavailable after an eviction.
It can be either an absolute number or a percentage (default `1` if `min-available` is also not set).
Only one of `max-unavailable` and `min-available` can be specified.
type: string
minAvailable:
description: |-
The number of pods for the Integration that must still be available after an eviction.
It can be either an absolute number or a percentage.
Only one of `min-available` and `max-unavailable` can be specified.
type: string
type: object
platform:
description: The configuration of Platform trait
properties:
auto:
description: |-
To automatically detect from the environment if a default platform can be created (it will be created on OpenShift or when a registry address is set).
Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
createDefault:
description: |-
To create a default (empty) platform when the platform is missing.
Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility
type: boolean
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
global:
description: |-
Indicates if the platform should be created globally in the case of global operator (default true).
Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility
type: boolean
type: object
pod:
description: The configuration of Pod trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
type: object
prometheus:
description: The configuration of Prometheus trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
podMonitor:
description: Whether a `PodMonitor` resource is created (default
`true`).
type: boolean
podMonitorLabels:
description: The `PodMonitor` resource labels, applicable
when `pod-monitor` is `true`.
items:
type: string
type: array
type: object
pull-secret:
description: The configuration of Pull Secret trait
properties:
auto:
description: Automatically configures the platform registry
secret on the pod if it is of type `kubernetes.io/dockerconfigjson`.
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
imagePullerDelegation:
description: When using a global operator with a shared platform,
this enables delegation of the `system:image-puller` cluster
role on the operator namespace to the integration service
account.
type: boolean
secretName:
description: The pull secret name to set on the Pod. If left
empty this is automatically taken from the `IntegrationPlatform`
registry configuration.
type: string
type: object
quarkus:
description: The configuration of Quarkus trait
properties:
buildMode:
description: |-
The Quarkus mode to run: either `jvm` or `native` (default `jvm`).
In case both `jvm` and `native` are specified, two `IntegrationKit` resources are created,
with the `native` kit having precedence over the `jvm` one once ready.
items:
description: QuarkusMode is the type of Quarkus build packaging.
enum:
- jvm
- native
type: string
type: array
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
nativeBaseImage:
description: The base image to use when running a native build
(default `quay.io/quarkus/quarkus-micro-image:2.0`)
type: string
nativeBuilderImage:
description: The image containing the tooling required for
a native build (by default it will use the one provided
in the runtime catalog)
type: string
packageTypes:
description: |-
The Quarkus package types, `fast-jar` or `native` (default `fast-jar`).
In case both `fast-jar` and `native` are specified, two `IntegrationKit` resources are created,
with the native kit having precedence over the `fast-jar` one once ready.
The order influences the resolution of the current kit for the integration.
The kit corresponding to the first package type will be assigned to the
integration in case no existing kit that matches the integration exists.
Deprecated: use `build-mode` instead.
items:
description: |-
QuarkusPackageType is the type of Quarkus build packaging.
Deprecated: use `QuarkusMode` instead.
enum:
- fast-jar
- native
type: string
type: array
type: object
registry:
description: |-
The configuration of Registry trait (support removed since version 2.5.0).
Deprecated: use jvm trait or read documentation.
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
type: object
route:
description: The configuration of Route trait
properties:
annotations:
additionalProperties:
type: string
description: |-
The annotations added to route.
This can be used to set route specific annotations
For annotations options see https://docs.openshift.com/container-platform/3.11/architecture/networking/routes.html#route-specific-annotations
CLI usage example: -t "route.annotations.'haproxy.router.openshift.io/balance'=true"
type: object
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
host:
description: To configure the host exposed by the route.
type: string
tlsCACertificate:
description: |-
The TLS CA certificate contents.
Refer to the OpenShift route documentation for additional information.
type: string
tlsCACertificateSecret:
description: |-
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.
type: string
tlsCertificate:
description: |-
The TLS certificate contents.
Refer to the OpenShift route documentation for additional information.
type: string
tlsCertificateSecret:
description: |-
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.
type: string
tlsDestinationCACertificate:
description: |-
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.
type: string
tlsDestinationCACertificateSecret:
description: |-
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.
type: string
tlsInsecureEdgeTerminationPolicy:
description: |-
To configure how to deal with insecure traffic, e.g. `Allow`, `Disable` or `Redirect` traffic.
Refer to the OpenShift route documentation for additional information.
enum:
- None
- Allow
- Redirect
type: string
tlsKey:
description: |-
The TLS certificate key contents.
Refer to the OpenShift route documentation for additional information.
type: string
tlsKeySecret:
description: |-
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.
type: string
tlsTermination:
description: |-
The TLS termination type, like `edge`, `passthrough` or `reencrypt`.
Refer to the OpenShift route documentation for additional information.
enum:
- edge
- reencrypt
- passthrough
type: string
type: object
security-context:
description: The configuration of Security Context trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: 'Deprecated: no longer in use.'
type: boolean
runAsNonRoot:
description: Security Context RunAsNonRoot configuration (default
false).
type: boolean
runAsUser:
description: 'Security Context RunAsUser configuration (default
none): this value is automatically retrieved in Openshift
clusters when not explicitly set.'
format: int64
type: integer
seccompProfileType:
description: Security Context SeccompProfileType configuration
(default RuntimeDefault).
enum:
- Unconfined
- RuntimeDefault
type: string
type: object
service:
description: The configuration of Service trait
properties:
annotations:
additionalProperties:
type: string
description: The annotations added to the Service object.
type: object
auto:
description: To automatically detect from the code if a Service
needs to be created.
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
labels:
additionalProperties:
type: string
description: The labels added to the Service object.
type: object
nodePort:
description: |-
Enable Service to be exposed as NodePort (default `false`).
Deprecated: Use service type instead.
type: boolean
type:
description: The type of service to be used, either 'ClusterIP',
'NodePort' or 'LoadBalancer'.
enum:
- ClusterIP
- NodePort
- LoadBalancer
type: string
type: object
service-binding:
description: |-
The configuration of Service Binding trait
Deprecated: no longer in use.
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
services:
description: List of Services in the form [[apigroup/]version:]kind:[namespace/]name
items:
type: string
type: array
type: object
strimzi:
description: 'Deprecated: for backward compatibility.'
properties:
configuration:
description: TraitConfiguration parameters configuration
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- configuration
type: object
telemetry:
description: The configuration of Telemetry trait
properties:
auto:
description: Enables automatic configuration of the trait,
including automatic discovery of the telemetry endpoint.
type: boolean
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
endpoint:
description: The target endpoint of the Telemetry service
(automatically discovered by default)
type: string
sampler:
description: The sampler of the telemetry used for tracing
(default "on")
type: string
sampler-parent-based:
description: The sampler of the telemetry used for tracing
is parent based (default "true")
type: boolean
sampler-ratio:
description: The sampler ratio of the telemetry used for tracing
type: string
serviceName:
description: The name of the service that publishes telemetry
data (defaults to the integration name)
type: string
type: object
toleration:
description: The configuration of Toleration trait
properties:
configuration:
description: |-
Legacy trait configuration parameters.
Deprecated: for backward compatibility.
type: object
x-kubernetes-preserve-unknown-fields: true
enabled:
description: Can be used to enable or disable a trait. All
traits share this common property.
type: boolean
taints:
description: The list of taints to tolerate, in the form `Key[=Value]:Effect[:Seconds]`
items:
type: string
type: array
type: object
tracing:
description: 'Deprecated: for backward compatibility.'
properties:
configuration:
description: TraitConfiguration parameters configuration
type: object
x-kubernetes-preserve-unknown-fields: true
required:
- configuration
type: object
type: object
version:
description: the Camel K operator version controlling this IntegrationPlatform
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}