Skip to content

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

Closed
paddy-bedraggled wants to merge 1 commit into
deliveryhero:masterfrom
paddy-bedraggled:feat/node-local-dns-liveness-probe-config
Closed

[stable/node-local-dns] Make liveness probe configurable#789
paddy-bedraggled wants to merge 1 commit into
deliveryhero: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

@github-actions

Copy link
Copy Markdown
Contributor

This PR is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 5 days.

@max-rocket-internet max-rocket-internet left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good but CI is failing

@github-actions

Copy link
Copy Markdown
Contributor

This PR is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 5 days.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants