Seb
10/30/2025, 7:43 AMMarvin
10/30/2025, 7:43 AMMarvin
10/30/2025, 7:47 AMsqlalchemy, uvicorn, etc.), or do you want to change the packages used when your flows run? Those are managed in different places.
If you mean the Prefect Server container (deployed by the Helm chart), the recommended approach is to use a custom image:
1) Build a custom image that pins/upgrades the library you need
2) Point the Helm chart to your custom image via values
Example Dockerfile:
# Pin to the Prefect version you’re running to avoid surprises
FROM prefecthq/prefect:3.0.12
# Upgrade or pin the package you need
RUN pip install --no-cache-dir some-lib==1.2.3
Push that image to your registry, then upgrade your release with overrides to use your image. The exact values keys can vary by chart version, so first inspect the chart values:
helm repo add prefect <https://prefecthq.github.io/prefect-helm>
helm repo update
helm show values prefect/prefect-server > values.yaml
Look for the image fields (commonly something like image.repository and image.tag, or component-specific fields like api.image.*). Then apply your overrides, for example:
helm upgrade --install prefect-server prefect/prefect-server \
--set image.repository=<http://ghcr.io/your-org/prefect|ghcr.io/your-org/prefect> \
--set image.tag=3.0.12-somelib-1.2.3
Notes and caveats:
- Prefect Server dependencies are pinned for compatibility; overriding a core dependency can break the server. Test your custom image in a non-prod cluster first.
- We don’t recommend trying to pip install at container startup for Server pods; the official image/entrypoint does not guarantee support for that pattern.
- If you really want a runtime install without building an image, you’d need to adapt the chart to add an initContainer and a shared volume and set PYTHONPATH accordingly—this is brittle and generally not worth it compared to a proper image build.
If you actually meant dependencies for your flow runtime (not the Server), you should manage those in your flow’s execution image or job environment (e.g., custom Docker image for your worker/Kubernetes jobs, or a build step in prefect deploy), not via the Prefect Server Helm chart.
Helpful links:
- Prefect Server via Helm (docs): Deploy Prefect Server with Helm
- Helm chart repo: prefect-helm on GitHub
If you can share:
- Which package you want to upgrade and to what version
- Your chart version and any relevant values.yaml snippets
…I can suggest the exact values keys to override or provide a concrete example for your setup.