[8.0] feat: SingularityCE: looking for the platform-aware image in CVMFS lo…
…cation
15th Jul Converted to draft, waiting if https://mattermost.web.cern.ch/cernvm/pl/djgirmur8tn33rkpu3px8dm6ao is implemented (multi-arch images)
BEGINRELEASENOTES
*Resources CHANGE: SingularityCE can find at runtime which image to use, based on the local platform
ENDRELEASENOTES
To summarise some of the thingsI just said in person:
- For strings represeting the architecture I really think we should follow: https://github.com/opencontainers/image-spec/blob/main/image-index.md#platform-variants
- In
${CVMFS_locations}/container/${technology}/${operating_system}/${platform}//container/really restricts what you can use. For example we can't use/cvmfs/unpacked.cern.chor/cvmfs/lhcb.cern.chtechnologyis meaningless in this context- How could you apply versioning to this scheme so people can quickly roll back to a previous image?
I really think the layout should just be:
${MultiPlatformContainerRoot}/${architecture}${variant}
Then installations can do whatever they want with MultiPlatformContainerRoot.
For the ${architecture}${variant} part there is a little bit more room for debabte, ideally we should get unpacked.cern.ch to commit to exactly what they're going to do and do the same thing. We can also probably be lazy about variant for now (but we definitely need to have a plan for how it can be seemlessly supported).
It's then nice and simple, there are just two options for SingularityCE:
ContainerRoot: Legacy, for installations with homogeneous resourcesMultiPlatformContainerRoot: Recommend, used by default to get whatever we decide as the canonical image
Then the question is what the default image for vanilla DIRAC should be...
I pushed (just before your comment) something close to what you are suggesting.
https://mattermost.web.cern.ch/cernvm/pl/kgtpiz81htd7pk45xa7jjq4nie