fix(k8s): honor health_check.enabled in the deployment template - #257
Merged
Merged
Conversation
agustincelentano
approved these changes
Sep 11, 2026
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.
What
health_check.enabledhas been in the scope schema since the first commit and no template ever read it — turning the health check off hid the other health-check fields in the form and changed nothing else. The deployment template now drops the liveness, readiness and startup probes from all four containers (main traffic-manager sidecar, HTTP and GRPC additional-port sidecars, application) when the flag is explicitlyfalse.azureandazure-aroreuse this template, so they get the fix too.Why we want it
An application that does not serve the health endpoint is killed in a restart loop while the UI says its health check is off.
The criterion behind the fix
Probes are removed only when the key is present and false. Scopes created before the flag existed have no
enabledkey at all — the schemadefaultapplies at creation, not retroactively — so a plain truthiness check would have stripped the probes from every legacy scope on its next deploy. The render forenabled: true, for a missing key, and fortype: TCPis byte-identical tobeta.Deliberately not done: the ALB
healthcheck-*annotations inservice.yaml.tplare untouched. AWS always health-checks a target group, so that stays the backstop for ALB-fronted traffic — and the limitation is that such a target can remain unhealthy. It needs its own decision.Covered by
k8s/deployment/tests/health_check_disabled.bats.