Configuring Singularity to use cloud.sycloud.io


UPDATE - 2022-10-19 18:30 UTC

The Sylabs.io domain has been restored. Standard access to SCS via cloud.sylabs.io is now operational.

----


We are currently experiencing technical difficulties and are working to resolve an issue with the Sylabs.io domain.


While we work to restore the domain, Singularity Container Services (library, remote builder, and keystore) are available via https://cloud.sycloud.io


To use the services from the SingularityCE or SingularityPRO command line, you will need to add a new remote configuration, and set Singularity to use it.


If you only pull or build locally from public images, you can skip step 1, as you will not need an access token.


Step 1. Obtain a new access token for cloud.sycloud.io


  • Go to cloud.sycloud.io in your web browser.

  • Sign in, or if you are a new user, sign up, with your preferred auth provider.

  • Once signed in, click on your profile menu and select Access Token.


  • Type any name for the access token.

  • Click on the “Create Access Token” button.

  • Copy the token to your clipboard, or save it in a secure location.



Step 2. Configure Singularity to use cloud.sycloud.io (own user)


Add a new remote, named sycloud, for your user account (please note the name of the remote server can be any of your preference and is case sensitive). This will be used whenever you run singularity, except with sudo (step 3).


From the cli execute the following commands:


> singularity remote add sycloud cloud.sycloud.io
INFO:    Remote "sycloud" added.
Generate an access token at https://cloud.sycloud.io/auth/tokens, and paste it here.
Token entered will be hidden for security.
Access Token:

Paste your new access token and press the Enter key button.


Note - If you do not need an access token, then you can add the --no-login flag, to avoid being prompted for one:

> singularity remote add --no-login sycloud cloud.sycloud.io
INFO:    Remote "sycloud" added.



Next instruct Singularity to use the new remote endpoint by default:


> singularity remote use sycloud


Now you can confirm by listing your configure remotes, under the “Active” column, look for “YES”.


> singularity remote list
Cloud Services Endpoints
========================

NAME         URI               ACTIVE  GLOBAL  EXCLUSIVE  INSECURE
sycloud      cloud.sycloud.io  YES     NO      NO         NO
SylabsCloud  cloud.sylabs.io   NO      YES     NO         NO

Keyservers
==========

URI                              GLOBAL  INSECURE  ORDER
https://keys.sycloud.io  YES     NO        1*

* Active cloud services keyserver

 Authenticated Logins
=================================

URI                 INSECURE
docker://docker.io  NO

At this point access to the library, remote builder, and keystore are available from your own user account.


Step 3. Configure Singularity to use cloud.sycloud.io (root / sudo)


If you build containers using sudo, or the root user account, then you should also configure that account to use cloud.sycloud.io.


Generally the root user will not have an access token, so create the remote with --no-login:


> sudo singularity remote add --no-login sycloud cloud.sycloud.io
INFO:    Remote "sycloud" added.


Next instruct Singularity to use the new remote endpoint by default:

> sudo singularity remote use sycloud


You can now run builds from images hosted in the Sylabs library, with sudo or the root account.


Advanced Configuration (Optional)

On multiple user systems, a system administrator may wish to add the new remote as a global remote, available to all users. Also, if you have set exclusive access to cloud.sylabs.io, you will need to update that.


Documentation covering the management of remote configuration can currently be found hosted on the sylabsco.io domain at:


https://docs.sylabsco.io/guides/3.10/user-guide/endpoint.html#managing-remote-endpoints


https://docs.sylabsco.io/guides/3.10/admin-guide/configfiles.html#remote-yaml