feat(chart): add DaemonSet support via kind value#145
Open
vikzhex wants to merge 1 commit intoczerwonk:mainfrom
Open
feat(chart): add DaemonSet support via kind value#145vikzhex wants to merge 1 commit intoczerwonk:mainfrom
vikzhex wants to merge 1 commit intoczerwonk:mainfrom
Conversation
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.
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.
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
kindvalue (Deploymentby default) to switch between Deploymentand DaemonSet
kind: DaemonSet: usesupdateStrategyinstead ofstrategy,omits
replicaskindis not set
Usage