Skip to content

feat(chart): add PodDisruptionBudget and topologySpreadConstraints support#5638

Open
bafulton wants to merge 1 commit intoakuity:mainfrom
bafulton:ben/ai/add-pdb-and-topology-spread-constraints
Open

feat(chart): add PodDisruptionBudget and topologySpreadConstraints support#5638
bafulton wants to merge 1 commit intoakuity:mainfrom
bafulton:ben/ai/add-pdb-and-topology-spread-constraints

Conversation

@bafulton
Copy link

Summary

Adds support for PodDisruptionBudgets and topology spread constraints to enable robust high-availability deployments.

Closes #5396

Changes

  • Add PDB templates for api, webhooksServer, and externalWebhooksServer
  • Add topologySpreadConstraints to deployment templates
  • Add configuration options in values.yaml with sensible defaults
  • Update README with new parameter documentation

Usage Example

api:
  replicas: 2
  podDisruptionBudget:
    enabled: true
    minAvailable: 1
  topologySpreadConstraints:
    - maxSkew: 1
      topologyKey: topology.kubernetes.io/zone
      whenUnsatisfiable: ScheduleAnyway
      labelSelector:
        matchLabels:
          app.kubernetes.io/component: api

Test Plan

  • helm lint passes
  • Templates render correctly with PDBs enabled
  • Templates render correctly with topologySpreadConstraints configured

…pport

Add support for PodDisruptionBudgets and topology spread constraints
to enable robust high-availability deployments.

Changes:
- Add PDB templates for api, webhooksServer, and externalWebhooksServer
- Add topologySpreadConstraints to deployment templates
- Add configuration options in values.yaml with sensible defaults
- Update README with new parameter documentation

For HA deployments, users can now:
- Enable PDBs to ensure availability during voluntary disruptions
- Configure topology spread constraints to distribute pods across zones

Example usage:
```yaml
api:
  replicas: 2
  podDisruptionBudget:
    enabled: true
    minAvailable: 1
  topologySpreadConstraints:
    - maxSkew: 1
      topologyKey: topology.kubernetes.io/zone
      whenUnsatisfiable: ScheduleAnyway
      labelSelector:
        matchLabels:
          app.kubernetes.io/component: api
```

Closes akuity#5396

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: Ben Fulton <ben.fulton@semgrep.com>
@bafulton bafulton requested a review from a team as a code owner January 27, 2026 18:09
@netlify
Copy link

netlify bot commented Jan 27, 2026

Deploy Preview for docs-kargo-io ready!

Name Link
🔨 Latest commit c7fd57e
🔍 Latest deploy log https://app.netlify.com/projects/docs-kargo-io/deploys/6978ff76a850890008357553
😎 Deploy Preview https://deploy-preview-5638.docs.kargo.io
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@krancour
Copy link
Member

Note that #5396 was not yet evaluated by any maintainers and remains in a proposal state, as indicated by its labels.

We can take a look at this, but it's going to receive the scrutiny now that it should have received before anyone spent time implementing it.

@hiddeco would you mind having a look at this, but only if you have the bandwidth?

@krancour krancour requested a review from hiddeco January 31, 2026 17:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PodDisruptionBudget and TopologySpreadContraints for better HA configuration

3 participants