loadbalancer/writer: add support for SetIsServiceHealthCheckedFunc#41092
Merged
borkmann merged 1 commit intocilium:mainfrom Aug 14, 2025
Merged
Conversation
The current loadbalancer controlplane always initializes new `BackendParams` with its default value `Unhealthy=false`. This leads to potential issues that backendselection 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 the loadbalancer `Writer`. Service health checking modules can use this hook to mark 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. Signed-off-by: Marco Hofstetter <marco.hofstetter@isovalent.com>
Member
Author
|
/test |
joamaki
added a commit
to joamaki/cilium
that referenced
this pull request
Aug 18, 2025
Since cilium#41092 now marks backends unhealthy until they've been health checked there's no need to restore the quarantined state of backends on restart since they'll anyway start out unhealthy until they've been health checked again. Signed-off-by: Jussi Maki <jussi@isovalent.com>
This was referenced Aug 18, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
BackendParamswith 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
frontendto other modules.Therefore, this commit introduces a new hook
SetIsServiceHealthCheckedFuncto 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.