Skip to content
This repository has been archived by the owner on Nov 13, 2024. It is now read-only.

Deprecate traefik_route v0 library #60

Merged
merged 3 commits into from
Sep 18, 2024
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 22 additions & 69 deletions lib/charms/traefik_route_k8s/v0/traefik_route.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,75 +2,16 @@
# Copyright 2022 Canonical Ltd.
# See LICENSE file for licensing details.

r"""# Interface Library for traefik_route.

This library wraps relation endpoints for traefik_route. The requirer of this
relation is the traefik-route-k8s charm, or any charm capable of providing
Traefik configuration files. The provider is the traefik-k8s charm, or another
charm willing to consume Traefik configuration files.

## Getting Started

To get started using the library, you just need to fetch the library using `charmcraft`.

```shell
cd some-charm
charmcraft fetch-lib charms.traefik_route_k8s.v0.traefik_route
```

To use the library from the provider side (Traefik):

```yaml
requires:
traefik_route:
interface: traefik_route
limit: 1
```

```python
from charms.traefik_route_k8s.v0.traefik_route import TraefikRouteProvider

class TraefikCharm(CharmBase):
def __init__(self, *args):
# ...
self.traefik_route = TraefikRouteProvider(self)

self.framework.observe(
self.traefik_route.on.ready, self._handle_traefik_route_ready
)

def _handle_traefik_route_ready(self, event):
config: str = self.traefik_route.get_config(event.relation) # yaml
# use config to configure Traefik
```

To use the library from the requirer side (TraefikRoute):

```yaml
requires:
traefik-route:
interface: traefik_route
limit: 1
optional: false
```

```python
# ...
from charms.traefik_route_k8s.v0.traefik_route import TraefikRouteRequirer

class TraefikRouteCharm(CharmBase):
def __init__(self, *args):
# ...
traefik_route = TraefikRouteRequirer(
self, self.model.relations.get("traefik-route"),
"traefik-route"
)
if traefik_route.is_ready():
traefik_route.submit_to_traefik(
config={'my': {'traefik': 'configuration'}}
)
r"""# [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 import with `charmcraft fetch-lib charms.traefik_k8s.v0.traefik_route`.

```
"""
import logging
from typing import Optional
Expand All @@ -88,7 +29,7 @@ def __init__(self, *args):

# Increment this PATCH version before using `charmcraft publish-lib` or reset
# to 0 if you are raising the major API version
LIBPATCH = 10
LIBPATCH = 11

log = logging.getLogger(__name__)

Expand Down Expand Up @@ -157,6 +98,12 @@ def __init__(
external_host: The external host.
scheme: The scheme.
"""
log.warning(
"The ``traefik_route v0`` library is DEPRECATED "
"and no longer maintained under ``traefik-route-k8s-operator``. "
"``traefik_route v0`` is now maintained under ``traefik-k8s-operator``. "
"Please import with ``charmcraft fetch-lib charms.traefik_k8s.v0.traefik_route``."
michaeldmitry marked this conversation as resolved.
Show resolved Hide resolved
)
super().__init__(charm, relation_name)
self._stored.set_default(external_host=None, scheme=None)

Expand Down Expand Up @@ -292,6 +239,12 @@ class TraefikRouteRequirer(Object):
_stored = StoredState()

def __init__(self, charm: CharmBase, relation: Relation, relation_name: str = "traefik-route"):
log.warning(
"The ``traefik_route v0`` library is DEPRECATED "
"and no longer maintained under ``traefik-route-k8s-operator``. "
"``traefik_route v0`` is now maintained under ``traefik-k8s-operator``. "
"Please import with ``charmcraft fetch-lib charms.traefik_k8s.v0.traefik_route``."
michaeldmitry marked this conversation as resolved.
Show resolved Hide resolved
)
super(TraefikRouteRequirer, self).__init__(charm, relation_name)
self._stored.set_default(external_host=None, scheme=None)

Expand Down
Loading