Skip to content

Conversation

@davramov
Copy link
Contributor

Preparing for upgrading our Prefect Server from v2.x to v3.4.2

Other notes

  • Adding "file_path" basename to flow run names for easier identification in the UI (addressing Flow names should contain dataset name #82)
  • including a new files to streamline deployment with
    • orchestration/flows/bl832/prefect.yaml : Defines which flows from which files to deploy, and assign them to a work pool and queue
    • init_832_work_pools.sh : Creates work pools if they don't already exist, and deploys all of the flows defined above in prefect.yaml
  • updating Prefect version in requirements.txt
  • updating pytests and flows scripts to address updates within Prefect

@davramov
Copy link
Contributor Author

To do:
Update Prefect JSON Blocks (deprecated) to Prefect Variables. Existing relevant JSON Blocks to replicate:

  • [alcf-allocation-root-path] -- {"alcf-allocation-root-path":"/eagle/IRIProd/ALS"}
  • [bl832-settings] -- {"delete_spot832_files_after_days":1,"delete_data832_files_after_days":35}
  • [globus-settings] -- {"@doc_max_wait_seconds_desc":"Maximum time to wait around for a globus job. The job may still complete, but if globus tasks take longer, an error will be thrown","max_wait_seconds":600}
  • [pruning-config] -- {"max_wait_seconds":120, "delete_alcf832_files_after_days":1, "delete_data832_files_after_days":14, "delete_nersc832_files_after_days":7}
  • [decision-settings] -- {"nersc_recon_flow/nersc_recon_flow":true, "new_832_file_flow/new_file_832":true, "alcf_recon_flow/alcf_recon_flow":false}

…uth for work pool and deployment names. waits for prefect server health check before checking/creating work pools and deploying flows. can be configured to run in a docker container, so we should no longer need to exec into worker containers to redeploy flows 🚀
…n set an env variable BEAMLINE=832. in the script, it will look for a prefect.yaml file in orchestration/flows/bl/prefect.yaml, which it will use as the ground truth to build the work pools and deploy flows. this way we only need to support one init script that can work across beamlines.
@dylanmcreynolds
Copy link
Contributor

Do you need to preserve the scripts in "legacy"? In general I like to keep the trail free of dead branches :)

@davramov
Copy link
Contributor Author

Do you need to preserve the scripts in "legacy"? In general I like to keep the trail free of dead branches :)

No, I can delete these 👍

@davramov davramov merged commit e4a9b74 into main Dec 17, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants