An open API service indexing awesome lists of open source software.

https://github.com/canonical/nginx-ingress-integrator-operator

nginx-ingress-integrator-operator - charm repository.
https://github.com/canonical/nginx-ingress-integrator-operator

charm platform-engineering product-kubernetes-ingress squad-emea

Last synced: 27 days ago
JSON representation

nginx-ingress-integrator-operator - charm repository.

Awesome Lists containing this project

README

          

**This charm is under maintenance mode-only since 1 January 2026. It means that only security issues will be addressed, no new features will be implemented on the charm. Users are invited to look at the [Gateway API integrator charm](https://charmhub.io/gateway-api-integrator) to address their ingress needs on Kubernetes.**

# Nginx Ingress Integrator Operator

A [Juju](https://juju.is/) [charm](https://documentation.ubuntu.com/juju/3.6/reference/charm/) deploying and managing external access to HTTP/HTTPS services in a
Kubernetes cluster through an Nginx Ingress resource. This charm requires the Kubernetes cluster in question to have an
[Nginx Ingress Controller](https://docs.nginx.com/nginx-ingress-controller/) already deployed into it. The Nginx Integrator
Operator is a workload-less charm that allows other charms to configure an Nginx Ingress resource.

This charm simplifies exposing services running inside a Kubernetes cluster to
external clients. It offers TLS termination as well as easy configuration of a
number of advanced features including rate limiting, restricting access to
specific client IP source ranges, and OWASP ModSecurity Core Rule Set (CRS).

As such, the charm makes it easy for charm developers to provide external
access to their HTTP workloads in Kubernetes by easy integration offered through
[the charm's ingress library](https://charmhub.io/nginx-ingress-integrator/libraries/ingress).

For DevOps and SRE teams, providing ingress for charms that support a relation
to this charm will be possible using a simple `juju integrate` command.

## Documentation

Our documentation is stored in the `docs` directory.
It is based on the Canonical starter pack
and hosted on [Read the Docs](https://about.readthedocs.com/). In structuring,
the documentation employs the [Diátaxis](https://diataxis.fr/) approach.

You may open a pull request with your documentation changes, or you can
[file a bug](https://github.com/canonical/nginx-ingress-integrator-operator/issues) to provide constructive feedback or suggestions.

To run the documentation locally before submitting your changes:

```bash
cd docs
make run
```

GitHub runs automatic checks on the documentation
to verify spelling, validate links and style guide compliance.

You can (and should) run the same checks locally:

```bash
make spelling
make linkcheck
make vale
make lint-md
```

## Get started

Refer to the [tutorial](https://charmhub.io/nginx-ingress-integrator/docs/getting-started) for more details on getting started.

### Basic operations

#### Secure an ingress with TLS
Refer to [How to secure an Ingress with TLS](https://charmhub.io/nginx-ingress-integrator/docs/secure-an-ingress-with-tls) for step-by-step instructions.

#### Add the ingress relation
Refer to [How to add the Ingress relation](https://charmhub.io/nginx-ingress-integrator/docs/add-the-nginx-route-relation) for step-by-step instructions.

## Integrations

- [ingress](https://charmhub.io/nginx-ingress-integrator/integrations#ingress): Ingress interface that allows to
provide an Ingress for the charms supporting this interface. Charms can get an Ingress using the `ingress` or the
`nginx-route` interfaces. Prefer `ingress` if you want to use generic features.
- [nginx-route](https://charmhub.io/nginx-ingress-integrator/integrations#nginx-route): Ingress interface that allows to
provide an Ingress for the charms supporting this interface. Charms can get an Ingress using the `ingress` or the
`nginx-route` interfaces. If you want to use Nginx specific features, use `nginx-route`.
- [certificates](https://charmhub.io/nginx-ingress-integrator/integrations#certificates): Requires `tls-certificates`
interface that facilitates the use of a TLS certificate.

Refer to [Integrations](https://charmhub.io/nginx-ingress-integrator/integrations/) for more information
about integrations.

## Learn more
* [Read more](https://charmhub.io/nginx-ingress-integrator)
* [Troubleshooting](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)

## Project and community
* [Issues](https://github.com/canonical/nginx-ingress-integrator-operator/issues)
* [Contributing](https://charmhub.io/nginx-ingress-integrator/docs/contribute)
* [Matrix](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)