Skip to content

Add topologySpreadConstraints support + pin to 1.1.341 (CE-271)#8

Open
Eric Hibbs (flowstate) wants to merge 2 commits into
mainfrom
erichibbs/ce-271-add-topologyspreadconstraints-support-to-socket-firewall
Open

Add topologySpreadConstraints support + pin to 1.1.341 (CE-271)#8
Eric Hibbs (flowstate) wants to merge 2 commits into
mainfrom
erichibbs/ce-271-add-topologyspreadconstraints-support-to-socket-firewall

Conversation

@flowstate

@flowstate Eric Hibbs (flowstate) commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Adds a topologySpreadConstraints pod-spec value (default [], opt-in) to the Socket Firewall Helm chart, wired into deployment.yaml via the existing with + toYaml pass-through pattern (sibling of affinity/tolerations).
  • Documents a zone-spread example + k8s version notes in the chart README.
  • Pins appVersion + values.yaml image.tag to 1.1.341 (current latest released tag on Docker Hub).
  • Bumps chart version 0.4.10.5.0 (single release for both the feature and the pin).

Why

Vercel asked for topologySpreadConstraints so they can evenly distribute replicas across availability zones. Soft pod anti-affinity (their only option today) lets the scheduler pile replicas into one zone; topologySpreadConstraints (maxSkew + whenUnsatisfiable: ScheduleAnyway) is the purpose-built primitive for even spread. The image pin to the latest release is folded in here (previously split out as #9, now closed).

Compatibility

  • Base field is GA since Kubernetes 1.19 — no kubeVersion floor needed.
  • Optional matchLabelKeys needs 1.27+ (satisfied by all currently-supported EKS/GKE versions); noted in docs.
  • topologySpread default is empty, so there is no behavior change for existing installs.

Test plan

  • helm lint passes
  • helm template — field omitted when unset, rendered correctly under pod spec when set
  • kubeconform -strict (k8s 1.33) — 6/6 resources valid
  • 1.1.341 confirmed as latest published semver tag on Docker Hub
  • Reviewer sanity-check of README example

Linear: CE-271

Expose a `topologySpreadConstraints` pod-spec value (default empty, opt-in)
so operators can evenly distribute replicas across zones/nodes, instead of
relying on soft pod anti-affinity. Bumps chart to 0.5.0 and documents a
zone-spread example in the README.

Requested by Vercel. Closes CE-271.

Co-authored-by: Cursor <cursoragent@cursor.com>
Eric Hibbs (flowstate) added a commit that referenced this pull request Jun 24, 2026
Bump appVersion + image.tag 1.1.337 -> 1.1.341 (current latest on Docker Hub)
and chart version 0.4.2 -> 0.5.1 so it sequences cleanly after the 0.5.0
topologySpreadConstraints change (PR #8).

Co-authored-by: Cursor <cursoragent@cursor.com>
Fold the version pin into this PR: appVersion + image.tag -> 1.1.341
(current latest on Docker Hub). Chart stays at 0.5.0 so the feature and
the pin ship as a single release.

Co-authored-by: Cursor <cursoragent@cursor.com>
@flowstate Eric Hibbs (flowstate) changed the title Add topologySpreadConstraints support to Helm chart (CE-271) Add topologySpreadConstraints support + pin to 1.1.341 (CE-271) Jun 24, 2026
Comment thread helm/Chart.yaml
version: 0.4.1
appVersion: "1.1.335"
version: 0.5.0
appVersion: "1.1.341"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This version exists in 2 other places in this repo and should be updated everywhere. Maybe there's a way to make this a variable and use it everywhere?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch, I will fold in a single variable for it

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.

2 participants