<a id="index"></a>

# Ingress configurator operator

The ingress configurator operator is a Juju charm that acts as a bridge between workloads needing ingress and the route-provider charms that fulfill it. It supports both charm workloads integrating over the `ingress` interface and external backends described by configuration.

The following route-provider interfaces are supported:

- `haproxy-route` and `haproxy-route-tcp` for HAProxy-based deployments.
- `gateway-route` for Kubernetes Gateway API deployments.

## In this documentation

| **Type**        | **General charm documentation**                                                                  | **HAProxy**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | **Gateway API integrator**                                                                                                                                                                                                                                                                                               |
|-----------------|--------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Get started** |                                                                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | [Deploy the ingress-configurator charm with Gateway API](https://canonical.com/juju/docs/ingress-configurator-charm/latest/tutorial/getting-started/index.html.md#tutorial-getting-started)                                                                                                                                                                                           |
| **Operations**  | [Upgrade](https://canonical.com/juju/docs/ingress-configurator-charm/latest/how-to/upgrade/index.html.md#how-to-upgrade)                            | [Route HTTP traffic to a non-charmed workload](https://canonical.com/juju/docs/ingress-configurator-charm/latest/how-to/haproxy/integrate-non-charm-workload/index.html.md#how-to-haproxy-integrate-non-charm-workload) | [Route TCP traffic to a non-charmed workload](https://canonical.com/juju/docs/ingress-configurator-charm/latest/how-to/haproxy/integrate-tcp-non-charm-workload/index.html.md#how-to-haproxy-integrate-tcp-non-charm-workload) | [Add HAProxy features to an ingress requirer](https://canonical.com/juju/docs/ingress-configurator-charm/latest/how-to/haproxy/add-features-to-ingress-requirer/index.html.md#how-to-add-haproxy-features-to-ingress-requirer) | [Load balance a gRPC server](https://canonical.com/juju/docs/ingress-configurator-charm/latest/how-to/haproxy/loadbalancing-grpc/index.html.md#how-to-haproxy-loadbalancing-grpc) | [Add Kubernetes Gateway API features to an ingress requirer](https://canonical.com/juju/docs/ingress-configurator-charm/latest/how-to/gateway-api/add-features-to-ingress-requirer/index.html.md#how-to-add-gateway-api-features-to-ingress-requirer) | [Route traffic for multiple workloads through a single Gateway](https://canonical.com/juju/docs/ingress-configurator-charm/latest/how-to/gateway-api/route-multiple-workloads/index.html.md#how-to-gateway-api-route-multiple-workloads) |
| **Design**      | [Modes of operation](https://canonical.com/juju/docs/ingress-configurator-charm/latest/explanation/modes-of-operation/index.html.md#explanation-modes-of-operation) | [How haproxy-route-tcp works](https://canonical.com/juju/docs/ingress-configurator-charm/latest/explanation/haproxy-route-tcp/index.html.md#explanation-haproxy-route-tcp) | [The cache-config relation](https://canonical.com/juju/docs/ingress-configurator-charm/latest/reference/cache-config/index.html.md#reference-cache-config)                                                                                                                                                                                                                                                                                                                                      | [How gateway-route works](https://canonical.com/juju/docs/ingress-configurator-charm/latest/explanation/gateway-route/index.html.md#explanation-gateway-route) | [The gateway-route relation](https://canonical.com/juju/docs/ingress-configurator-charm/latest/reference/gateway-route/index.html.md#reference-gateway-route)                                                                                                                     |

## How this documentation is organized

This documentation uses the
[Diátaxis documentation structure](https://diataxis.fr/).

* The [Tutorial](https://canonical.com/juju/docs/ingress-configurator-charm/latest/tutorial/index.html.md#tutorial-index) takes you step-by-step through a basic deployment of the Ingress Configurator charm.
* The [How-to guides](https://canonical.com/juju/docs/ingress-configurator-charm/latest/how-to/index.html.md#how-to-index) cover practical tasks for configuring, integrating, and maintaining your deployment.
* [Reference](https://canonical.com/juju/docs/ingress-configurator-charm/latest/reference/index.html.md#reference-index) provides technical details on the relation endpoints provided by this charm.
* [Explanation](https://canonical.com/juju/docs/ingress-configurator-charm/latest/explanation/index.html.md#explanation-index) includes context and overviews on modes of operation and how the routing works.

## Project and community

The Ingress Configurator operator is a member of the Ubuntu family. It’s an open-source project that warmly welcomes community
projects, contributions, suggestions, fixes, and constructive feedback.

- [Code of conduct](https://ubuntu.com/community/docs/ethos/code-of-conduct)
- [File a bug](https://github.com/canonical/ingress-configurator-operator/issues)
- Get support through the [Discourse forum](https://discourse.charmhub.io/)
- Join our [online chat](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)
- [Contribute](https://github.com/canonical/ingress-configurator-operator/blob/main/CONTRIBUTING.md)

Thinking about using the Ingress Configurator operator for your next project?
[Get in touch](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)!
