= Deployer Trait

// Start of autogenerated code - DO NOT EDIT! (description)
The deployer trait can be used to explicitly select the kind of high level resource that
will deploy the integration.


This trait is available in the following profiles: **Kubernetes, Knative, OpenShift**.

WARNING: The deployer 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:
```
kamel run --trait deployer.[key]=[value] --trait deployer.[key2]=[value2] integration.groovy
```
The following configuration options are available:

[cols="2,1,5a"]
|===
|Property | Type | Description

| deployer.enabled
| bool
| Can be used to enable or disable a trait. All traits share this common property.

| deployer.kind
| string
| Allows to explicitly select the desired deployment kind between `deployment`, `cron-job` or `knative-service` when creating the resources for running the integration.

|===

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