Skip to content
Open
Show file tree
Hide file tree
Changes from 5 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
3 changes: 3 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ Unreleased
``traefik``, the operator creates a ClusterIP service with Traefik
IngressRouteTCP and MiddlewareTCP resources instead of a cloud LoadBalancer.

* Replaced grand-central Ingress with HTTPRoute and Traefik Middlewares when
``spec.cluster.exposure`` is set to ``traefik``.

2.60.0 (2026-04-22)
-------------------

Expand Down
23 changes: 23 additions & 0 deletions crate/operator/exposure.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@
_lb_annotations_to_remove,
get_owner_references,
)
from crate.operator.grand_central import (
create_grand_central_exposure,
delete_grand_central_ingress,
delete_grand_central_traefik_resources,
read_grand_central_deployment,
)
from crate.operator.utils import crate
from crate.operator.utils.k8s_api_client import GlobalApiClient
from crate.operator.utils.kopf import StateBasedSubHandler
Expand Down Expand Up @@ -614,3 +620,20 @@ async def handle(
postgres_port,
logger,
)

# grand-central: only if GC is deployed in this cluster
gc_deployment = await read_grand_central_deployment(namespace, name)
if gc_deployment:
if old_exposure == "traefik":
await delete_grand_central_traefik_resources(namespace, name, logger)
else:
await delete_grand_central_ingress(namespace, name, logger)

await create_grand_central_exposure(
Comment thread
tomach marked this conversation as resolved.
namespace=namespace,
name=name,
spec=spec,
meta=body["metadata"],
logger=logger,
use_traefik=(new_exposure == "traefik"),
)
Loading