Pablo Martín Calvo
09/04/2025, 9:26 AMMarvin
09/04/2025, 9:26 AMMarvin
09/04/2025, 9:28 AMvalues.yaml
uses a floating tag prefectTag: 3-latest
, your deployment pulled the newest 3.x image (currently 3.4.7). The UI shows the server/API version from that image, not the Helm chart version.
What’s happening
- Helm chart version: version of the chart templates (how resources are rendered), not the Prefect app itself. The chart may list an appVersion
(e.g., 3.2.12) but that’s informational unless you pin the image tag.
- Image tag (prefectTag
): controls which Prefect server/API+UI image is deployed. 3-latest
is a moving tag and will resolve to whatever the latest 3.x release is at the time your pods pull the image.
- UI version: reads the Prefect server/API version from the running container image, so it reflects 3.4.7 because that’s the image you’re running.
Why it changed
- Any redeploy/rollout or pod restart with imagePullPolicy: Always
will re-pull 3-latest
, which now points to 3.4.7.
Best practices to avoid surprises
- Pin a specific version tag instead of a floating one:
prefectTag: "3.4.7"
Optionally pin by digest for immutability.
- Ensure your pull policy won’t re-pull unnecessarily:
imagePullPolicy: IfNotPresent
- If your chart has separate tags for sub-components (e.g., agent/worker), pin those too.
If you want to align to a specific Prefect version, update prefectTag
to that version (e.g., 3.2.12
) in your values.yaml
and run a Helm upgrade. If you’d like, share your values.yaml
(redact any secrets) and I can point out every place you should pin.
References
- Self-hosted Prefect server
- Infrastructure as code guidance