= 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**.

WARNING: The builder trait is a *platform trait*: disabling it may compromise the platform functionality.

// 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
| Can be used to enable or disable a trait. All traits share this common property.

| builder.verbose
| bool
| Enable verbose logging on build components that support it (e.g. Kaniko build pod).

|===

// End of autogenerated code - DO NOT EDIT! (configuration)
