Chapter 44. PodDisruptionBudgetTemplate schema reference


Used in: CruiseControlTemplate, EntityOperatorTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, ZookeeperClusterTemplate

Full list of PodDisruptionBudgetTemplate schema properties

A PodDisruptionBudget is an OpenShift resource that helps maintain high availability during planned maintenance or upgrades. It defines the minimum number of pods that must remain available at all times.

Streams for Apache Kafka creates one PodDisruptionBudget per component:

  • Kafka cluster
  • Kafka Connect
  • MirrorMaker 2
  • Kafka Bridge
  • Entity Operator
  • Kafka Exporter
  • Cruise Control

Each budget applies across all pods deployed for that component.

A single PodDisruptionBudget applies to all associated node pool pods managed by the Kafka resource. This is true regardless of how many StrimziPodSet resources are created for that component. Disruption limits are applied at the component level, not per node pool.

By default, only one pod can be unavailable at a time. You can modify this limit using the maxUnavailable property.

StrimziPodSet custom resources are managed by a controller that does not use maxUnavailable directly. Instead, the value is automatically converted to minAvailable, which serves the same purpose.

For example:

  • If there are three broker pods and the maxUnavailable property is set to 1 in the Kafka resource, the minAvailable setting is 2, allowing one pod to be unavailable.
  • If there are three broker pods and the maxUnavailable property is set to 0 (zero), the minAvailable setting is 3, requiring all three broker pods to be available and allowing zero pods to be unavailable.

The above examples also applies for the EntityOperator, Cruise Control, KafkaExporter deployments.

Example PodDisruptionBudget template configuration

# ...
template:
  podDisruptionBudget:
    metadata:
      labels:
        key1: label1
        key2: label2
      annotations:
        key1: label1
        key2: label2
    maxUnavailable: 1
# ...
Copy to Clipboard Toggle word wrap

Custom disruption budget behavior

To define custom disruption budget behavior, disable automatic PodDisruptionBudget generation. Set the STRIMZI_POD_DISRUPTION_BUDGET_GENERATION environment variable to false in the Cluster Operator.

You can then create your own PodDisruptionBudget resources. For example, apply separate budgets to specific node pools using label selectors with StrimziPodSet resources.

Expand
PropertyProperty typeDescription

metadata

MetadataTemplate

Metadata to apply to the PodDisruptionBudgetTemplate resource.

maxUnavailable

integer

Maximum number of unavailable pods to allow automatic Pod eviction. A Pod eviction is allowed when the maxUnavailable number of pods or fewer are unavailable after the eviction. Setting this value to 0 prevents all voluntary evictions, so the pods must be evicted manually. Defaults to 1.

Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2026 Red Hat
Back to top