-
Notifications
You must be signed in to change notification settings - Fork 20
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
Add new SPRAS image and handle unpacked singularity images #145
Conversation
@agitter, I've tested this and it seems to work when I run it from an OSPool EP. Since I haven't yet set up the actual building of I'm opening this as a draft for now, until we've had a chance to discuss further. |
One thing I'm unsure about is how garbage collecting unpacked sif images might work. I believe other images, both docker and apptainer, are added to some kind of cache that has its own garbage collection rules. However, these unpacked images are written out to disk, so they have the potential to clutter environments that aren't already ephemeral (as would be the case with container-in-container runs). Without some semi-significant refactoring, it's not obvious to me how we can return to delete them. Two things to consider:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My initial pass focused on testing the HTCondor job, Docker image build, and conda environment. I haven't gone through the code changes in detail yet.
@agitter Updates for this: As it stands, this submit file is working for me from AP2002, and submits jobs to the OSPool. However, there's some container funkiness that I'm still looking into. In particular, running the submit file that points to an image on Dockerhub very frequently causes the job to fail with error I've also observed that some snakemake jobs intermittently fail on the EPs, but often succeed after a re-run. That's why I'm using To test things yourself, follow the container build instructions from |
On a side note, when we merge this, we should make sure we actually build/publish |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I built and pushed reedcompbio/spras:v0.1.0
. The test job in spras.sub
worked for me as well when submitted from ap2001
.
The overall design, readme, and test instructions look great. My remaining comments here are pretty minor.
There are a couple things to discuss with the broader team. One is the environment updates. The other is whether to make this an initial release in the GitHub repo. I'm in favor of that now that we'll have tagged Docker images.
When running nested, unprivileged containers singularity containers, there's a bit of extra setup we need to perform in order to get things working. In particular, in order to avoid FUSE requirements, we can "unpack" containers into a directory after we've converted the docker image to a `.sif`. This PR adds a new configuration option to allow that unpacking, as well as a SPRAS runtime container that can be used to demonstrate this behavior in HTCondor. Bundled along with these changes are a variety of package version updates that I needed to change to get things working.
I've tested, and the conda/pip packages seem to resolve/build for both x86/arm on Linux and MacOS.
f1b18ba
to
6cee79f
Compare
We believe the latest test failure is due to Docker pull rate limits. The workflow and tests run for me locally. |
This PR aims to accomplish a few things:
.sif
file directly, we first "unpack" the sif into a directory. Hence the newunpack_singularity
config option.1
is that we need a portable runtime environment that can run SPRAS in these distributed settings. The conda environment doesn't handle installations of apptainer/docker, so this adds a new containerdocker-wrappers/SPRAS
that can be used to this end.8.X.X
range). In updating the version here, I had to chase a few other version incompatibilities. I'm sure there are more to find.