oxidecomputer / oxidecomputer/oxide-cloud-controller-manager
Verify ownership before detaching/deleting a floating IP
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 6
- Forks
- 2
- Avg merge
- 2h 5m
- Merged PRs (30d)
- 14
Description
Context
EnsureLoadBalancerDeleted (internal/provider/load_balancer.go) detaches and deletes any floating IP whose name matches the computed load balancer name — including one a user created by hand. Oxide has no resource tags (HasClusterID() is false), so there's no ownership marker today.
Scope
The CCM already sets Description: "Managed by oxide-cloud-controller-manager." on create. Check that description before detach/delete (in both EnsureLoadBalancerDeleted and the recreate path in ensureLoadBalancer) and refuse with a clear error/event on mismatch.
Done when
A name-colliding, user-created floating IP is never deleted by the CCM, and the refusal is visible in events/logs.
Related: collision-proof LB names — ship both in the same release with one migration note.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in internal/provider/load_balancer.go at EnsureLoadBalancerDeleted and the recreate path in ensureLoadBalancer, then trace how the CCM creates floating IPs and sets their description. Ensure both paths refuse to detach or delete a name-colliding IP without the managed description, with the refusal visible in events or logs; verify that a user-created IP remains intact.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cloud, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100