Skip to content

jaredallard/ingress-anubis

Repository files navigation

ingress-anubis

Kubernetes ingress controller for anubis.

Disclaimer

This is NOT AT ALL production software and may never be. See limitations for issues that are present and may never be fixed!

Goals

  • Wrap ingress-nginx with anubis in front of simple ingresses (one service).
  • Only require ingressClassName to be set to anubis to enable, and summarily disable.

Limitations

In line with the above goals, the following limitations are currently present:

  • An ingress with more than one target will only point to the first found target. This is because anubis only supports one target and this controller only manages one instance of anubis per ingress, currently.
  • Resources created by the controller are not reconciled if outside changes occur unless the source ingress is updated, triggering the reconciliation loop.

Installing

Your cluster should already have the following installed:

helm install --create-namespace --namespace ingress-anubis \
  ingress-anubis oci://ghcr.io/jaredallard/helm-charts/ingress-anubis

Configuration

For available configuration options, see the config key in values.yaml, or in config.go until further documentation is written.

Ingress Configuration

Anubis can also be configured per-ingress through the following annotations on the ingress:

  • ingress-anubis.jaredallard.github.com/serve-robots-txt (bool)
  • ingress-anubis.jaredallard.github.com/og-passthrough (bool)
  • ingress-anubis.jaredallard.github.com/difficulty (int)
  • ingress-anubis.jaredallard.github.com/ingress-class (string)
    • Set the ingressClassName value for the wrapped ingress. The default is nginx. Note that nginx is the only officially supported setup right now.
  • ingress-anubis.jaredallard.github.com/env-from-cm (string)
  • ingress-anubis.jaredallard.github.com/env-from-sec (string)

See anubis environment variable documentation for more information on these values and what they do.

Multiple Instances

Multiple instances of ingress-anubis can be ran under different ingress class names, by setting INGRESS_CLASS_NAME (see Configuration for how to set this).

However, note that they must be ran in different namespaces as well.

Usage

Once installed, simply set ingressClassName to anubis and watch as your site is now behind it 🎉!

To configure various settings, see configuration.

Development

We use mise to manage the versions of our tools in usage as well as for task management. Check out the mise documentation to get started!

License

GPL-3.0

About

Ingress anubis controller (chaining ingress-nginx)

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors 2

  •  
  •