blob: 033392e7def1d0bbe470a7db520c668cf6c7589b [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: builds.camel.apache.org
spec:
group: camel.apache.org
names:
categories:
- kamel
- camel
kind: Build
listKind: BuildList
plural: builds
shortNames:
- ikb
singular: build
scope: Namespaced
versions:
- additionalPrinterColumns:
- description: The build phase
jsonPath: .status.phase
name: Phase
type: string
- description: The time at which the build was created
jsonPath: .metadata.creationTimestamp
name: Age
type: date
- description: The time at which the build was last (re-)started
jsonPath: .status.startedAt
name: Started
type: date
- description: The build last execution duration
jsonPath: .status.duration
name: Duration
type: string
- description: The number of execution attempts
jsonPath: .status.failure.recovery.attempt
name: Attempts
type: integer
name: v1
schema:
openAPIV3Schema:
description: Build is the Schema for the builds API
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: BuildSpec defines the Build operation to be executed
properties:
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
strategy:
description: The strategy that should be used to perform the Build.
enum:
- routine
- pod
type: string
tasks:
description: The sequence of Build tasks to be performed as part of
the Build execution.
items:
description: Task represents the abstract task. Only one of the
task should be configured to represent the specific task chosen.
properties:
buildah:
description: a BuildahTask, for Buildah strategy
properties:
baseImage:
description: base image layer
type: string
contextDir:
description: can be useful to share info with other tasks
type: string
executorImage:
description: docker image to use
type: string
image:
description: final image name
type: string
name:
description: name of the task
type: string
platform:
description: The platform of build image
type: string
registry:
description: where to publish the final image
properties:
address:
description: the URI to access
type: string
ca:
description: the configmap which stores the Certificate
Authority
type: string
insecure:
description: if the container registry is insecure (ie,
http only)
type: boolean
organization:
description: the registry organization
type: string
secret:
description: the secret where credentials are stored
type: string
type: object
verbose:
description: log more information
type: boolean
type: object
builder:
description: a BuilderTask (base task)
properties:
baseImage:
description: the base image layer
type: string
buildDir:
description: workspace directory to use
type: string
dependencies:
description: the list of dependencies to use for this build
items:
type: string
type: array
maven:
description: the configuration required by Maven for the
application build phase
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:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind,
uid?'
type: string
optional:
description: Specify whether the Secret or its
key must be defined
type: boolean
required:
- key
type: object
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:Version)
Maven artifact
properties:
artifactId:
description: Maven Artifact
type: string
groupId:
description: Maven Group
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
properties:
additionalProperties:
type: string
description: The Maven properties.
type: object
repositories:
description: additional repositories
items:
description: Repository defines a Maven repository
properties:
id:
description: identifies the repository
type: string
name:
description: name of the repository
type: string
releases:
description: can use stable releases
properties:
checksumPolicy:
description: When Maven deploys files to the
repository, it also deploys corresponding
checksum files. Your options are to `ignore`,
`fail`, or `warn` on missing or incorrect
checksums.
type: string
enabled:
description: is the policy activated or not
type: boolean
updatePolicy:
description: 'This element specifies how often
updates should attempt to occur. Maven will
compare the local POM''s timestamp (stored
in a repository''s maven-metadata file)
to the remote. The choices are: `always`,
`daily` (default), `interval:X` (where X
is an integer in minutes) or `never`'
type: string
required:
- enabled
type: object
snapshots:
description: can use snapshot
properties:
checksumPolicy:
description: When Maven deploys files to the
repository, it also deploys corresponding
checksum files. Your options are to `ignore`,
`fail`, or `warn` on missing or incorrect
checksums.
type: string
enabled:
description: is the policy activated or not
type: boolean
updatePolicy:
description: 'This element specifies how often
updates should attempt to occur. Maven will
compare the local POM''s timestamp (stored
in a repository''s maven-metadata file)
to the remote. The choices are: `always`,
`daily` (default), `interval:X` (where X
is an integer in minutes) or `never`'
type: string
required:
- enabled
type: object
url:
description: location of the repository
type: string
required:
- id
- url
type: object
type: array
servers:
description: Servers (auth)
items:
properties:
configuration:
additionalProperties:
type: string
type: object
id:
type: string
password:
type: string
username:
type: string
type: object
type: array
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:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion,
kind, uid?'
type: string
optional:
description: Specify whether the ConfigMap or
its key must be defined
type: boolean
required:
- key
type: object
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:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion,
kind, uid?'
type: string
optional:
description: Specify whether the Secret or its
key must be defined
type: boolean
required:
- key
type: object
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:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion,
kind, uid?'
type: string
optional:
description: Specify whether the ConfigMap or
its key must be defined
type: boolean
required:
- key
type: object
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:
description: 'Name of the referent. More info:
https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion,
kind, uid?'
type: string
optional:
description: Specify whether the Secret or its
key must be defined
type: boolean
required:
- key
type: object
type: object
type: object
name:
description: name of the task
type: string
runtime:
description: the configuration required for the runtime
application
properties:
applicationClass:
description: application entry point (main) to be executed
type: string
capabilities:
additionalProperties:
description: Capability is a particular feature which
requires a well known set of dependencies
properties:
dependencies:
items:
description: MavenArtifact defines a GAV (Group:Artifact:Version)
Maven artifact
properties:
artifactId:
description: Maven Artifact
type: string
groupId:
description: Maven Group
type: string
version:
description: Maven Version
type: string
required:
- artifactId
- groupId
type: object
type: array
required:
- dependencies
type: object
description: features offered by this runtime
type: object
dependencies:
description: list of dependencies needed to run the
application
items:
description: MavenArtifact defines a GAV (Group:Artifact:Version)
Maven artifact
properties:
artifactId:
description: Maven Artifact
type: string
groupId:
description: Maven Group
type: string
version:
description: Maven Version
type: string
required:
- artifactId
- groupId
type: object
type: array
metadata:
additionalProperties:
type: string
description: set of metadata
type: object
provider:
description: Camel main application provider, ie, Camel
Quarkus
type: string
version:
description: Camel K Runtime version
type: string
required:
- applicationClass
- dependencies
- provider
- version
type: object
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
steps:
description: the list of steps to execute (see pkg/builder/)
items:
type: string
type: array
type: object
kaniko:
description: a KanikoTask, for Kaniko strategy
properties:
baseImage:
description: base image layer
type: string
cache:
description: use a cache
properties:
enabled:
description: true if a cache is enabled
type: boolean
persistentVolumeClaim:
description: the PVC used to store the cache
type: string
type: object
contextDir:
description: can be useful to share info with other tasks
type: string
executorImage:
description: docker image to use
type: string
image:
description: final image name
type: string
name:
description: name of the task
type: string
registry:
description: where to publish the final image
properties:
address:
description: the URI to access
type: string
ca:
description: the configmap which stores the Certificate
Authority
type: string
insecure:
description: if the container registry is insecure (ie,
http only)
type: boolean
organization:
description: the registry organization
type: string
secret:
description: the secret where credentials are stored
type: string
type: object
verbose:
description: log more information
type: boolean
type: object
s2i:
description: a S2iTask, for S2I strategy
properties:
contextDir:
description: can be useful to share info with other tasks
type: string
name:
description: name of the task
type: string
tag:
description: used by the ImageStream
type: string
type: object
spectrum:
description: a SpectrumTask, for Spectrum strategy
properties:
baseImage:
description: base image layer
type: string
contextDir:
description: can be useful to share info with other tasks
type: string
image:
description: final image name
type: string
name:
description: name of the task
type: string
registry:
description: where to publish the final image
properties:
address:
description: the URI to access
type: string
ca:
description: the configmap which stores the Certificate
Authority
type: string
insecure:
description: if the container registry is insecure (ie,
http only)
type: boolean
organization:
description: the registry organization
type: string
secret:
description: the secret where credentials are stored
type: string
type: object
type: object
type: object
type: array
timeout:
description: Timeout defines the Build maximum execution duration.
The Build deadline is set to the Build start time plus the Timeout
duration. If the Build deadline is exceeded, the Build context is
canceled, and its phase set to BuildPhaseFailed.
format: duration
type: string
toolImage:
description: The container image to be used to run the build.
type: string
type: object
status:
description: BuildStatus defines the observed state of Build
properties:
artifacts:
description: a list of artifacts contained in the build
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: the base image used for this build
type: string
conditions:
description: a list of conditions occurred during the build
items:
description: BuildCondition describes the state of a resource at
a certain point.
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: the digest from image
type: string
duration:
description: how long it took for the build Change to Duration / ISO
8601 when CRD uses OpenAPI spec v3 https://github.com/OAI/OpenAPI-Specification/issues/845
type: string
error:
description: the error description (if any)
type: string
failure:
description: the reason of the failure (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: the image name built
type: string
observedGeneration:
description: ObservedGeneration is the most recent generation observed
for this Build.
format: int64
type: integer
phase:
description: describes the phase
type: string
startedAt:
description: the time when it started
format: date-time
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}