PDB Behavior Profile

2 min read

A PDB behavior profile is a named preset that expands into a concrete minAvailable or maxUnavailable value on a PodDisruptionBudget at Katalog load time.

You write a name. Orkestra writes the disruption limit.


Profiles

ProfileFieldValueUse for
zero-downtimeminAvailable100%Databases, stateful services — no pod may be voluntarily disrupted
rollingmaxUnavailable1Standard production services — exactly one pod at a time
relaxedmaxUnavailable25%Stateless services where brief capacity reduction is acceptable

zero-downtime uses minAvailable semantics (must stay up). rolling and relaxed use maxUnavailable semantics (may go down). The two fields are mutually exclusive — a PDB uses one or the other, never both.


Usage

Set behavior.profile on any PDB resource:

onCreate:
  pdb:
    - name: "{{ .metadata.name }}-pdb"
      selector:
        app: "{{ .metadata.name }}"
      behavior:
        profile: rolling

Rules

Profile or explicit — not both.

behavior.profile cannot coexist with behavior.minAvailable or behavior.maxUnavailable. Orkestra rejects the Katalog at load time if both are present.

# Valid
behavior:
  profile: rolling

# Valid
behavior:
  maxUnavailable: "1"

# Invalid — rejected at load time
behavior:
  profile: rolling
  maxUnavailable: "2"

Unknown profiles fail fast. A typo (roling, Zero-Downtime) without correct casing is caught at load time. Profile names are case-insensitive — ROLLING and rolling are both valid.


Choosing a profile

SituationProfile
Database, message broker, or any stateful servicezero-downtime
Standard web service or APIrolling
Stateless worker, batch runnerrelaxed