Hello everyone! I'm trying to make sense of how de...
# prefect-community
v
Hello everyone! I'm trying to make sense of how deployments and manifests relate to each other and it's still rather confusing to me. I'm not quite getting what the intended cycle is for workflow updates, given only
prefect deployment build
handles uploading the flow (and apparently the rest of the CWD?) to remote storage. If
deployment build
is meant to be used to create a "YAML manifest [...] build artifact", why does it also handle the uploading? If changes are made to the flow script(s), should the manifest be rebuilt (given it's the same step that handles the uploading)? If manifests are meant to be recreated from scratch whenever the flow is updated, doesn't that make manual edits to any parts of the manifest not specified in the CLI args too easy to overwrite (and invite users to just create one-liner shell scripts to not have to re-type these every time)? Or shouldn't it be apply that handles uploading the flow to storage while also notifying the Orion server about the change? Would
deployment apply
overwrite the changes in configuration made in the UI, making it preferable that deployment files be the main source of truth for things like scheduling and flow description? I'm looking at this from the point of view of a user who's looking to (at least initially) deploy Orion as-is, with no docker images and the flow files on... an SMB share, most likely, or maybe some FTP server . Ideally I would just have the flows be pulled from a local git server (which seems to me like a no-brainer if all the flows are going to be versioned anyway) and use commit IDs instead of manual version numbers, but I would probably run into issues using the experimental fsspec git backend as a remote FS. Maybe these procedures all make sense when working with Docker and K8s, but the documentation mostly skims over the "lifecycle of flow and/or deployment updates", so to speak, so I'm not really sure what to do with these, and deployments are a pretty big step to get to havinng scheduled execution of flows. So, to make things short, how is one supposed to go about updating deployments and deployed flows?
a
Build artifact is something that gets generated during build and that's what happens here too: build simultaneously uploads and generates manifest
You can manually edit YAML to manually override fields before apply step, but it's up to you For CI CD we will provide guidance showing how you can do everything automatically, no manual file editing
🚀 1
It will all get clearer soon once we complete the deployment UX story (a couple items still open on the roadmap, including packaging flows alongside dependencies into Docker image) and release docs and recipes
👍 2