Skip to content

feat(chart): add DaemonSet support via kind value#145

Open
vikzhex wants to merge 1 commit intoczerwonk:mainfrom
vikzhex:feat/daemonset-support
Open

feat(chart): add DaemonSet support via kind value#145
vikzhex wants to merge 1 commit intoczerwonk:mainfrom
vikzhex:feat/daemonset-support

Conversation

@vikzhex
Copy link

@vikzhex vikzhex commented Feb 26, 2026

Add configurable workload kind (Deployment or DaemonSet) to the Helm chart.
When kind is set to DaemonSet, the chart uses updateStrategy instead of
strategy and omits replicas, as required by the DaemonSet spec.

Motivation

In our environment we need to monitor network connectivity (latency, packet loss)
from every worker node independently. A single Deployment replica only tests
connectivity from one node, making it impossible to detect per-node network
issues such as faulty NICs, misconfigured routes, or degraded uplinks.

Using a Deployment with podAntiAffinity to spread across nodes requires
manually tracking the replica count to match the number of target nodes —
any node scaling event (adding/removing nodes) would require updating
replicaCount, which is error-prone and hard to automate.

A DaemonSet solves both problems: it automatically places one instance on
each matching node (via nodeSelector or nodeAffinity) and adjusts to node
scaling without manual intervention.

Changes

  • Added kind value (Deployment by default) to switch between Deployment
    and DaemonSet
  • When kind: DaemonSet: uses updateStrategy instead of strategy,
    omits replicas
  • Fully backward compatible — no changes to existing behavior when kind
    is not set

Usage

kind: DaemonSet

strategy:
  type: RollingUpdate
  rollingUpdate:
    maxUnavailable: 20%

Add configurable workload kind (Deployment or DaemonSet) to the Helm chart.
When kind is set to DaemonSet, the chart uses updateStrategy instead of
strategy and omits replicas, as required by the DaemonSet spec.

This is useful for monitoring network connectivity on every node in a
Kubernetes cluster by running ping-exporter as a DaemonSet.

Fully backward compatible - defaults to Deployment when kind is not set.
@vikzhex vikzhex requested a review from czerwonk as a code owner February 26, 2026 05:25
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