Safeguard
Developer Tools•

Should your Helm chart ship a PodDisruptionBudget?

A PodDisruptionBudget limits voluntary evictions during node patching. When a vendor chart should include one, with values by workload type.

Safeguard Security Team
3 min read

Usually yes, as an option customers can tune. A PodDisruptionBudget limits how many of your pods can be down at once during voluntary disruptions such as node drains and cluster upgrades. Customers patch nodes constantly, and without a budget their routine patching can take your product offline.

Definitions

According to the Kubernetes documentation, a PodDisruptionBudget limits voluntary disruptions, for example node drains, cluster upgrades and evictions through the Eviction API. It is stable since v1.21. It has a selector and either minAvailable or maxUnavailable, never both. Involuntary disruptions such as hardware failure, kernel panics and out of memory kills are not prevented by it.

A node drain uses the Eviction API, which checks the budget before evicting each pod. If an eviction would break the budget, it is rejected, and the drain waits and retries.

Values by workload

The documentation suggests these starting points.

WorkloadSuggested budget
Stateless frontendminAvailable 90 percent
Single instance stateful app needing manual coordinationmaxUnavailable 0, remove when ready for disruption
Quorum system with several membersmaxUnavailable 1, or minAvailable equal to quorum size
Restartable batch jobNone

Traps to document

  1. A budget of zero unavailable blocks drains until it is removed or replicas change. Customers patching nodes will see a stuck drain and may force it.
  2. With a percentage and a single replica, that replica can still be evicted, so availability drops to nothing.
  3. An empty selector matches every pod in the namespace. Select only your own labels.
  4. Percentages round, and the documentation says maxUnavailable rounds up, so real disruption can exceed the stated share.
  5. The budget only works if the cluster owner respects it. Say so in your guide.

Chart design

Add a values flag to enable the budget, with a default sized to your replica count. If the default chart runs one replica, a budget cannot help, so say that single replica installs will have downtime during node patching. Offer a high availability values file.

Tell customers what to do

In your upgrade and node maintenance docs, explain the budget, the setting, and what to expect during a drain. This lets customers keep patching the operating system without opening a ticket. Related: how to roll out a patched base image.

If you want a second look at what you ship, Safeguard can generate and scan an SBOM and run dependency scanning with reachability analysis, and you can try the free scan.

Quick check

Does a PodDisruptionBudget stop a node crash?

No. It limits voluntary disruptions only, such as drains and evictions.

Can I set both minAvailable and maxUnavailable?

No. The documentation says only one can be set in a single budget.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.