Skip to content

Using NERSC's registry.nersc.gov

NERSC's registry.nersc.gov is a private registry with OCI (Open Container Initiative) support. It can provide storage for both container images and OCI-compliant Helm charts. Users who wish to store images in the NERSC private registry are welcome to request access to registry.nersc.gov via filing a ticket at help.nersc.gov. Users who have completed Spin training may already have access. For any user who does not have access, logging into registry.nersc.gov will fail with "Invalid user name or password."

This registry is project-based, similar to our CFS and /global/common/software filesystems. This means that each top-level project namespace can be shared between all members of a project.

As a best practice, users should generally store images and/or Helm charts in their own namespace. In the project “musicians”, we suggest that each user create and use their own namespaces underneath, for example:

registry.nersc.gov/musicians

User santana should create their own namespace under their project musicians:

registry.nersc.gov/musicians/santana

Individual projects may also agree upon other project-wide namespaces, for example:

registry.nersc.gov/musicians/smooth
registry.nersc.gov/musicians/santana
registry.nersc.gov/musicians/robthomas

smooth, a directory where users santana and robthomas can share their collaboration materials, can be decided upon by users in the musicians project.

Creating an image or Helm chart with this name/tag pattern and pushing it to registry.nersc.gov will create the desired namespace under the musicians project. For example, the user may push a container image tagged as registry.nersc.gov/musicians/smooth/radio:edit or push a Helm chart to registry.nersc.gov/musicians/smooth/radio-chart:edit. Either of these two actions will create the smooth namespace on registry.nersc.gov.

If you have questions, please don’t hesitate to file a ticket at help.nersc.gov.

Interacting with the Registry for Container Images

To interact with NERSC's registry.nersc.gov for container images, you can use podman-hpc. The syntax of building, tagging, and pushing images are similar to other tools like docker and podman. Below are the steps to log in, build, tag, and push a container image using podman-hpc:

Login to the Registry

First, log in to the registry using podman-hpc:

podman-hpc login registry.nersc.gov

You will be prompted to enter your username and password. Ensure you have access rights; otherwise, the login will fail with "Invalid user name or password" as described above.

Build a Container Image

For more details, please refer to this section on building-images with podman-hpc. In short, navigate to the directory containing your Containerfile or Dockerfile and run:

podman-hpc build -t registry.nersc.gov/<project>/<namespace>/<image-name>:<tag> .

Replace <project>, <namespace>, <image-name>, and <tag> with your specific project, namespace, image name, and desired tag.

Tag the Image

If you need to tag an existing image, use the following command:

podman-hpc tag <local-image-name>:<local-tag> registry.nersc.gov/<project>/<namespace>/<image-name>:<tag>

This command assigns a new tag to your local image, preparing it for pushing to the registry.

Push the Image

Finally, push your tagged image to the registry:

podman-hpc push registry.nersc.gov/<project>/<namespace>/<image-name>:<tag>

This uploads your image to the specified namespace within the registry.

Interacting with the Registry for Helm Charts

For instructions on pushing, and installing Helm charts, please refer to this section for using Helm Charts from an OCI registry.