Charlie Nash
11/20/2025, 10:47 PMhelm install prefect-worker prefect/prefect-worker --namespace=githubsync -f values.yaml, a worker pod is not created in my kubernetes namespace. Any ideas?Marvin
11/20/2025, 10:47 PMMarvin
11/20/2025, 10:50 PMprefect/prefect-worker chart:
First, sanity checks
- Verify the Helm release actually installed into the expected namespace:
helm list -n githubsync
helm status prefect-worker -n githubsync
- Confirm you’re looking in the right cluster/namespace:
kubectl config current-context
kubectl get all -n githubsync
- If the namespace didn’t exist, helm install would fail unless you used --create-namespace. If needed, reinstall with:
helm uninstall prefect-worker -n githubsync || true
kubectl create namespace githubsync
helm install prefect-worker prefect/prefect-worker -n githubsync -f values.yaml
If the release is present but there’s still no pod
- Check if the Deployment exists and what Kubernetes says about it:
kubectl get deploy,rs,po -n githubsync -l <http://app.kubernetes.io/instance=prefect-worker|app.kubernetes.io/instance=prefect-worker>
kubectl describe deploy -n githubsync -l <http://app.kubernetes.io/instance=prefect-worker|app.kubernetes.io/instance=prefect-worker>
kubectl get events -n githubsync --sort-by=.lastTimestamp
- If there’s no Deployment at all, your values may be preventing templates from rendering.
- If there is a Deployment but no Pods, look for events like image pull errors, invalid security context, or HPA scaling to 0 (shouldn’t be the default).
Template/values validation
- Render your chart locally to see exactly what it’s creating:
helm template prefect-worker prefect/prefect-worker -n githubsync -f values.yaml
If this does not include a Deployment named like prefect-worker, something in values.yaml is turning it off or failing the render. Also try:
helm install --dry-run --debug prefect-worker prefect/prefect-worker -n githubsync -f values.yaml
Most common causes we see
- Missing required values (the chart still installs, but if the Deployment is suppressed by values you won’t see a pod):
- You must set a work pool name:
worker:
config:
workPool: <your-work-pool-name>
- You must set the API config correctly for your environment:
For Prefect Cloud:
worker:
apiConfig: cloud
config:
workPool: <pool>
cloudApiConfig:
accountId: "<account-id>"
workspaceId: "<workspace-id>"
apiKeySecret:
name: prefect-api-key
key: key
And ensure the secret exists:
kubectl create secret generic prefect-api-key -n githubsync --from-literal=key=YOUR_API_KEY
For self-hosted Server:
worker:
apiConfig: selfHostedServer
config:
workPool: <pool>
selfHostedServerApiConfig:
apiUrl: "http://<your-prefect-server>/api"
- Autoscaling/replicas misconfigurations:
- By default, autoscaling is disabled and replicas=1. If you enabled autoscaling, make sure minReplicas >= 1 and maxReplicas > minReplicas. A mis-set HPA can sometimes prevent pods from coming up.
- ServiceAccount/RBAC issues:
- If you disabled `serviceAccount`/`role`/`rolebinding` creation but didn’t provide an existing ServiceAccount, the Deployment may fail to create pods. Check:
kubectl get serviceaccount,role,rolebinding -n githubsync -l <http://app.kubernetes.io/instance=prefect-worker|app.kubernetes.io/instance=prefect-worker>
- Image pull problems or security context conflicts:
- You’ll see events like ImagePullBackOff, CreateContainerConfigError, or admission webhook/security policy denials in kubectl describe deploy/... or kubectl get events.
If you can share a bit more, I can pinpoint it quickly:
- Output of:
- helm status prefect-worker -n githubsync
- kubectl get deploy,rs,po -n githubsync -l <http://app.kubernetes.io/instance=prefect-worker|app.kubernetes.io/instance=prefect-worker>
- helm template prefect-worker prefect/prefect-worker -n githubsync -f values.yaml | sed -n '1,200p' (first part showing if a Deployment rendered)Marvin
11/20/2025, 10:50 PMvalues.yaml (redact secrets), especially under worker:.
Helpful references
- Chart repo and values reference: prefect-helm/charts/prefect-worker
- Default values.yaml: values.yaml
- Chart README: README
- Prefect Server with Helm guide: docs: Server + Helm
- Work pools / workers overview: docs: Work pools