Skip to content

Commit 0f7b5cb

Browse files
authored
feat: service controller (#192)
feat: service controller Implemented the service controller to handle `LoadBalancer` services using the cloud controller manager. Oxide doesn't have a load balancer service yet so this controller implements the following logic. - Allocate a floating IP and attach it to the first Kubernetes node ordered by name. - Ensure the node's internal IP addresses are listed in the load balancer status. This allows the proper firewall rules (i.e., `nftables`) to be created on the node to allow the traffic. This is needed since Oxide floating IPs are transparent to the instance so traffic enters the instance using the instance's internal IP address as the destination, not the floating IP address. Closes SSE-53. Amp-Thread: https://ampcode.com/threads/T-019cf987-216f-703f-acbd-1d406d081491 Amp-Thread: https://ampcode.com/threads/T-019cfea7-0a17-730f-8b66-aa65b8f7273e
1 parent b8d3df6 commit 0f7b5cb

6 files changed

Lines changed: 770 additions & 5 deletions

File tree

README.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ The Oxide Cloud Controller Manager implements the following Oxide specific
2222
control logic.
2323

2424
* Node Controller
25+
* Service Controller
2526
2627
== Usage
2728

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/oxidecomputer/oxide-cloud-controller-manager
22

3-
go 1.25.3
3+
go 1.26.0
44

55
require (
66
github.com/google/uuid v1.6.0

0 commit comments

Comments
 (0)