Operator Configuration#

This page covers Helm values for the nvidia-studio-voice-h4m-operator chart (controller pod) and fields for the NvidiaStudioVoiceMediaFunction custom resource (NIM workload).

Pipeline tuning semantics on the custom resource match the Pipeline Configuration Helm keys.


Operator Helm Chart (nvidia-studio-voice-h4m-operator)#

Values for the operator controller pod (not the NIM deployment):

Configuration

Helm Key

Comment

Operator image

image.repository, image.tag, image.pullPolicy

Default: repo nvcr.io/nim/nvidia/studio-voice-h4m-operator, tag 1.2.0, pull Always.

Inline registry credentials (operator pod)

imageCredentials.*

Defaults: registry nvcr.io, username $oauthtoken, password "", email ""; empty password skips chart-created pull secret.

Inline registry credentials (NIM operands)

mediaFunction.imageCredentials.*

Same shape as imageCredentials; empty password skips the media-function registry secret.

Pull secrets

imagePullSecrets

Default: [{name: ngc-api-key}] (operator pod image pull).

Default NIM image for operands

mediaFunction.image, mediaFunction.imagePullSecrets

Defaults: image nvcr.io/nim/nvidia/studio-voice-h4m:1.2.0, pull secrets [{name: ngc-api-key}].

Default NIM scheduler

mediaFunction.schedulerName

Default: "" (cluster default); applied to operator-managed NIM pods when the CR omits spec.schedulerName. The standalone service and sample Helm charts default to schedulerName: topo-aware-scheduler for NUMA-aligned placement and expose it as a Helm value (per-component, or via global.schedulerName on the umbrella chart).

Operator replicas

replicas

Default: 1.

Leader election

leaderElection

Default: true.

Operator pod resources

resources.*

Defaults: limits 500m CPU / 128Mi memory; requests 10m CPU / 64Mi memory.

Metrics

metrics.enabled, metrics.port

Default: true, port 8443.

Service account

serviceAccount.create, serviceAccount.name

Default: create true, name "".

Important

The media-function image is configured when the operator is installed, so NvidiaStudioVoiceMediaFunction instances managed by an operator use the same validated operator and media-function image combination. This approach ensures that the operator and workload are always supported together and avoids compatibility issues.

As a result, CRs managed by an operator share the chart-level mediaFunction.image and mediaFunction.imagePullSecrets configured at install time. To run multiple custom resources with different NIM image tags, deploy multiple operators, each configured with its own mediaFunction.image. For more context, refer to Known Limitations.


Custom Resource (NvidiaStudioVoiceMediaFunction)#

Full YAML example: Example Manifest.

Scheduling and Cluster#

Configuration

CR Path

Comment

Node selector

spec.nodeSelector

Kubernetes node labels (for example, kubernetes.io/hostname).

Scheduler

spec.schedulerName

Optional. Kubernetes schedulerName for the Studio Voice NIM operand pod (for example, topo-aware-scheduler for NUMA-aligned placement of the GPU, SR-IOV virtual function, and CPU pinning, or default-scheduler for clusters that lack a topology-aware scheduler). The operator does not currently validate this field. On a NUMA-spacious cluster, default-scheduler typically schedules successfully but is not guaranteed to be NUMA-aligned, so per-packet latency can vary slightly from the Support Matrix figures while remaining within the SMPTE ST 2110-21 envelope. On a NUMA-booked cluster, the kubelet might reject the pod with TopologyAffinityError. Refer to Scheduler and NUMA Topology.

Parameters: Network, Resources, Secrets, Security#

Configuration

CR Path

Comment

High-speed networks

spec.parameters.highSpeedNetwork

Default name: media-a-tx-net; list of {name} for Multus.

NIM pod resources

spec.parameters.resources

CPU, memory, hugepages, GPU.

NGC model download

spec.parameters.ngcSecret

secretName, secretKey; default key: NGC_API_KEY.

Model cache / logs

spec.parameters.nimModelCache, nimLogs

Each has a path (default /opt/nim/.cache and /workspace/nim-logs) and a nested pvc.{enabled,claimName,size,storageClassName} block (default pvc.enabled: false). When pvc.enabled: true, the operator binds an existing claim with that name or creates one (annotated helm.sh/resource-policy: keep). Refer to Advanced Usage.

Security context

spec.parameters.securityContext

Example: runAsUser: 1000, capabilities for Rivermax and RTP; refer to Getting Started.

Pod security context

spec.parameters.podSecurityContext

fsGroup, seccompProfileType.

NMOS metadata

spec.parameters.label, spec.parameters.description

NMOS IS-04 registration strings.

Parameters: CR#

Configuration

CR Path (spec.parameters.*)

Comment

NMOS enabled

nmosEnabled

Default: true.

NIM enabled

nimEnabled

Default: true; false disables inference at runtime but does not relax the pod’s resource requests (GPU and SR-IOV VF are still reserved).

Log level

loggingLevel

0 FATAL, 1 ERROR, 2 WARN, 3 INFO (default), 4 DEBUG, 5 VERBOSE.

Inputs and Outputs#

Area

CR Path

Comment

Audio in

spec.inputs.audio_input

control, transport, format.audio; single mono audio input. See subfields in the next table.

Audio out

spec.outputs.audio_output

Enhanced audio output; same format as input.

Subfields for format.audio#

These subfields apply to audio input and audio output.

Field

Example Value

Comment

sample_rate

48000

Audio sample rate in Hz. Fixed at 48000; the CRD rejects other values (enum: [48000]).

channel_count

1

Mono per stream. (Studio Voice expects a single mono speech stream.)

sample_depth

24

Bits; corresponds to PCM L24.

media_type

audio/L24

Fixed for ST 2110-30 mono L24.


See Also#