docs: Kubernetes cluster upgrade guidance for Enterprise [PLTF-3308] - #709
Conversation
|
Preview deployment for your docs. Learn more about Mintlify Previews.
💡 Tip: Enable Workflows to automatically generate PRs for you. |
|
|
||
| Upgrade in this order: control plane first, then your ordinary node pools, then the Sysbox pool. Never let nodes run ahead of the control plane. Only the sysbox node pool may need special handling | ||
|
|
||
| Our own installations of OpenHands have been confirmed up to Kubernetes version `1.35.6` |
There was a problem hiding this comment.
Is this okay to keep? Just asking for maintenance. Will we have to update it every X months?
There was a problem hiding this comment.
Good point. I think it's "our" job to ensure customers are aware of any "gotchas" with supported k8s versions. It wouldn't be up to them to review our API's to make sure they can safely upgrade.
However you're totally right and this doc doesn't feel like the right place for this. Whenever relevant, our release notes, announcements or changelogs should give guidance on what k8s versions are now tested and supported with openhands.
TL;DR good call i'll remove it 😄
Summary of changes
Self-hosted operators upgrading a cluster under OpenHands hit a trap we had documented nowhere: sandbox pods carry a zero-tolerance PodDisruptionBudget, so a routine node pool drain doesn't fail — it hangs indefinitely on a node stuck in
SchedulingDisabled, with no obvious signal about why. This adds a page that says so up front and walks through what to do.The framing is deliberately narrow: how to upgrade a cluster running OpenHands, in the order you'd actually do it, with the Sysbox pool as the only part that needs a decision.
enterprise/k8s-install/upgrade-guidance.mdx(new) — control plane and ordinary node pools are plain upgrades, with the usual pre-flight (deprecated API review, one minor at a time, control-plane upgrades are one-way). The Sysbox pool forks into two tabbed options: a maintenance window (cordon, drain to zero sandboxes, upgrade in place) or blue/green (second pool at the target version, cordon the old one, let it empty by attrition). Both converge on the same requirement — get the pool to zero sandboxes and the PDB goes inert.docs.json— nav entry in the K8s Install group, after Resource Limits.enterprise/k8s-install/index.mdx— card on the section index.Guidance is cloud-agnostic (GKE/EKS/AKS or self-managed) and advisory rather than a runbook — provider docs stay the source of truth for mechanics.
Verified with
mint dev: page returns 200, all headings and both tabs render, no server errors.