Иногда необходимо удалить/пересоздать полностью с kubernetes стейтфулсет, но при этом оставить данные в pvc и рабочие pod’ы. К примеру, у нас есть postgres в кубере, где-нибудь на стейджингах, и заезжает новый чарт с другими тегами. Стейтфулы нельзя пропатчить и Helm получает в ответ ошибку:
Error: helm upgrade have failed: UPGRADE FAILED: error processing rollout phase stage: error applying resources: cannot patch "postgresql" with kind StatefulSet: StatefulSet.apps "postgresql" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden
Что делать? Тут вариант либо руками править теги, либо, в данном случае, грохнуть StatefulSet посгри с сохранением рабочих подов и pvc:
kubectl -n HERE_YOUR_NS delete sts postgresql --cascade=orphan
После чего раскатываем заново чарт и он подцепляет существующие поды и pvc которые остались благодаря флагу cascade=orphan.