oxidecomputer / oxidecomputer/oxide-cloud-controller-manager

Make load balancer names collision-proof

Open
#264 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Bug Kubernetes Cloud Controller Manager (CCM)
Dominant language
Go
Stars
6
Forks
2
Avg merge
2h 5m
Merged PRs (30d)
14

Description

Context

GetLoadBalancerName (internal/provider/load_balancer.go) builds cluster-namespace-service and truncates at 63 chars. Two long-named services can truncate to the identical name and end up sharing one floating IP — each reconcile loop steals it from the other, silently.

Scope

Add a suffix derived from the service UID (the upstream cloudprovider.DefaultLoadBalancerName idiom) so truncated names remain unique.

⚠️ This changes the computed name for existing floating IPs. Include a migration note or a name-compatibility lookup in the design so existing services don't orphan their floating IPs on upgrade.

Done when

Two services whose composite names truncate identically get distinct floating IPs, with a documented upgrade path.

Related: ownership verification before delete (ships best in the same release, single migration note).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in internal/provider/load_balancer.go at GetLoadBalancerName and compare its naming logic with the upstream cloudprovider.DefaultLoadBalancerName idiom. Define how the service UID suffix preserves uniqueness after truncation, then document either a migration path or compatibility lookup for existing floating IPs. Done means identically truncated service names receive distinct floating IPs without orphaning existing ones.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
cloud, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.