Skip to content

Add PodDisruptionBudget support to OpenFGA Helm chart #328

Open

Description

@DavidLeonardoGutierrez

Summary

The OpenFGA Helm chart currently does not expose PodDisruptionBudget (PDB) configuration for the main OpenFGA workload. This makes it harder to enforce minimum availability during voluntary disruptions such as node drains and cluster upgrades.

Problem

In production Kubernetes environments, PDB is commonly required to:

Prevent full disruption during maintenance operations
Align with platform reliability policies
Keep at least one replica available during evictions
Today, users cannot configure this directly in chart values for the OpenFGA deployment.

Proposal

Add first-class PDB support to the OpenFGA chart with configurable values.

Suggested values:

pdb:
  create: false
  minAvailable: 1
  maxUnavailable:

Expected behavior

Render a policy/v1 PodDisruptionBudget when pdb.create is true
Target the OpenFGA workload labels used by the deployment
Support either minAvailable or maxUnavailable
Validate that both are not set at the same time

Acceptance criteria

New PDB template added for OpenFGA chart
Values documented in chart values and README
Template renders only when enabled
Helm template output is valid on supported Kubernetes versions

Activity

  1. rwo-trackunit commented on Aug 19, 2026

    @rwo-trackunit
    Contributor

    I've added a PR to handle deployment strategy, that could be expanded to handle this too. Assuming it gets approved.

  2. Siddhant-K-code commented on Aug 24, 2026

    @Siddhant-K-code
    Member

    #327 is complementary but should remain separate: it controls Deployment rollouts, while a PDB protects availability during voluntary evictions such as node drains and cluster upgrades.

    For this issue, I suggest supporting both integer and percentage values for minAvailable/maxUnavailable, enforcing that exactly one is configured, and adding tests for disabled, each valid mode, and invalid dual configuration. Keeping this as a focused follow-up PR avoids delaying #327.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions