traefik-route-k8s

  • Canonical Observability
Channel Revision Published Runs on
latest/stable 23 04 Jun 2024
Ubuntu 20.04
latest/candidate 23 22 May 2024
Ubuntu 20.04
latest/beta 23 24 Apr 2024
Ubuntu 20.04
latest/edge 27 19 Sep 2024
Ubuntu 20.04
juju deploy traefik-route-k8s
Show information

Platform:

Ubuntu
20.04

charms.traefik_route_k8s.v0.traefik_route

[DEPRECATED!] Interface Library for traefik_route.

This is a DEPRECATED version of the traefik_route interface library.

It was dropped and no longer maintained under traefik-route-k8s-operator, which will soon be archived.

traefik_route v0 is now maintained under traefik-k8s-operator.

Please fetch the new library with charmcraft fetch-lib charms.traefik_k8s.v0.traefik_route.


class TraefikRouteException

Description

Base class for exceptions raised by TraefikRoute. None

class UnauthorizedError

Description

Raised when the unit needs leadership to perform some action. None

class TraefikRouteProviderReadyEvent

Description

Event emitted when Traefik is ready to provide ingress for a routed unit. None

class TraefikRouteProviderDataRemovedEvent

Description

Event emitted when a routed ingress relation is removed. None

class TraefikRouteRequirerReadyEvent

Description

Event emitted when a unit requesting ingress has provided all data Traefik needs. None

class TraefikRouteRequirerEvents

Description

Container for TraefikRouteRequirer events. None

class TraefikRouteProviderEvents

Description

Container for TraefikRouteProvider events. None

class TraefikRouteProvider

Implementation of the provider of traefik_route.

Description

This will presumably be owned by a Traefik charm. The main idea is that Traefik will observe the ready event and, upon receiving it, will fetch the config from the TraefikRoute's application databag, apply it, and update its own app databag to let Route know that the ingress is there. The TraefikRouteProvider provides api to do this easily.

Methods

TraefikRouteProvider. __init__( self , charm: CharmBase , relation_name: str , external_host: str )

Constructor for TraefikRouteProvider.

Arguments

charm

The charm that is instantiating the instance.

relation_name

The name of the relation relation_name to bind to (defaults to "traefik-route").

external_host

The external host.

scheme

The scheme.

TraefikRouteProvider. external_host( self )

Description

Return the external host set by Traefik, if any. None

TraefikRouteProvider. scheme( self )

Description

Return the scheme set by Traefik, if any. None

TraefikRouteProvider. relations( self )

Description

The list of Relation instances associated with this endpoint. None

TraefikRouteProvider. update_traefik_address( self )

Description

Ensure that requirers know the external host for Traefik. None

TraefikRouteProvider. is_ready( self , relation: Relation )

Whether TraefikRoute is ready on this relation.

Description

Returns True when the remote app shared the config; False otherwise.

TraefikRouteProvider. get_config( self , relation: Relation )

Description

Renamed to get_dynamic_config. None

TraefikRouteProvider. get_dynamic_config( self , relation: Relation )

Description

Retrieve the dynamic config published by the remote application. None

TraefikRouteProvider. get_static_config( self , relation: Relation )

Description

Retrieve the static config published by the remote application. None

class TraefikRouteRequirer

Wrapper for the requirer side of traefik-route.

Description

The traefik_route requirer will publish to the application databag an object like: { 'config': <Traefik_config> 'static': <Traefik_config> # optional }

NB: TraefikRouteRequirer does no validation; it assumes that the traefik-route-k8s charm will provide valid yaml-encoded config. The TraefikRouteRequirer provides api to store this config in the application databag.

Methods

TraefikRouteRequirer. __init__( self , charm: CharmBase , relation: Relation , relation_name: str )

TraefikRouteRequirer. external_host( self )

Description

Return the external host set by Traefik, if any. None

TraefikRouteRequirer. scheme( self )

Description

Return the scheme set by Traefik, if any. None

TraefikRouteRequirer. is_ready( self )

Description

Is the TraefikRouteRequirer ready to submit data to Traefik? None

TraefikRouteRequirer. submit_to_traefik( self , config: dict , static )

Relay an ingress configuration data structure to traefik.

Description

This will publish to the traefik-route relation databag a chunk of Traefik dynamic config that the traefik charm on the other end can pick up and apply.

Use static if you need to update traefik's static configuration. Note that this will force traefik to restart to comply.