blob: deb3481a8828ed7f73a88e073a093d4b6e581549 [file] [log] [blame]
= Builder Trait
// Start of autogenerated code - DO NOT EDIT! (description)
The builder trait is internally used to determine the best strategy to
build and configure IntegrationKits.
This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.
NOTE: The builder trait is a *platform trait* and cannot be disabled by the user.
// End of autogenerated code - DO NOT EDIT! (description)
// Start of autogenerated code - DO NOT EDIT! (configuration)
== Configuration
Trait properties can be specified when running any integration with the CLI:
[source,console]
----
$ kamel run --trait builder.[key]=[value] --trait builder.[key2]=[value2] integration.groovy
----
The following configuration options are available:
[cols="2m,1m,5a"]
|===
|Property | Type | Description
| builder.enabled
| bool
| Deprecated: no longer in use.
| builder.verbose
| bool
| Enable verbose logging on build components that support it (e.g. Kaniko build pod).
Deprecated no longer in use
| builder.properties
| []string
| A list of properties to be provided to the build task
| builder.strategy
| string
| The strategy to use, either `pod` or `routine` (default `routine`)
| builder.base-image
| string
| Specify a base image
| builder.incremental-image-build
| bool
| Use the incremental image build option, to reuse existing containers (default `true`)
| builder.order-strategy
| string
| The build order strategy to use, either `dependencies`, `fifo` or `sequential` (default `sequential`)
| builder.request-cpu
| string
| When using `pod` strategy, the minimum amount of CPU required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
| builder.request-memory
| string
| When using `pod` strategy, the minimum amount of memory required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
| builder.limit-cpu
| string
| When using `pod` strategy, the maximum amount of CPU required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
| builder.limit-memory
| string
| When using `pod` strategy, the maximum amount of memory required by the pod builder.
Deprecated: use TasksRequestCPU instead with task name `builder`.
| builder.maven-profiles
| []string
| A list of references pointing to configmaps/secrets that contains a maven profile.
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).
| builder.tasks
| []string
| A list of tasks to be executed (available only when using `pod` strategy) with format `<name>;<container-image>;<container-command>`.
| builder.tasks-filter
| string
| 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`, `spectrum`, `s2i`)
if you need to execute them. Useful only with `pod` strategy.
| builder.tasks-request-cpu
| []string
| A list of request cpu configuration for the specific task with format `<task-name>:<request-cpu-conf>`.
| builder.tasks-request-memory
| []string
| A list of request memory configuration for the specific task with format `<task-name>:<request-memory-conf>`.
| builder.tasks-limit-cpu
| []string
| A list of limit cpu configuration for the specific task with format `<task-name>:<limit-cpu-conf>`.
| builder.tasks-limit-memory
| []string
| A list of limit memory configuration for the specific task with format `<task-name>:<limit-memory-conf>`.
| builder.node-selector
| map[string]string
| Defines a set of nodes the builder pod is eligible to be scheduled on, based on labels on the node.
| builder.annotations
| map[string]string
| When using `pod` strategy, annotation to use for the builder pod.
|===
// End of autogenerated code - DO NOT EDIT! (configuration)
== Node Selectors
With this trait you will also be able to define node selectors for the `builder` pod when using the `pod`` build strategy.
Here is a simple example:
.template.yaml
[source,yaml]
----
traits:
builder:
nodeSelector:
size: large
----
The `builder` pod will be created with a node selector that allows it to run only on nodes where the `size` label is equal to `large`.
Node selectors can be specified when running an integration with the CLI:
[source,console]
----
$ kamel run --trait builder.node-selector.'size'=large integration.groovy
----