blob: a6c966e2fed78c68050868e8a08528e864bf12f4 [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: 'configuration used by the kit TODO: we should deprecate
in future releases in favour of mount, openapi or camel traits'
items:
description: ConfigurationSpec represents a generic configuration
specification
properties:
resourceKey:
description: 'Deprecated: no longer used'
type: string
resourceMountPoint:
description: 'Deprecated: no longer used'
type: string
resourceType:
description: 'Deprecated: no longer used'
type: string
type:
description: 'represents the type of configuration, ie: property,
configmap, secret, ...'
type: string
value:
description: the value to assign to the configuration (syntax
may vary depending on the `Type`)
type: string
required:
- type
- 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
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
verbose:
description: Enable verbose logging on build components that
support it (e.g. Kaniko build pod).
type: boolean
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.
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: {}