Title: Additional Application Features — UCS Tools Documentation

URL Source: https://docs.nvidia.com/ucf/2.10.0/text/UCS_AppAdditionalFeatures.html

Published Time: Thu, 30 Oct 2025 07:23:03 GMT

Markdown Content:
Additional Application Features[#](https://docs.nvidia.com/ucf/2.10.0/text/UCS_AppAdditionalFeatures.html#additional-application-features "Link to this heading")
-----------------------------------------------------------------------------------------------------------------------------------------------------------------

Using the Same Microservice Component Multiple Times in an App[#](https://docs.nvidia.com/ucf/2.10.0/text/UCS_AppAdditionalFeatures.html#using-the-same-microservice-component-multiple-times-in-an-app "Link to this heading")
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Since UCS 2.5.0, you can specify the same microservice multiple times in an application manifest. The example below shows an app that uses microservice A twice and microservice B once:

specVersion: '2.5.0'

version: 0.0.1

doc: README.md

name: multiple-same-ms-example

description: MS A is used twice

dependencies:
- ucf.svc.microserviceA:0.0.1
- ucf.svc.microserviceB:0.0.1

components:
- name: microserviceA one
  type: ucf.service.microserviceA
  parameters:
    paramA1: 100
    paramA2:
    - name: tango
    imagePullSecrets:
    - name: ngc-docker-reg-secret
- name: microserviceA two
  type: ucf.service.microserviceA
  parameters:
    paramA1: 200
    paramA2:
    - name: waltz
    imagePullSecrets:
    - name: ngc-docker-reg-secret
- name: microserviceB
  type: ucf.service.microserviceB
  parameters:
    paramB1: false
  secrets:
    some-secret-name: some-secret

connections:
  microserviceA one/http: microserviceB/http
  microserviceA two/http: microserviceB/http

This feature uses [Helm Chart aliasing](https://helm.sh/docs/topics/charts/#alias-field-in-dependencies). The resulting Chart.yaml looks like this:

apiVersion: v2
name: multiple-same-ms-example
description: MS A is used twice
type: application
version: 0.1.0
appVersion: ''
dependencies:
- name: ucf.svc.microserviceB
  version: 0.0.1
- name: ucf.svc.microserviceA
  version: 0.0.1
  alias: microserviceA one
- name: ucf.svc.microserviceA
  version: 0.0.1
  alias: microserviceA two

**Current limitation:** Parameters specified in the first instance of MicroserviceA also apply to the second instance (and third, fourth, etc.). To avoid this behavior, specify the same parameters for all instances of the same microservice with your desired values. Otherwise, the defaults won’t apply.

Interfacing with the NVIDIA K8s RAG Operator[#](https://docs.nvidia.com/ucf/2.10.0/text/UCS_AppAdditionalFeatures.html#interfacing-with-the-nvidia-k8s-rag-operator "Link to this heading")
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Since UCS Tools 2.5, a new built-in component called `ucf.svc.rag-operator-external` is available. This component represents the [NVIDIA K8s Operator](https://gitlab-master.nvidia.com/dl/container-dev/k8s-rag-operator). It allows microservices in a UCS Application to connect to NeMo microservices managed by the RAG Operator. This simplifies RAG application development in UCS Tools.

You must deploy the RAG Operator to your target K8s platform before deploying your UCS App. The NVIDIA GPU Operator is a dependency and must be running before you install the RAG Operator. Find deployment instructions on the project’s [home page](https://gitlab-master.nvidia.com/dl/container-dev/k8s-rag-operator#install-the-nvidia-gpu-operator).

To deploy the RAG Operator, run these commands:

helm repo add nemollm-ea-rag-examples https://helm.ngc.nvidia.com/ohlfw0olaadg/ea-rag-examples
helm install rag-operator nemollm-ea-rag-examples/rag-operator -n rag-operator --create-namespace

You can optionally configure [GPU time-slicing](https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/gpu-sharing.html.md).

See an [example UCS RAG Application](https://gitlab-master.nvidia.com/ucf/ucs-tools/-/tree/main/examples/retrieval-augmented-generation?ref_type=heads) in our UCS-Tools GitLab repository.

Links/Buttons:
- [#](https://docs.nvidia.com/ucf/2.10.0/text/UCS_AppAdditionalFeatures.html#interfacing-with-the-nvidia-k8s-rag-operator)
- [Helm Chart aliasing](https://helm.sh/docs/topics/charts/#alias-field-in-dependencies)
- [NVIDIA K8s Operator](https://gitlab-master.nvidia.com/dl/container-dev/k8s-rag-operator)
- [home page](https://gitlab-master.nvidia.com/dl/container-dev/k8s-rag-operator#install-the-nvidia-gpu-operator)
- [GPU time-slicing](https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/gpu-sharing.html.md)
- [example UCS RAG Application](https://gitlab-master.nvidia.com/ucf/ucs-tools/-/tree/main/examples/retrieval-augmented-generation?ref_type=heads)
