Podman provider
Podman provider is an option for taking control of Virtual Machines (or bare machines) through a remote Kubernetes installation.
Warning
Note! At the moment running with podman requires root privileges.
To install Podman, please refer to the official documentation.
The simplest option to install the submitter is using pip
pip install git+https://github.com/landerlini/interlink-condorce-plugin.git
The following script should work
#!/bin/bash
export PODMAN_BASE_URL=unix:///run/podman/podman.sock
export GITREPO="git+https://github.com/landerlini/interlink-condorce-plugin.git@main"
pip install --update --force-reinstall $GITREPO
while true
do
pip install --force-reinstall --no-deps $GITREPO
interlink podman \
--build-config /data/interlink/podman-recas.cfg \
--server wss://<your NATS server here> \
--pool podman \
--cpu 85 \
--memory 1Ti \
--pods 123 \
--gpus 28 \
--responders 1 \
&> /data/interlink/logs/plugin.log
done;
For production environments, it is a good idea to replace @main with a tagged version of the repository.
A configuration sample
This configuration has been used for Podman in a machine hosted at ReCaS Bari.
# Volumes and directories configuring access to executor-local data
[volumes]
### Area in the executor filesystem to be used for temporary files
scratch_area = "/data/interlink/scratch"
### Location to cache singularity images in the executor filesystem
apptainer_cachedir = "/data/interlink/cache"
### Location where to look for pre-built images
image_dir = "/data/interlink/images"
### Colon-separated list of directories to include in $PATH to look for executables
additional_directories_in_path = []
### Time in seconds between fuse mount and job execution
fuse_sleep_seconds = 15
# Options configuring the behavior of apptainer runtime
[apptainer]
### Relative or absolute path to apptainer, singularity or other compatible replacements
executable = "/usr/bin/singularity"
### Enables --fakeroot in apptainer exec/run commands
fakeroot = false
### Enables --containall flag in apptainer exec/run commands
containall = false
### Define the technique to mount fuse volumes to adopt on the host.
fuse_mode = "host-privileged"
### Do not propagate umask to the container, set default 0022 umask
no_init = false
### Do not bind home by default
no_home = true
### Drop all privileges from root user in container
no_privs = false
### Enable nVidia GPU support
nvidia_support = false
### Clean the environment of the spawned container
cleanenv = true
### Unsquash
unsquash = false
# Proxy to download pre-build Docker Images instead of rebuilding at each execution
[shub_proxy]
### shub proxy instance used to retrieve cached singularity images. Without protocol!
server = ""
### Master token of the proxy used to request and generate client tokens
master_token = ""