Commit 0f7b5cb
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-aa65b8f7273e1 parent b8d3df6 commit 0f7b5cb
6 files changed
Lines changed: 770 additions & 5 deletions
File tree
- internal/provider
- tools
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
0 commit comments