UCC: Deployment#
Configuration#
First follow the UCC: Configure to craft a values.yaml for your environment.
Deployment Steps#
1. Configure Helm#
If the chart repo nvidia/omniverse is not setup, execute the following to add
the repo and update the local chart index.
To review your existing chart repositories run the following.
helm repo list
If https://helm.ngc.nvidia.com/nvidia/omniverse is not listed, run the following
to setup the chart repository.
# Replace <ngc-api-key> with your org's access token or your NGC personal key with access
# to BYOC NGC repo.
helm repo add omniverse https://helm.ngc.nvidia.com/nvidia/omniverse \
--username '$oauthtoken' \
--password "<ngc-api-key>"
helm repo update
2. Prepare Namespace#
Create the Kubernetes namespace where the service will be deployed, if it doesn’t already exist. Skip this step if the target namespace already exists.
# Create the namespace if does not already exist.
kubectl create namespace ucc
3. Create Required Secrets#
- Image Pull Secret
Create a secret to allow Kubernetes to access the NGC registry.
# Setup the docker-registry secret. # Replace <ngc-api-key> with your org's access token or your NGC personal key with access # to BYOC NGC repo. kubectl create secret docker-registry ngc-container-pull \ --namespace ucc \ --docker-server=nvcr.io \ --docker-username='$oauthtoken' \ --docker-password=<ngc-api-key>
Important
The secret name
ngc-container-pullmust match the one specified in your Helm values underimage.pullSecrets.
- (Optional) TLS Secret
If you are enabling TLS for a production deployment, follow the UCC: TLS Configuration guide to create and configure TLS secrets.
4. Install Helm Chart#
Using the prepared values file, install the usd-content-cache Helm chart.
helm install ucc omniverse/usd-content-cache \
--namespace ucc \
-f values.yaml
5. Verify Deployment#
After installation, verify that UCC pods are running and healthy:
# Check all UCC resources
kubectl get all -n ucc -l app.kubernetes.io/instance=ucc
# Check pod status
kubectl get pods -n ucc -l app.kubernetes.io/instance=ucc
# View pod logs
kubectl logs -n ucc -l app.kubernetes.io/instance=ucc -f --all-containers=true
Verify Service Endpoints:
UCC creates two services: * UCC Service: Main cache service on port 14128 * Nucleus Service: Large File Transfer (LFT) service on port 14129
# Check services
kubectl get svc -n ucc -l app.kubernetes.io/instance=ucc
# Verify service endpoints
kubectl get endpoints -n ucc -l app.kubernetes.io/instance=ucc
Test Cache Connectivity (from within cluster):
You can test connectivity to UCC from a pod within the cluster:
# Test HTTP connection to S3 backend via cache
curl -v http://ucc.ucc.svc.cluster.local:14128/unittests/stat/empty.txt \
-H 'Host: omniverse-storage-service-cicd-public.s3.us-west-2.amazonaws.com'
# If TLS is enabled, test HTTPS connection
curl -v https://ucc.ucc.svc.cluster.local:14128/unittests/stat/empty.txt \
-H 'Host: omniverse-storage-service-cicd-public.s3.us-west-2.amazonaws.com'
- Internal Access:
With
service.type: ClusterIP(default), UCC is accessible within the Kubernetes cluster at:UCC Service:
http://ucc.ucc.svc.cluster.local:14128Nucleus Service:
http://ucc.ucc.svc.cluster.local:14129
If TLS is enabled, use
https://instead ofhttp://.- External Access:
If required, configure external access via
service.type: LoadBalancerin Helm values or by deploying a separate Ingress resource targeting the UCCClusterIPservice.
Uninstall Instructions#
Uninstall Helm Chart
helm uninstall ucc -n ucc
Remove Unused Persistent Volumes
Orphaned Data Will Remain
Persistent volumes created by the installation are not cleaned up by helm or Kubernetes. New/re-installations will not use pre-existing volumes.
It is recommended to remove unused PVCs after running the uninstall steps above.
# Remove **all** persistent volumes that are not attached to pods from the # given namespace. kubectl delete pvc --all -n ucc
Summary#
This guide covered the deployment steps for UCC, including Helm repository setup, namespace creation, secret configuration, and chart installation. After deployment, verify that UCC pods are running and healthy in your cluster.
For detailed information on configuring UCC settings such as storage sizing, cache behavior, and monitoring, refer to the UCC: Configure guide.