1. 03 Sep, 2021 2 commits
    • Matthias Kretz's avatar
      Merge branch 'master' into 'master' · d11eecc5
      Matthias Kretz authored
      See merge request !2
      d11eecc5
    • Victor Penso's avatar
      Improve documentation and defaults · 0d465520
      Victor Penso authored
      * A Vagrant configuration file for testing on CentOS 7 (GCC 8) and CentOS Stream 8
      * Improved documentation in README
      * Improve debugging in `slurm-singularity-wrapper.sh`
      * Default libdir to /etc/slurm/spank
      * Improved defaults in singularity-exec.conf
      * Expose SLURM_SINGULARITY_* env vars for debugging
      0d465520
  2. 22 Oct, 2020 3 commits
  3. 15 Oct, 2020 1 commit
    • Matthias Kretz's avatar
      Prefix env vars with SLURM_ · 68e8f819
      Matthias Kretz authored
      	* main.cpp: Read SLURM_SINGULARITY_CONTAINER and
      	SLURM_SINGULARITY_BIND to initialize plugin options. This should
      	avoid any name clashes with both Slurm and Singularity.
      68e8f819
  4. 14 Oct, 2020 2 commits
    • Matthias Kretz's avatar
      Warn about ignored args · debd9901
      Matthias Kretz authored
      	* slurm-singularity-wrapper.sh: For now SLURM_SINGULARITY_ARGS
      	are ignored. Warn if any arguments are still passed to the
      	script.
      debd9901
    • Matthias Kretz's avatar
      Abstract bind mounts · 202a5701
      Matthias Kretz authored
      	* main.cpp (only_once): allow on_success to optionally return a
      	status value.
      	(add_bind_mounts): New callback for --singularity-bind option.
      	(disable_bind_defaults): New callback for
      	--singularity-no-bind-defaults.
      	(singularity_exec::init): Add bind= and args=disabled
      	plugstack.conf arguments. Document those on error. Register new
      	options --singularity-bind and --singularity-no-bind-defaults.
      	Remove --singularity-add-args. Make --singularity-args
      	conditional on args=disabled.
      	(singularity_exec::start_container): Concat bind mount arguments
      	and communicate them to the script via SLURM_SINGULARITY_BIND
      	environment variable.
      	* singularity-exec.conf: Set args=disabled and rewrite existing
      	--bind args into bind= argument.
      	* slurm-singularity-wrapper.sh: Read and unset
      	SLURM_SINGULARITY_BIND. If set call singularity with --bind
      	option. For now, ignore SLURM_SINGULARITY_ARGS in the script.
      202a5701
  5. 13 Oct, 2020 5 commits
  6. 07 Oct, 2020 4 commits
    • Matthias Kretz's avatar
      New option to add singularity arguments · be07be9c
      Matthias Kretz authored
      	* main.cpp (Buttocks::context): New function.
      	(singularity_exec::only_once): New utility function for option
      	callbacks to ensure the callback is only handled once and the
      	option only supplied once.
      	(singularity_exec::set_container_name/set_singularity_args): Use
      	only_once.
      	(singularity_exec::add_singularity_args): New function as
      	callback for --singularity-add-args.
      	(singularity_exec::init): Register now option
      	--singularity-add-args.
      be07be9c
    • Matthias Kretz's avatar
      Change option names · b3aea886
      Matthias Kretz authored
      	* main.cpp: Rename --container to --singularity-container and
      	--singularity_args to --singularity-args.
      b3aea886
    • Matthias Kretz's avatar
      Code docs and improved error handling · f4285354
      Matthias Kretz authored
      	* main.cpp (Buttocks, singularity_exec): Add minimal
      	documentation to member functions. Catch Buttocks::SpankError,
      	print their description and return the negative error code. Also
      	return -1 on execvpe failure. Previously, positive error codes
      	would not lead to fatal error handling.
      f4285354
    • Matthias Kretz's avatar
      Enable arbitrary singularity arguments · bfbafc61
      Matthias Kretz authored
      	* main.cpp: Parse args= in plugstack.conf to set default
      	--singularity_args value. Add --singularity_args option,
      	printing the default value in the help output. Pass
      	--singularity_args string as SLURM_SINGULARITY_ARGS envvar to
      	the script. Remove --no-container option.
      	* singularity-exec.conf: Add GSI default singularity arguments.
      	* slurm-singularity-wrapper.sh: Handle SLURM_SINGULARITY_ARGS
      	envvar: unset it and pass the string as arguments to
      	singularity. Inspect whether the container is a path (i.e.
      	contains a slash), if not, interpret it as a vae.gsi.de
      	container.
      bfbafc61
  7. 06 Oct, 2020 3 commits
    • Matthias Kretz's avatar
      Change strategy how to call singularity · bbd8aaa0
      Matthias Kretz authored
      	* Makefile: Rebuild on Makefile changes.
      	* main.cpp: Instead of changing the job argument vector (which
      	spank.h forbids: "should not be [...] modified"), do the execvpe
      	right before Slurm would do it. This way the plugin can adjust
      	the call signature in any conceivable way.
      	* slurm-singularity-wrapper.sh: Adjust to new call signature.
      bbd8aaa0
    • Matthias Kretz's avatar
      Clean up standard make targets · ef5d2a2a
      Matthias Kretz authored
      	* Makefile: Rename install to install-scp (only for my test
      	setup). Add install target, which installs to standard
      	locations. Add very basic help and clean targets.
      ef5d2a2a
    • Matthias Kretz's avatar
      Initial proof-of concept plugin · eb412ead
      Matthias Kretz authored
      	* .gitignore: New file.
      	* LICENSE: New file.
      	* Makefile: New file.
      	* README.md: New file.
      	* main.cpp: New file.
      	* singularity-exec.conf: New file.
      	* slurm-singularity-wrapper.sh: New file.
      	* spank.h: New file.
      eb412ead