Skip to content

feat(stackable-operator): Add OpenShift Route Listener service type - #1291

Open
marc-merino wants to merge 1 commit into
stackabletech:mainfrom
marc-merino:knit/openshift-route-listeners
Open

marc-merino wants to merge 1 commit into
stackabletech:mainfrom
marc-merino:knit/openshift-route-listeners

Conversation

@marc-merino

@marc-merino marc-merino commented Oct 2, 2026 •

Copy link
Copy Markdown

Knit Bundle

View bundle

This PR is part of Knit bundle openshift-route-listeners.

See the other review objects in this bundle:

Bundle id: openshift-route-listeners
Bundle title: Add OpenShift Route support to Listeners

Description

Part of stackabletech/listener-operator#303.

Adds an OpenShiftRoute value to the Listener ServiceType and an optional ListenerClass.spec.openshiftRoute block:

apiVersion: listeners.stackable.tech/v1alpha1
kind: ListenerClass
metadata:
  name: external-route
spec:
  serviceType: OpenShiftRoute
  openshiftRoute:
    port: https        # optional if the Listener has exactly one port
    tls: Passthrough   # default; `None` exposes plain HTTP on port 80

Only the CRD types live here. The listener-operator implementation (creating and cleaning up the Route, and publishing the hostnames OpenShift has accepted for it into Listener.status) is in stackabletech/listener-operator (linked below).

Why a serviceType

The ListenerClass already decides how a Listener is exposed. Making Route one more way of exposing it lets the product operators work unchanged, because they already read Listener.status.ingressAddresses. A separate opt-in field would duplicate that selection logic.

Breaking change

ServiceType is not #[non_exhaustive], so match statements that list every value must handle OpenShiftRoute. Within Stackable, only listener-operator matches on it. The CHANGELOG marks the change as BREAKING.

Checklist

  • CRD documentation for all new fields
  • Regenerated crds/ListenerClass.yaml
  • Round-trip test data covers the new variants
  • Changelog updated
  • CRD changes approved

@stackable-cla

stackable-cla Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@marc-merino

marc-merino commented Oct 2, 2026 •

Copy link
Copy Markdown
Author

Hey everyone! I came across your repository-structure ADR(https://docs.stackable.tech/home/stable/contributor/adr/adr002-choose_repository_structure/), the earlier monorepo discussion(stackabletech/issues#29), and the proposal to bring the core operators together(stackabletech/issues#842). Some of the difficulties you describe are things I’ve been trying to address with a tool I’m building (virtual monorepo with hosting basically), so I thought this might be useful to you.

I used it for this PR group and configured a small virtual monorepo with some of your repositories. You can review both changes together here.

I’d appreciate any feedback on the PRs themselves, as well as the format and review interface; anything you find useful, confusing, missing, or simply don’t like. Seeing how it works for people maintaining these repositories would help me a lot, and hopefully we can help each other.

@NickLarsenNZ Hopefully this explains a bit more 😁

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant