Common Helm Configuration#

This page covers Helm values that apply to any Studio Voice NIM service chart deployment. The same keys appear under nvidia-studio-voice-h4m-service.<key> when the NIM is deployed as part of the end-to-end demo chart.


Global Overrides#

Both the NIM service chart and the end-to-end sample (umbrella) chart expose a global section. When a global value is non-empty, it overrides the corresponding per-component key for all subcharts (sender, receiver, and NIM service). Leave a value as "" to use each component’s own setting instead.

Configuration

Helm Key

Overrides

Comment

Node placement

global.nodeSelector.hostname

<component>.nodeSelector.hostname

Schedule all pods on the same node.

Image pull secret

global.image.secret

<component>.image.secret

Single docker-registry secret name for nvcr.io across all components.

Multus network

global.network.name

<component>.network.name

NetworkAttachmentDefinition name; must match for ST 2110 traffic.

Scheduler

global.schedulerName

<component>.schedulerName

Pod spec.schedulerName for all components.

Note

Use global values when deploying the umbrella chart so that node selector, pull secret, network, and scheduler need to be specified only once instead of per component.


Cluster and Workload#

Configuration

Helm Key

Comment

Deploy NIM workload

enabled

Default: chart-dependent; set false to skip NIM (for example, partial demo chart installation).

Name prefix

appName

Deployment and pod naming.

Replicas

replicas

Default: 1 for GPU media functions.

Node placement

nodeSelector.hostname

Matches kubernetes.io/hostname (or cluster labels).

Scheduler

schedulerName

Default: topo-aware-scheduler for NUMA-aligned placement of the GPU, SR-IOV virtual function, and CPU pinning. Override on clusters that lack a topology-aware scheduler (for example, set to default-scheduler); the umbrella global.schedulerName overrides this setting for all components when non-empty. Refer to Scheduler and NUMA Topology.

Container image

image.repository, image.tag

Published NIM image.

Image pull secret

image.secret

docker-registry secret name for nvcr.io.

Container security

containerSecurityContext.*

runAsUser, runAsGroup, runAsNonRoot, allowPrivilegeEscalation, capabilities.

Multus network attachment

network.name

Default: media-a-tx-net; must match your NetworkAttachmentDefinition name.


NGC and Model Download#

Configuration

Helm Key

Comment

Model download secret

ngc.secretName

Secret containing NGC_API_KEY.

Secret key name

ngc.secretKey

Default: NGC_API_KEY.


Model Cache and Logs PVCs#

Configuration

Helm Key

Comment

Model cache PVC

nimModelCache.*

Default path: /opt/nim/.cache.

NIM logs PVC

nimLogs.*

Default path: /workspace/nim-logs.

Subkeys: enabled, create, size, storageClassName, mountPath, readOnly, subPath. For configuration examples, refer to Advanced Usage.


NMOS#

Configuration

Helm Key

Environment Variable

Comment

NMOS discovery mode

nmos.enabled

true or false; false requires SMPTE ST 2110 static only (fixed IP addresses, ports, sessions). The actual pipeline front-end is controlled by studiovoice.nmosEnabled in Pipeline Configuration.

NMOS HTTP port

nmos.httpPort

NVDS_NMOS_DEFAULT_HTTP_PORT

Default: 9010.

NMOS seed

nmos.seed

NVDS_NMOS_DEFAULT_SEED

NMOS node seed identifier.

Advertised hostname

nmos.hostname

STUDIOVOICE_NMOS_HOSTNAME

mDNS / NMOS IS-04.

Description

nmos.description

STUDIOVOICE_NMOS_DESCRIPTION

NMOS description string.

Label

nmos.label

STUDIOVOICE_NMOS_LABEL

NMOS label string.

Note

NMOS HTTP port 9010 and the Multus network attachment media-a-tx-net are often set in chart templates—confirm for your chart version.


Service Endpoints#

The NIM service chart and umbrella sample chart create a Kubernetes Service for each component that exposes the NMOS Node API (IS-04/IS-05) on port 9010. Use these to reach the NMOS Connection Manager from outside the pod without kubectl port-forward.

Configuration

Helm Key

Comment

Expose endpoint

service.enabled

Default: true. Set false to skip Service creation.

Service type

service.type

Default: NodePort. Supported: ClusterIP, NodePort, LoadBalancer. Use ClusterIP for in-cluster access only and LoadBalancer when the cluster has an external load balancer.

Service port

service.port

Default: 9010 (matches nmos.httpPort).

NodePort

service.nodePort

Used only when service.type: NodePort. Defaults: 32510 (sender), 32511 (receiver), 32512 (NIM service).

In the umbrella sample chart, the same keys apply per-component under sender.service.*, receiver.service.*, and nvidia-studio-voice-h4m-service.service.*. The Service name is <appName>-endpoint.

Note that the NIM HTTP API endpoints described in Observability (port 8000, /v1/health/*, /v1/metrics, and so on) are exposed inside the container and require kubectl port-forward for external access; they are not fronted by the chart-managed Service.


See Also#