<@ULVA73B9P> When I run the following command, `h...
# ask-marvin
c
@Marvin When I run the following command,
helm install prefect-worker prefect/prefect-worker --namespace=githubsync -f values.yaml
, a worker pod is not created in my kubernetes namespace. Any ideas?
m
thought for 169.4 seconds
A few quick things to check that usually explain “no worker pod shows up” after installing the
prefect/prefect-worker
chart: First, sanity checks - Verify the Helm release actually installed into the expected namespace:
Copy code
helm list -n githubsync
  helm status prefect-worker -n githubsync
- Confirm you’re looking in the right cluster/namespace:
Copy code
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:
Copy code
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:
Copy code
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:
Copy code
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:
Copy code
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:
Copy code
worker:
      config:
        workPool: <your-work-pool-name>
- You must set the API config correctly for your environment: For Prefect Cloud:
Copy code
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:
Copy code
kubectl create secret generic prefect-api-key -n githubsync --from-literal=key=YOUR_API_KEY
For self-hosted Server:
Copy code
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:
Copy code
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)
- The relevant part of your
values.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