Add ingress to the charm

This commit is contained in:
2026-02-19 10:49:43 +01:00
parent 2dc1a39e0b
commit 8cdde18478
7 changed files with 1136 additions and 4 deletions
+15
View File
@@ -8,6 +8,11 @@ import logging
import time
import ops
from charms.traefik_k8s.v2.ingress import (
IngressPerAppReadyEvent,
IngressPerAppRequirer,
IngressPerAppRevokedEvent,
)
# A standalone module for workload-specific logic (no charming concerns):
import charmed_server
@@ -24,6 +29,16 @@ class CharmedServerCharm(ops.CharmBase):
framework.observe(self.on.start, self._on_start)
framework.observe(self.on.config_changed, self._on_config_changed)
self.ingress = IngressPerAppRequirer(self, port=80)
framework.observe(self.ingress.on.ready, self._on_ingress_ready)
framework.observe(self.ingress.on.revoked, self._on_ingress_revoked)
def _on_ingress_ready(self, event: IngressPerAppReadyEvent):
logger.info("This app's ingress URL: %s", event.url)
def _on_ingress_revoked(self, event: IngressPerAppRevokedEvent):
logger.info("This app no longer has ingress")
def _on_install(self, event: ops.InstallEvent):
"""Install the workload on the machine."""
charmed_server.install()