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

singularity support in the glidein #82

Open
dsschult opened this issue May 3, 2017 · 9 comments
Open

singularity support in the glidein #82

dsschult opened this issue May 3, 2017 · 9 comments

Comments

@dsschult
Copy link
Collaborator

dsschult commented May 3, 2017

Singularity would allow us to convert between OS types. There are hooks in condor 8.6 to support jobs requesting singularity. Figure out how to make this work.

@jvansanten
Copy link
Collaborator

jvansanten commented May 3, 2017

This how-to provides a fairly good overview. Note that Singularity does not like the automounter, so if you eval $(/cvmfs/icecube.opensciencegrid.org/py2-v2/setup.sh) inside the container on a system that uses autofs to mount CVFMS repos, you'll get

sh: /cvmfs/icecube.opensciencegrid.org/py2-v2/setup.sh: Too many levels of symbolic links

A bad workaround is to cat the setup script on the host immediately before entering the container to force the repo to mount.

@dsschult
Copy link
Collaborator Author

dsschult commented May 3, 2017

We probably need to only enable this on appropriate kernels anyway, so I'd just not enable Singularity on systems that don't support automouting correctly (and use automounting).

Note that if it's already mounted, that should be fine. Since part of the glidein setup is to check for cvmfs, this might work fine for us.

@jvansanten
Copy link
Collaborator

jvansanten commented May 3, 2017

Does the slot have to be able to run Singularity containers as jobs, or is it enough to run the glidein inside a container to paper over a weird site OS? In the latter case, it should just be a fairly simple change to glidein_start.sh, but that would also preclude power users from running their own containers.

@dsschult
Copy link
Collaborator Author

dsschult commented May 3, 2017

We probably want both?

Running the entire glidein inside singularity allows us to get around strange issues of the local OS.

Running the individual jobs in singularity is more optimal for the user, since they can specify the OS they want at late binding.

@dsschult dsschult added this to Selected for development in Pyglidein Aug 29, 2017
@briedel
Copy link
Contributor

briedel commented Mar 1, 2019

Another thing to add here is that we might want to add a custom classad for people to run their own containers

@dsschult
Copy link
Collaborator Author

dsschult commented Mar 1, 2019

Note that running singularity inside singularity doesn't work with kernels that don't support user namespaces. This is sadly most computers out there, since they've default disabled it on newer kernels because of security fears.

If we're forced to start the glidein inside a container, we might not be able to support custom user containers.

@briedel
Copy link
Contributor

briedel commented Mar 1, 2019

I guess you mean OSG having singularity inside singularity?

@dsschult
Copy link
Collaborator Author

dsschult commented Mar 1, 2019

Or the example of Cori, or Cedar, where we need to run a centos7 singularity image just to start the glidein. Then you can't let the user job specify an additional container.

@dsschult
Copy link
Collaborator Author

Running the entire glidein inside singularity now works. Thanks to @jamierajewski

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Pyglidein
Selected for development
Development

No branches or pull requests

3 participants