8.3. Containers on OSG

OSG has it's own way of handling container deployments for jobs that is hidden from the user and hence Pegasus. They don't allow a user to run an image directly by invoking docker run or singluarity exec. Instead the condor job wrappers deployed on OSG do it for you based on the classads associated with the job. As a result, for a workflow to run on OSG, one cannot specify or describe the container in the transformation catalog. Instead you catalog the executables without a container reference, and the path to the executable is the path in the container you want to use. To specify the container, that needs to be setup you instead specify the following Condor profiles

Table 8.1. Condor Profiles For Specifying Singularity Container for Jobs

Key Value
requirements HAS_SINGULARITY == True
+SingularityImage path to singluarity image on CVMFS

For example you can specify the following in the site catalog for OSG site

<!-- this is our execution site -->
    <site  handle="OSG" arch="x86_64" os="LINUX">
        <profile namespace="pegasus" key="style" >condor</profile>
        <profile namespace="condor" key="universe" >vanilla</profile>
        <profile namespace="condor" key="requirements" >HAS_SINGULARITY == True</profile>
        <profile namespace="condor" key="+SingularityImage" >"/cvmfs/singularity.opensciencegrid.org/pegasus/osg-el7:latest"</profile>
        <profile namespace="condor" key="request_cpus" >1</profile>
        <profile namespace="condor" key="request_memory" >1 GB</profile>
        <profile namespace="condor" key="request_disk" >1 GB</profile>
    </site>