Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workflows for Flood Inundation Mapping #124

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open

Conversation

jpolchlo
Copy link
Collaborator

@jpolchlo jpolchlo commented Feb 2, 2023

Overview

Following on from #101, we are in need of an ability to run the flood inundation mapping code from NOAA OWP. This PR takes a swing at this objective. I'm providing some Argo Workflow examples that can use an EFS volume to mount the required data directly to the filesystem. This works provisionally (at least the mechanism works, even if the code doesn't run all the way to completion at the time of filing this PR).

I've tested the FR dataset. The GMS dataset requires different steps and may need a more complex workflow to run it.

Checklist

  • Documentation updated if needed
  • PR has a name that won't get you publicly shamed for vagueness

Notes

Testing Instructions

  • Log into Argo Workflows
  • Start a new workflow using the contents of the fim-inundation.yaml
  • Adjust parameters if desired (and possibly adjust the workflow itself)
  • Create the workflow

@jpolchlo
Copy link
Collaborator Author

I have added a workflow that runs to completion on the inundation workflow. This uses a combination of EFS data and EBS scratch space to perform the work, and the result gets synced up to S3 after completion. The most recent iteration also provides a Dockerfile which is a modification of this one which adds in the s3fs-fuse utility. This fuse plugin does not work because it doesn't understand IRSA, and requires access keys and secrets. There exists some recent effort to fix this, but it's not ready, nor is it necessary. It's sufficient to chain a few commands together to do the required transfer to s3 after the process completes.

The potential benefit of the FUSE plugin is to obviate the need for an EFS volume, which is an additional cost on top of the S3 storage, which can potentially fall out of sync. I'm contributing the s3fs-enabled docker image as a historical artifact that would potentially be useful, and possibly soon. The downside of taking this route, however, is that containers using FUSE need to run in privileged mode, which may open vectors for misbehavior. A topic for later debate, perhaps.

@jpolchlo jpolchlo marked this pull request as ready for review June 6, 2023 18:47
@jpolchlo
Copy link
Collaborator Author

jpolchlo commented Jun 6, 2023

Opening this up for review. I do need to document how to use this in a README, but the content is as good as it's going to get.

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.

1 participant