The traefik charm is a charm to provide ingress to another charmed application ‘the juju way’. The idea is that if a charm integrates with traefik-k8s
then you can relate the two applications and your application will receive the url at which ingress is made available.
The traefik charm supports two standardized interfaces:
-
Using this interface, each charmed application can request a single, cluster-unique url for ingress. You can choose between a domain-name-based url (
your.parameters.domain.com
) and a path-based url (domain.com\your\parameters
). -
Using this interface, each charmed application can request a cluster-unique url for each existing unit. This is for applications such as prometheus, where each remote-write endpoint needs to be routed to separately, and database applications who wish to do client-side load-balancing.
Traefik-route
The traefik route charm is a proxy charm that sits between traefik and a charm in need of ingress, and is used to provide low-level access to traefik configuration, as well as to allow per-relation configuration.
Want to have full access to all the expressive power of traefik’s routing configuration? Want to have one traefik instance, and provide domain-name-based url routing to some charms, but path-based url routing to some others? This is how you do it.
How to add ingress to your charm by integrating with traefik
Step by step, we look at a concrete use case and show how we added ingress to zinc-k8s.
[WIP]