loadbalancer/writer: add support for SetIsServiceHealthCheckedFunc #41092
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current loadbalancer controlplane always initializes new
BackendParams
with its default value
Unhealthy=false
. This leads to potential issues thatbackendselection for a given service doesn't respect the circumstance that there might be
service health check implementations that should report the backend health
state before exposing that service backend via statedb
frontend
to other modules.Therefore, this commit introduces a new hook
SetIsServiceHealthCheckedFunc
to theloadbalancer
Writer
. Service health checking modules can use this hook tomark that a given service is health checked. Backendselection for a service will use
that hook and only include a backend to a health-checked service frontend if the
health state for the backend has already been reported once. This prevents prematurely
exposing unhealthy backends (or their incorrect health status) to other modules.