= Ingress Trait

// Start of autogenerated code - DO NOT EDIT! (description)
The Ingress trait can be used to expose the service associated with the integration
to the outside world with a Kubernetes Ingress.

It's enabled by default whenever a Service is added to the integration (through the `service` trait).


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

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

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

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

| ingress.host
| string
| **Required**. To configure the host exposed by the ingress.

| ingress.auto
| bool
| To automatically add an ingress whenever the integration uses a HTTP endpoint consumer.

|===

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