SingularityCE 4.0.0 Release Candidate 1 #2086
dtrudg
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
SingularityCE 4.0.0-rc.1 is a release candidate for the upcoming 4.0.0 release, with changes detailed below.
OCI-mode
Singularity 4 introduces OCI-mode as a fully supported feature. It is enabled by using the
--ociflag with therun / shell / exec / pullcommands, or by settingoci mode = yesinsingularity.conf.In OCI-mode:
pull-ed to an OCI-SIF file. An OCI-SIF file encapsulates the OCI image configuration and squashed filesystem using an OCI, rather than Singularity specific, structure.run / shell / execcommands use a low-level OCI runtime (crun/runc) for container execution.--compatin Singularity's non-OCI native mode.--no-compatflag.OCI-mode changes from 3.11 to 4.0 include:
run / shell / execin OCI-mode now includes support for the following existing CLI flags:--add-caps--drop-caps--keep-privs--no-privs--overlayfrom directories, bare squashfs and extfs images.--workdir--scratch--no-home--no-mount(dev cannot be disabled in OCI mode)--no-umask(with--no-compat)--writable-tmpfs(with--no-compat)--deviceflag to "action" commands (run/exec/shell) when run in OCI mode (--oci). Currently supports passing one or more (comma-separated) fully-qualified CDI device names, and those devices will then be made available inside the container.--cdi-dirsflag to override the default search locations for CDI json files, allowing, for example, users who don't have root access on their host machine to nevertheless create CDI mappings (into containers run with--fakeroot, for example).--fakeroot, has OCI default effective/permitted capabilities.--env-fileis evaluated with respect to the host environment, to match native mode behaviour.fuse-overlayfsandfusermountfor overlay mounting and unmounting.SINGULARITY_CONTAINLIBSenv var, to specify libraries to bind into/.singularity.d/libs/in the container.docker://,http://,https://andoras://URIs.--no-compatflag can be used with OCI-mode to mirror singularity's historic native mode behavior on a variety of settings, instead of setting them the way other OCI runtimes typically do:$HOME,/tmp,/var/tmpare bind mounted from the host./devis bind mounted from the host, unlessmount dev = minimalinsingularity.conf(requirescrun, not applied withrunc).bind pathentries insingularity.confare mounted into the container.--writable-tmpfsis also used.--no-umaskis also used.pullcommand now accepts a new flag--ocifor OCI image sources. This will create an OCI-SIF image rather than convert to Singularity's native container format.oras://URIs.docker://URIs.oci modedirective insingularity.confcan be set to true to enable OCI-mode by default. It can be negated with a new--no-ocicommand line flag.See the admin guide and user guide for full requirements of OCI-mode and usage information.
Changed defaults / behaviours
Packages / Requirements
/var/lib/singularity(rather than/var/singularity) to store local state files.share/bash-completion/completionslocation, rather than underetc.--vmand related flags to start singularity inside a VM have been removed. This functionality was related to the retired Singularity Desktop / SyOS projects.squashfuse_ll/squashfuse, which is now built from a git submodule unless--without-squashfuseis specified as an argument tomconfig. When built with--without-squashfuse,squashfuse_llorsquashfusewill be located onPATH. Version 0.2.0 or later is required.CLI
remotehave been moved to their own, dedicatedregistrycommand. Runsingularity help registryfor more information.remote listsubcommand now outputs only remote endpoints (with keyservers and OCI/Docker registries having been moved to separate commands), and the output has been streamlined.singularity remote addcommand will now set the new endpoint as default. This behavior can be suppressed by supplying the--no-default(or-n) flag toremote add.remotehave been moved to their own, dedicatedkeyservercommand. Runsingularity help keyserverfor more information.singularity key listoutput.--cwdis now the preferred form of the flag for setting the container's working directory, though--pwdis still supported for compatibility.Runtime Behaviour
--homeis handled when running as root (e.g.sudo singularity) or with--fakeroothas changed. Previously, we were only modifying theHOMEenvironment variable in these cases, while leaving the container's/etc/passwdfile unchanged (with its homedir field pointing to/root, regardless of the value passed to--home). With this change, both the value ofHOMEand the contents of/etc/passwdin the container will reflect the value passed to--home.SINGULARITY_BINDenvironment variable. (Previously, image-mounts were always performed first, regardless of order.)singularity mountno longer sets any inheritable / ambient capabilites, matching other OCI runtimes.singularity oci mountnow uses, and requires,squashfuse_llorsquashfuseto mount a SIF image to an OCI bundle. Note thatsquashfuse_llis built with singularity unless--without-squashfuseis passed tomconfig.--no-mount home,cwdinstead of just--no-mount hometo avoid mounting from$HOMEif you runsingularityfrom inside$HOME.New Features & Functionality
{{ variable }}will be replaced by a value defined either by avariable=valueentry in the%argumentssection of the definition file, or through new build options--build-argor--build-arg-file.--secretflag (shorthand:-s) tokey removesubcommand, to allow removal of a private key by fingerprint.--privateas a synonym for--secretinkey list,key export, andkey removesubcommands.remote statuscommand will now print the username, realname, and email of the logged-in user, if available.cachecommands now accept--type oci-sifto list and clean cached OCI-SIF image conversions of OCI sources.instance startcommand now accepts an optional--app <name>argument which invokes start script within the%appstart <name>section in the definition file. Theinstance stopcommand still only requires the instance name.--no-pidflag forsingularity run/shell/execdisables the PID namespace inferred by--containalland--compat.--platformflag can be used to specify anOS/Architecture[/Variant]when pulling images from OCI or library sources. When pulling from library sources the optional variant is ignored.--archflag can now be used to specify a required architecture when pulling images from OCI, as well as library sources.Developer / API
singularity.conf, theimage driverdirective has been removed, andenable overlayno longer supports thedriveroption.pkg/build/types.Definitionstruct. New.FullRawfield introduced, which always contains the raw data for the entire definition file. Behavior of.Rawfield has changed: for multi-stage builds parsed withpkg/build/types/parser.All(),.Rawcontains the raw content of a single build stage. Otherwise, it is equal to.FullRaw.github.com/sylabs/singularity/v4, reflecting the major version of the application.Bug Fixes
--workdirwhen given relative path and--scratch.$HOMEin--ocimode whenmount home = noinsingularity.conf.Thanks / Reporting Bugs
Thanks to our contributors for code, feedback and, testing efforts!
As always, please report any bugs to: https://github.com/sylabs/singularity/issues/new
If you think that you've discovered a security vulnerability please report it to: [email protected]
Have fun!
Downloads
Source Code
Please use the singularity-ce-4.0.0-rc.1.tar.gz download below to obtain and install SingularityCE 4.0.0-rc.1. The GitHub auto-generated 'Source Code' downloads do not include required dependencies etc.
Packages
RPM / DEB packages are provided for:
These packages were built with Go 1.21.0
This discussion was created from the release SingularityCE 4.0.0 Release Candidate 1.
Beta Was this translation helpful? Give feedback.
All reactions