Hive
fix(kura): reconcile expanded storage without StatefulSet mutation
GitHub issue · Closed
Source
tuist/tuist #11139
Updated
Jun 24, 2026
Domains
Kura
What changed
- Preserve existing StatefulSet
volumeClaimTemplatesduring KuraInstance reconciliation so storage changes do not attempt to mutate an immutable StatefulSet field. - Reconcile the actual
data-<instance>-<ordinal>PVC requests up to the desiredspec.storageSizeand skip missing PVCs until the StatefulSet creates them. - Refuse to shrink PVCs when the desired size is lower than the current request.
- Grant the Kura controller RBAC to read and patch PVCs.
- Raise the standalone Kura Helm chart persistence default to
200Gi, matching the controller default for new Kura instances.
Why
Existing StatefulSets can have older PVC templates even after their PVCs are expanded. Rewriting volumeClaimTemplates on every reconcile causes Kubernetes to reject otherwise valid updates, which blocks image rollouts and normal controller convergence.
The safer path is to treat the StatefulSet template as immutable once it exists, then reconcile live PVCs directly for supported expansion. New StatefulSets still get the desired storage size from the template.
Impact
Kura instances can converge to 200Gi storage without deleting StatefulSets or orphaning volumes. Existing pods keep their retained cache volumes, and future scale-ups are corrected by the PVC reconciliation loop if their PVC is created from an older template.
Validation
git diff --checkmise exec go@1.25.0 -- go test ./...frominfra/kura-controller