Skip to content

Add multikeylistener#2372

Draft
c-kruse wants to merge 11 commits intoskupperproject:mainfrom
c-kruse:add-multikeylistener
Draft

Add multikeylistener#2372
c-kruse wants to merge 11 commits intoskupperproject:mainfrom
c-kruse:add-multikeylistener

Conversation

@c-kruse
Copy link
Contributor

@c-kruse c-kruse commented Feb 4, 2026

Preview implementation of #2301

Images built
quay.io/ckruse/skupper/controller:add-multikeylistener
quay.io/ckruse/skupper/kube-adaptor:add-multikeylistener
quay.io/ckruse/skupper/skupper-router:add-multikeylistener

@c-kruse c-kruse added the do-not-merge Work In Progress label Feb 4, 2026
@c-kruse c-kruse force-pushed the add-multikeylistener branch from 82e9a45 to ea9cd47 Compare February 5, 2026 06:10
Introduce the MultiKeyListener custom resource type with support for
priority-based failover across multiple routing keys. This commit adds:

- CRD schema definition (skupper_multikeylistener_crd.yaml)
- API types with PriorityFailover strategy (multikeylistener_types.go)
- Generated clientset, informers, and listers

Signed-off-by: Christian Kruse <christian@c-kruse.com>
Add ListenerAddress entity and multiAddressStrategy field to support
priority-based failover routing. Key changes:

- Add ListenerAddress type for mapping priority values to routing keys
- Add ListenerAddressMap to BridgeConfig alongside TcpListeners/TcpConnectors
- Extend TcpEndpoint with MultiAddressStrategy field
- Update AMQP management to query/create/delete listenerAddress entities
- Update config marshaling/unmarshaling for listenerAddress entities
- Add ListenerAddressDifference for config synchronization

Signed-off-by: Christian Kruse <christian@c-kruse.com>
Add core MultiKeyListener support to the site bindings package

Signed-off-by: Christian Kruse <christian@c-kruse.com>
Add the watcher infrastructure for MultiKeyListener resources

Signed-off-by: Christian Kruse <christian@c-kruse.com>
Add MultiKeyListener handling to the kube site ExtendedBindings:

- Track multiKeyListenerHosts for service exposure management
- Implement updateBridgeConfigForMultiKeyListener with port mapping
- Add multiKeyListenerUpdated for exposing services
- Add multiKeyListenerDeleted for cleaning up exposed services
- Implement UpdateMultiKeyListener/GetMultiKeyListener methods
- Update bindings_test.go to include ListenerAddresses in expected configs

Signed-off-by: Christian Kruse <christian@c-kruse.com>
Signed-off-by: Christian Kruse <christian@c-kruse.com>
Add status reconciliation that updates MultiKeyListener READY condition
based on matching connectors in the network. The MultiKeyListener becomes
READY when any routing key in its strategy has a reachable connector.

Signed-off-by: Christian Kruse <christian@c-kruse.com>
Signed-off-by: Christian Kruse <christian@c-kruse.com>
@c-kruse c-kruse force-pushed the add-multikeylistener branch from a279432 to 64680a5 Compare February 6, 2026 19:24
Signed-off-by: Christian Kruse <christian@c-kruse.com>
Signed-off-by: Christian Kruse <christian@c-kruse.com>
@c-kruse c-kruse force-pushed the add-multikeylistener branch from b03d26f to 69497ae Compare February 15, 2026 18:11
Signed-off-by: Christian Kruse <christian@c-kruse.com>
@c-kruse c-kruse force-pushed the add-multikeylistener branch from 2b4b844 to a16dbcf Compare February 16, 2026 23:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge Work In Progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant