Skip to content

[stable/node-local-dns] Make liveness probe configurable#789

Open
paddy-bedraggled wants to merge 1 commit intodeliveryhero:masterfrom
paddy-bedraggled:feat/node-local-dns-liveness-probe-config
Open

[stable/node-local-dns] Make liveness probe configurable#789
paddy-bedraggled wants to merge 1 commit intodeliveryhero:masterfrom
paddy-bedraggled:feat/node-local-dns-liveness-probe-config

Conversation

@paddy-bedraggled
Copy link
Copy Markdown

Overview

This PR makes the node-local-dns chart liveness probe configurable instead of hardcoding the probe request to /health on config.healthPort with fixed timing values. The change is backward-compatible: existing installs keep the same effective probe behavior unless the new livenessProbe values are explicitly set.

Context & Rationale

In our network, we want this service to listen only locally on the node for NodeLocal DNS traffic and not rely on externally reachable probe behavior. In particular, when the health listener is bound to a local node address, the liveness probe needs to be able to target that same host explicitly, for example via livenessProbe.httpGet.host.

Without this, the chart only allows configuring the probe port, which is not sufficient for environments where the health endpoint should remain local to the node and not be exposed more broadly just to satisfy liveness checks.

Detailed Changes

Probe templating

  • stable/node-local-dns/templates/daemonset.yaml: Replaced the hardcoded liveness probe with values-driven fields.
  • Added support for:
    • livenessProbe.httpGet.host
    • livenessProbe.httpGet.path
    • livenessProbe.httpGet.port
    • livenessProbe.httpGet.scheme
    • livenessProbe.initialDelaySeconds
    • livenessProbe.timeoutSeconds
    • livenessProbe.periodSeconds
    • livenessProbe.successThreshold
    • livenessProbe.failureThreshold
  • Kept config.healthPort as the fallback for the probe port so existing releases do not need to change values.

Chart values

  • stable/node-local-dns/values.yaml: Added a new livenessProbe configuration block with defaults matching the previous chart behavior.
  • This allows users to set a local probe target such as:
    livenessProbe:
      httpGet:
        host: 169.254.20.10
        port: 8080

Documentation and versioning

  • stable/node-local-dns/README.md: Documented the new livenessProbe values.
  • stable/node-local-dns/Chart.yaml: Bumped the chart version from 2.7.0 to 2.7.1.

Verification

  • helm lint stable/node-local-dns
  • Rendered the chart with defaults using helm template test stable/node-local-dns
  • Verified the rendered default probe remains effectively unchanged:
    • path /health
    • port 8080 via config.healthPort
    • initialDelaySeconds: 60
    • timeoutSeconds: 5
  • Rendered the chart with --set livenessProbe.httpGet.host=169.254.20.10 --set livenessProbe.httpGet.port=8080
  • Confirmed the manifest emits httpGet.host: "169.254.20.10" in the daemonset probe

Impact

  • Behavioral impact: No change for existing users unless they opt into the new livenessProbe settings.
  • Compatibility: Backward-compatible due to fallback to config.healthPort.
  • Reviewer focus: Main review area is the daemonset probe templating and whether the added configuration surface is the right chart-level API.

Task Tracking

  • No existing upstream issue linked.

@paddy-bedraggled paddy-bedraggled requested a review from a team as a code owner April 15, 2026 15:20
@codacy-production
Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

TIP This summary will be updated as you push new changes. Give us feedback

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant