Skip to content

helm: provide option to disable startup- and liveness probes on Envoy #39527

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

mhofstetter
Copy link
Member

@mhofstetter mhofstetter commented May 14, 2025

Currently, the Cilium Envoy DaemonSet uses the /ready endpoint of Envoys admin interface as HTTP startup- and liveness probe. (/healthz redirects to /ready in the bootstrap config).

But using this endpoint for startup- and liveness probes isn't ideal as it can lead to situations where the k8s kubelet tries to restart the Envoy Pod even if Envoy is just in state DRAINING (This is a possible state that also leads to responding with HTTP response code 503 for endpoint /ready).

Therefore, this commit adds the possibility to disable the startup- and liveness probe via the Helm values envoy.startupProbe.enabled & envoy.livenessProbe.enabled.

Note: The Pod still gets restarted if an error occurs during startup (or later). This should be enough for most usecases.

Envoy /ready API: https://www.envoyproxy.io/docs/envoy/latest/operations/admin#get--ready
States: https://www.envoyproxy.io/docs/envoy/latest/api-v3/admin/v3/server_info.proto#enum-admin-v3-serverinfo-state

Currently, the Cilium Envoy DaemonSet uses the `/ready` endpoint of
Envoys admin interface as HTTP startup- and liveness probe. (`/healthz`
redirects to `/ready` in the bootstrap config).

But using this endpoint for startup- and liveness probes isn't ideal as
it can lead to situations where the k8s kubelet tries to restart the
Envoy Pod even if Envoy is just in state `DRAINING` (This is a possible
state that also leads to responding with HTTP response code `503`).

Therefore, this commit adds the possibility to disable the startup- and
liveness probe via the Helm values `envoy.startupProbe.enabled` &
`envoy.livenessProbe.enabled`.

Envoy `/ready` API: https://www.envoyproxy.io/docs/envoy/latest/operations/admin#get--ready
Modes: https://www.envoyproxy.io/docs/envoy/latest/api-v3/admin/v3/server_info.proto#enum-admin-v3-serverinfo-state

Signed-off-by: Marco Hofstetter <marco.hofstetter@isovalent.com>
@mhofstetter mhofstetter added area/proxy Impacts proxy components, including DNS, Kafka, Envoy and/or XDS servers. release-note/misc This PR makes changes that have no direct user impact. area/helm Impacts helm charts and user deployment experience labels May 14, 2025
@mhofstetter
Copy link
Member Author

/test

@mhofstetter mhofstetter marked this pull request as ready for review May 14, 2025 10:39
@mhofstetter mhofstetter requested review from a team as code owners May 14, 2025 10:39
Copy link
Member

@gandro gandro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@maintainer-s-little-helper maintainer-s-little-helper bot added the ready-to-merge This PR has passed all tests and received consensus from code owners to merge. label May 14, 2025
@jrajahalme jrajahalme added this pull request to the merge queue May 14, 2025
Merged via the queue into cilium:main with commit 094a617 May 14, 2025
82 checks passed
@mhofstetter mhofstetter deleted the pr/mhofstetter/helm-envoy-disable-probes branch May 14, 2025 14:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/helm Impacts helm charts and user deployment experience area/proxy Impacts proxy components, including DNS, Kafka, Envoy and/or XDS servers. ready-to-merge This PR has passed all tests and received consensus from code owners to merge. release-note/misc This PR makes changes that have no direct user impact.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants