Sean Malone
11/21/2023, 6:35 PMprefect.yaml
naming convention? What if we ant two yaml files. One for prod and one for dev? How would that be used?Marvin
11/21/2023, 6:35 PMprefect.yaml
file is used by the prefect deploy
command to deploy your flows. It's part of the process that also builds and pushes your image. If you want to have different configurations for different environments like dev and prod, you can create multiple deployments and use the --name
flag to specify which one to deploy. For example, you can use prefect deploy -n my-flow/* -n *dev/my-deployment -n dep*prod
to deploy all deployments from the flow my-flow
, all flows ending in dev
with a deployment named my-deployment
, and all deployments starting with dep
and ending with prod
[[source]](https://docs.prefect.io/latest/guides/prefect-deploy/).
So, you don't necessarily need to stick to the prefect.yaml
naming convention. You can have multiple yaml files for different environments and use them accordingly.Marvin
11/21/2023, 6:35 PMprefect.yaml
file is used by the prefect deploy
command to deploy your flows and as a part of that process, it will also build and push your image. If you want to have different configurations for your production and development environments, you can create separate yaml files for each environment.
When deploying, you can specify which deployments to deploy using the --name
flag. For example, prefect deploy --name my_flow/deployment-1
will deploy the deployment-1
of my_flow
. You can also use patterns to match deployments. For example, prefect deploy -n my-flow/* -n *dev/my-deployment -n dep*prod
will deploy all deployments from the flow my-flow
, all flows ending in dev
with a deployment named my-deployment
, and all deployments starting with dep
and ending with prod
.
This way, you can manage your production and development deployments separately using different yaml files and deployment commands.Sean Malone
11/21/2023, 6:37 PMMarvin
11/21/2023, 6:37 PMimage
field with the name of the image you want to use, and the registry_url
field with the URL of the Docker registry where your image is stored. You can also specify the python_dependencies
field with a list of Python packages that your flow requires.
Here is an example of how you can define these settings in your yaml file:
yaml
version: 1
name: my_flow
storage:
type: Docker
registry_url: my_registry_url
image: my_image
python_dependencies:
- prefect
- my_other_dependency
You can create separate yaml files for your production and development environments, each with their own settings. When you deploy your flows, you can specify which yaml file to use with the --file
flag. For example, prefect deploy --file prod.yaml
will deploy your flows using the settings in prod.yaml
.
Remember to update your Prefect configuration or environment variables to point to the correct Docker registry for each environment.Kevin Grismore
11/21/2023, 6:40 PM.deploy
also exists now if you're cool with defining your deployments via pythonKevin Grismore
11/21/2023, 6:42 PMbuild
push
and pull
per-deploymentSean Malone
11/21/2023, 6:50 PM