In this section, we explain how UCF Registry and repositories in the registry are organized. Repositories can be local or remote on NGC. Developers can interact with the repositories using the UCF Tools (CLI/Studio).
UCF microservice contains the following artifacts:
UCF Microservice Specification
Any other artifacts like DeepLearning Models and Configurations
Local repository is basically a file based repository created on the host file system.
When a microservice is built it is added to the local repository. The generated UCF Microservice Specification gets stored in this local repository. Based on the mode of microservice creation and build (Refer to Generate scaffolding), Helm Chart and Container Images maybe built and stored locally or maybe used from a remote location.
It is up to the microservice developer on how/where the other artifacts like Models and Configurations are stored and retrieved during deployment.
Users can use the local (default) repository to store microservices.
Currently, UCF supports NGC as the remote repository. NGC is a NVIDIA provided catalog service for containers, pre-trained models, Helm charts for Kubernetes deployments and industry specific AI toolkits with software development kits (SDKs).
UCF uses NGC as a platform for it’s various repositories where it stores the containers, helm charts and the UCF Microservice Specification for the various microservices.
A UCF NGC repository is basically a Private NGC Registry
with a specified
Multiple such use case/product-specific repositories have been created. Each UCF NGC repository contains artifacts specific to the use case/product. It contains:
UCF Microservice Specification for the various microservices used in the use case/product.
Helm Chart for the microservices
Container Images may be uploaded to the same private NGC repository. However this is OPTIONAL.
Other artifacts like Models and Configurations may be uploaded to the same private NGC repository. However this is OPTIONAL.
It is up to the microservice developer on how/where the Container Images and other artifacts like Models and Configurations are stored and retrieved during deployment.
Users cannot create new NGC based repositories and hence they can use the local (default) repository to store microservices.
List of UCF Repositories¶
A list of Repositories that are part of the UCF Registry is uploaded to NGC public catalog. The tools can retrieve this list without any API keys.
Current list of UCF Repositories is:¶
Not all above repositories are accessible to everyone. Only accessible repositories are visible in repo list. Please request access to the repositories from corresponding programs.
When a user sets the NGC API Key, the UCF tools verifies the accessible repositories and populates the repo list.
User A might have access to the UCF repository but not the Tokkio repository and hence User A will only see and interact with UCF repository
User B might have access to both the UCF repository and the Tokkio repository and hence User A will see and interact with both UCF and Tokkio repositories
The UCF Repository¶
The UCF Repository consists of microservices required for building the UCF Reference Applications. It consists of the following microservices:
For the UCF Repository, all artifacts (microservice specifications, helm charts, container images, models, etc.,) have been added to the same private NGC registry and hence having access to just the one UCF private NGC registry is enough to get the UCF reference apps working.
The Tokkio Repository¶
The Tokkio Repository consists of microservices required for building the Tokkio Application. It consists of the following microservices:
For the Tokkio Repository, the microservice specifications and helm charts are part of the UCF Tokkio repository. Other artifacts like container images, models, etc., are part of the NV Tokkio 1.5 private NGC registry.
Hence access to both UCF Tokkio private NGC registry and NV Tokkio 1.5 private NGC registry is required to get the UCF Tokkio App working.
Extending the UCF Repository List¶
The UCF Repository list can be easily extended for other use cases / products like ACE, MDX without having any changes in the tools. This would involve:
Creating a new use case / product specific private NGC team under nv-ucf org for hosting the Microservice Specifications and Helm charts
Depending on use case / product, other artifacts like Container Images, Models etc., may be uploaded to the same private NGC team or maybe uploaded elsewhere
Update the list of Repositories with the new repository and upload to NGC.
With the same unchanged build of tools, whenever user sets the NGC API Key, this updated list of repositories will be fetched and the new repository will be accessible to the user (if the user has been added to the corresponding private NGC team).