Migrate to new labels without downtime Delete deployment with --cascade=false Delete the corresponding replicaset with --cascade=false too Add label to orphaned pods to match the new service selector Deploy the Helm Chart Wait for the newly created pods to get ready Delete orphaned pods using old selector labels Example kubectl delete deploy -l release=[RELEASE],app=[NAME] --cascade=false kubectl delete rs -l release=[RELEASE],app=[NAME] --cascade=false kubectl label pods -l release=[RELEASE],app=[NAME] \ app.kubernetes.io/instance=[RELEASE] \ app.kubernetes.io/name=[NAME] kubectl delete pods -l release=[RELEASE],app=[NAME]