omni/internal/backend/workloadproxy/lb
Utku Ozdemir 8a93c2d5ba
Some checks are pending
default / default (push) Waiting to run
default / e2e-backups (push) Blocked by required conditions
default / e2e-forced-removal (push) Blocked by required conditions
default / e2e-scaling (push) Blocked by required conditions
default / e2e-short (push) Blocked by required conditions
default / e2e-short-secureboot (push) Blocked by required conditions
default / e2e-templates (push) Blocked by required conditions
default / e2e-upgrades (push) Blocked by required conditions
default / e2e-workload-proxy (push) Blocked by required conditions
refactor: bring back the reverted new workload proxy dialing logic
This PR brings back a small part of the changes introduced in https://github.com/siderolabs/omni/pull/929, but in a simpler way.

- Copy and paste/import from the `go-loadbalancer` library the required structures of probing a set of upstreams and picking a healthy one.
- Replace the "full" TCP load balancers in the workload proxy handler with these simple upstream-probers (still call them `LB`).
- Remove the in-memory transport from the workload proxy completely - instead, use a smart dial function which picks a healthy upstream for the given cluster+alias.

This should result in a non-leaky, simpler and more robust proxying compared to the current implementation.

Leave out the other changes for now, as they need further evaluation/testing, particularly the aggregated/stopped health checks.

Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
2025-06-18 17:58:43 +02:00
..
lb.go refactor: bring back the reverted new workload proxy dialing logic 2025-06-18 17:58:43 +02:00