blob: f1d385a9f07fa0af37143032b6874e9a4ac02577 [file] [log] [blame]
# ---------------------------------------------------------------------------
# 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.6.1
creationTimestamp: null
labels:
app: camel-k
name: integrationkits.camel.apache.org
spec:
group: camel.apache.org
names:
categories:
- kamel
- camel
kind: IntegrationKit
listKind: IntegrationKitList
plural: integrationkits
shortNames:
- ik
singular: integrationkit
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: The integration kit phase
jsonPath: .status.phase
name: Phase
type: string
- description: The integration kit type
jsonPath: .metadata.labels.camel\.apache\.org\/kit\.type
name: Type
type: string
- description: The integration kit image
jsonPath: .status.image
name: Image
type: string
name: v1
schema:
openAPIV3Schema:
description: IntegrationKit defines a container image and additional configuration
needed to run an `Integration`. An `IntegrationKit` is a generic image generally
built from the requirements of an `Integration`, but agnostic to it, in
order to be reused by any other `Integration` which has the same required
set of capabilities. An `IntegrationKit` may be used for other kits as a
base container layer, when the `incremental` build option is enabled.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
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: the desired configuration
properties:
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 configuration used by the kit'
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
dependencies:
description: a list of Camel dependecies used by this kit
items:
type: string
type: array
image:
description: the container image as identified in the container registry
type: string
profile:
description: the profile which is expected by this kit
type: string
repositories:
description: Maven repositories that can be used by the kit
items:
type: string
type: array
sources:
description: the sources to add at build time
items:
description: SourceSpec defines the configuration for one or more
routes to be executed in a certain Camel DSL language
properties:
compression:
description: if the content is compressed (base64 encrypted)
type: boolean
content:
description: the source code (plain text)
type: string
contentKey:
description: the confimap key holding the source content
type: string
contentRef:
description: the confimap reference holding the source content
type: string
contentType:
description: the content type (tipically text or binary)
type: string
interceptors:
description: Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader
uses to pre/post process sources
items:
type: string
type: array
language:
description: specify which is the language (Camel DSL) used
to interpret this source code
type: string
loader:
description: Loader is an optional id of the org.apache.camel.k.RoutesLoader
that will interpret this source at runtime
type: string
name:
description: the name of the specification
type: string
path:
description: the path where the file is stored
type: string
property-names:
description: List of property names defined in the source (e.g.
if type is "template")
items:
type: string
type: array
rawContent:
description: the source code (binary)
format: byte
type: string
type:
description: Type defines the kind of source described by this
object
type: string
type: object
type: array
traits:
description: traits that the kit will execute
properties:
addons:
additionalProperties:
description: AddonTrait represents the configuration of an addon
trait
type: object
x-kubernetes-preserve-unknown-fields: true
description: The collection of addon trait configurations
type: object
builder:
description: The builder trait is internally used to determine
the best strategy to build and configure IntegrationKits.
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
properties:
description: A list of properties to be provided to the build
task
items:
type: string
type: array
strategy:
description: The strategy to use, either `pod` or `routine`
(default routine)
type: string
verbose:
description: Enable verbose logging on build components that
support it (e.g. Kaniko build pod).
type: boolean
type: object
camel:
description: The Camel trait sets up Camel configuration.
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
properties:
description: A list of properties to be provided to the Integration
runtime
items:
type: string
type: array
runtimeVersion:
description: The camel-k-runtime version to use for the integration.
It overrides the default version set in the Integration
Platform.
type: string
type: object
quarkus:
description: 'The Quarkus trait configures the Quarkus runtime.
It''s enabled by default. NOTE: Compiling to a native executable,
i.e. when using `package-type=native`, is only supported for
kamelets, as well as YAML and XML integrations. It also requires
at least 4GiB of memory, so the Pod running the native build,
that is either the operator Pod, or the build Pod (depending
on the build strategy configured for the platform), must have
enough memory available.'
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
packageTypes:
description: The Quarkus package types, either `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.
items:
description: Quarkus package type.
enum:
- fast-jar
- native
type: string
type: array
type: object
registry:
description: The Registry trait sets up Maven to use the Image
registry as a Maven repository.
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
type: object
type: object
status:
description: the actual status
properties:
artifacts:
description: list of artifacts used by the kit
items:
description: Artifact represents a materialized artifact (a jar
dependency or in general a file used by the build)
properties:
checksum:
description: a checksum (SHA1) of the content
type: string
id:
description: the identification (GAV for maven dependencies
or file name for other file types)
type: string
location:
description: where it is located in the builder `Pod`
type: string
target:
description: the expected location in the runtime
type: string
required:
- id
type: object
type: array
baseImage:
description: base image used by the kit
type: string
conditions:
description: a list of conditions which happened for the events related
the kit
items:
description: IntegrationKitCondition describes the state of a resource
at a certain point.
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
digest:
description: actual image digest of the kit
type: string
failure:
description: failure reason (if any)
properties:
reason:
description: a short text specifying the reason
type: string
recovery:
description: the recovery attempted for this failure
properties:
attempt:
description: attempt number
type: integer
attemptMax:
description: maximum number of attempts
type: integer
attemptTime:
description: time of the attempt execution
format: date-time
type: string
required:
- attempt
- attemptMax
type: object
time:
description: the time when the failure has happened
format: date-time
type: string
required:
- reason
- recovery
- time
type: object
image:
description: actual image name of the kit
type: string
observedGeneration:
description: ObservedGeneration is the most recent generation observed
for this IntegrationKit.
format: int64
type: integer
phase:
description: phase of the kit
type: string
platform:
description: the platform for which this kit was configured
type: string
runtimeProvider:
description: the runtime provider for which this kit was configured
type: string
runtimeVersion:
description: the runtime version for which this kit was configured
type: string
version:
description: the Camel K operator version for which this kit was configured
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}