Skip to content

dcbradley/parrot_glidein_wrapper

Repository files navigation

This is a job wrapper that we use in the Wisconsin CHTC glideinWMS
frontend to provide CVMFS access to jobs via Parrot.  We therefore
do not rely on the site admin to mount CVMFS for us.  An optional
CMS-specific component does additional configuration for CMS jobs
to run in this mode.

The behavior of the wrapper is controlled by settings in parrot_cfg.
You can configure which repository to test for validation, which
repositories to enable in parrot, and which central http proxies
to use in case the site proxy is not suitable.

There are two main ways the wrapper can be used: strict mode and
lenient mode.  In strict mode, the CVMFS wrapper is always used.  In
lenient mode, the wrapper is only used if the job requires it.  I call
this lenient mode, because if CVMFS setup fails when the glidein is
initializing itself, it will skip it and just not match to jobs that
require CVMFS.  In strict mode, if setup fails, the glidein startup
aborts.

Strict mode is configured with the following settings in parrot_cfg:

GlideinAlwaysUseParrotWrapper=true
GlideinRequiresParrotCVMFS=true
GlideinRequiresCMSFrontier=true

(The CMSFrontier setting is only appropriate for glideins that are
used solely by CMS.  Others can omit that.  It only makes a difference
if one includes parrot_cms_setup in the frontend configuration
described below.)

Lenient mode is configured with the following settings in parrot_cfg:

GlideinAlwaysUseParrotWrapper=false
GlideinRequiresParrotCVMFS=false
GlideinRequiresCMSFrontier=false

In lenient mode, users who want CVMFS need to declare that their job
requires CVMFS by putting the following in the job submit file:

+RequiresCVMFS = True

And to prevent the job from running somewhere that lacks this
capability, the following can be put in the job requirements:

Requirements = HasParrotCVMFS

(The above job requirements are recommended, but, just in case, if the
glidein fails to validate CVMFS access, the glidein START expression
automatically filters out jobs that define RequiresCVMFS=True.)


For CMS jobs, some additional configurations are made:
  * VO_CMS_SW_DIR points to /cvmfs/cms.cern.ch.
  * The site squid proxy is used as the frontier proxy if it
    is determined to be a compatible version.
  * Data files are read via xrootd.

In lenient mode, it is recommended that CMS jobs define

+RequiresCMSFrontier = True

and

Requirements = HasCMSFrontier

(The above job requirements are recommended, but, just in case, if the
glidein fails to validate Frontier access, the glidein START expression
automatically filters out jobs that define RequiresCMSFrontier=True.)



GlideinWMS frontend configuration:

Run 'make' to create the tar files referenced below.

We put the following in our global <files> section.  (Substitute a
different parrot_cfg source file as appropriate for your situation.
See parrot_cfg_* for examples.)

      <file absfname="/home/condor/wisc_glidein_scripts/parrot.tgz" after_entry="True" after_group="False" const="True" executable="False" untar="True" wrapper="False">
         <untar_options absdir_outattr="GLIDEIN_PARROT" cond_attr="TRUE"/>
      </file>
      <file absfname="/home/condor/wisc_glidein_scripts/parrot_cfg_wisc" relfname="parrot_cfg" after_entry="True" after_group="False" const="True" executable="False" untar="False" wrapper="False">
         <untar_options cond_attr="TRUE"/>
      </file>
      <file absfname="/home/condor/wisc_glidein_scripts/parrot_setup" after_entry="True" after_group="False" const="True" executable="True" untar="False" wrapper="False">
         <untar_options cond_attr="TRUE"/>
      </file>
      <file absfname="/home/condor/wisc_glidein_scripts/cvmfs_job_wrapper" after_entry="True" after_group="False" const="True" executable="False" untar="False" wrapper="True">
         <untar_options cond_attr="TRUE"/>
      </file>

Additionally, we add the following CMS-specific configuration:

      <file absfname="/home/condor/wisc_glidein_scripts/cms_siteconf.tgz" after_entry="True" after_group="False" const="True" executable="False" untar="True" wrapper="False">
         <untar_options absdir_outattr="GLIDEIN_CMS_SITECONF" cond_attr="TRUE"/>
      </file>
      <file absfname="/home/condor/wisc_glidein_scripts/parrot_cms_setup" after_entry="True" after_group="False" const="True" executable="True" untar="False" wrapper="False">
         <untar_options cond_attr="TRUE"/>
      </file>



MONITORING

The following attributes are advertised in the glidein startd classad:

HasParrotCVMFS = True/False
SiteSquidVersion = "2.7.STABLE9"
CMSFrontierUsingSiteSquid = True/False
HasCMSFrontier = True/False

About

A glideinWMS job wrapper to enable CVMFS access through parrot.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages