spec(platform): add ManagedLoadBalancer kind - #119
Closed
JuanmaBM wants to merge 2 commits into
Closed
Conversation
Introduce ManagedLoadBalancer as a fleet-scoped managed resource representing a shared cloud load balancer. Multiple Gateways route through a single LB via GRPCRoutes, replacing the per-gateway LB model that exhausts subnet IPs. Follows the ManagedCluster/ManagedDatabase pattern with a simple FK (Gateway.load_balancer_id). Backward compatible: gateways without the FK keep existing per-tenant behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Cloud drivers provision load balancers via cloud APIs (AWS SDK, IBM Cloud SDK) instead of only through Kubernetes resources. Required for multi-cloud support and the gateway/sandbox cluster split. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Collaborator
Author
|
Won't implemented |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ManagedLoadBalancerspec (specs/platform/managed-loadbalancer.spec.md) defining a fleet-scoped managed resource for shared cloud load balancersdata-model.spec.mdwith the new entity, ERD, FK on Gateway (load_balancer_id), API endpoints, and design decisionindex.spec.mdwith the new spec registry entryMotivation
Each OpenShell Gateway provisions its own Gateway API Gateway + cloud load balancer. On AWS, each ELB requires 8+ free IPs in the subnet. The staging cluster has exhausted its subnet IPs — 3 out of 6 tenant gateways are stuck in Pending with
InvalidSubnet.ManagedLoadBalancerfollows theManagedCluster/ManagedDatabasepattern: a fleet-scoped resource with a simple FK from Gateway. Multiple gateways share one LB via GRPCRoutes. The existingGATEWAY_API_GATEWAY_NAMEenv var is the interim mechanism; this spec replaces it with a first-class API resource.Key Design Points
Gateway.load_balancer_idis optional — existing gateways without it keep per-tenant LB behavior (backward compat)*.apps.example.comwithallowedRoutes.namespaces.from: Allroute_addresson GatewayTest plan
ManagedLoadBalancervs alternatives) in comments🤖 Generated with Claude Code