Krystal Zeng
05/06/2026, 12:26 PMnameOverride: prefect-cpu-worker
fullnameOverride: prefect-cpu-workerMarvin
05/06/2026, 12:26 PMMarvin
05/06/2026, 12:27 PMnameOverride / fullnameOverride change many chart resource names, but not the base job template ConfigMap name by default.
What’s happening:
- You already have a ConfigMap named prefect-worker-base-job-template
- It was created by the Helm release prefect-worker
- Now you’re installing a different Helm release, prefect-cpu-worker
- That second release is trying to manage the same ConfigMap name
- Helm refuses because the existing object is annotated as owned by another release
That’s why you see:
<http://meta.helm.sh/release-name|meta.helm.sh/release-name> must equal "prefect-cpu-worker": current value is "prefect-worker"
Why fullnameOverride didn’t help
The worker chart uses a separate value for the base job template ConfigMap name. Its default is effectively:
text
prefect-worker-base-job-template
So unless you explicitly override that, multiple worker releases in the same namespace collide on that ConfigMap.
Fix
Give each worker release its own base job template ConfigMap name, for example:
yaml
nameOverride: prefect-cpu-worker
fullnameOverride: prefect-cpu-worker
worker:
config:
baseJobTemplate:
name: prefect-cpu-worker-base-job-template
If you have another worker release, give it a different one too:
yaml
nameOverride: prefect-worker
fullnameOverride: prefect-worker
worker:
config:
baseJobTemplate:
name: prefect-worker-base-job-template
Then install/upgrade again.
If this is a brand new release and you don’t need the old ConfigMap
You can delete the old ConfigMap first:
bash
kubectl delete configmap prefect-worker-base-job-template -n prefect
Then reinstall.
But only do that if the old prefect-worker release is no longer using it.
Alternative options
- Put each worker Helm release in a different namespace
- Reuse one shared manually-managed ConfigMap if both workers should use the same base job template
Recommended path
If you want multiple Prefect worker Helm releases in the same namespace, set a unique value for:
yaml
worker.config.baseJobTemplate.name
for each release.
If you want, I can help you write a complete values.yaml for two workers in the same namespace without collisions.