Operator Configuration#
This page covers Helm values for the nvidia-lipsync-h4m-operator chart (controller pod) and fields for the NvidiaLipsyncMediaFunction custom resource (LipSync NIM workload).
Pipeline tuning semantics on the custom resource match the Pipeline Configuration Helm keys.
Operator Helm Chart (nvidia-lipsync-h4m-operator)#
Values for the operator controller pod (not the NIM Deployment).
Configuration |
Helm Key |
Comment |
|---|---|---|
Operator image |
|
Default: repo |
Pull secrets |
|
Default: |
Default NIM image for operands |
|
Single fully-qualified image reference (for example, |
Default NIM scheduler |
|
Default: |
Leader election |
|
Default: |
Operator pod resources |
|
Default: limits |
Important
The media function is configured when the operator is installed, so NvidiaLipsyncMediaFunction instances managed by an operator use the same validated operator and media-function image combination. This ensures the operator and workload are always supported together and avoids compatibility issues.
As a result, CRs managed by an operator share the chart-level mediaFunctionImage and imagePullSecrets configured at install time. To run multiple custom resources with different NIM image tags, deploy multiple operators, each configured with its own mediaFunctionImage.
Custom Resource (NvidiaLipsyncMediaFunction)#
Full YAML example: Example Manifest in Kubernetes Operator Chart.
Scheduling and Cluster#
Configuration |
CR Path |
Comment |
|---|---|---|
Node selector |
|
Kubernetes node labels (for example, |
Pod scheduler |
|
Optional. Kubernetes |
Parameters: Network, Resources, Secrets, Security, Storage#
Configuration |
CR Path |
Comment |
|---|---|---|
High-speed networks |
|
Default name: |
NGC model download |
|
Model download |
Model cache / logs |
|
Fields: |
Security context |
|
Example: |
NMOS metadata |
|
NMOS IS-04 registration strings. |
Parameters: CR#
Configuration |
CR Path ( |
Environment Variable (on NIM Pod) |
Comment |
|---|---|---|---|
Logging level |
|
|
Range: |
Model head movement speed |
|
|
Range: |
NIM process enable |
|
|
Accepts |
Input ancillary data enable (optional) |
|
|
|
Inputs and Outputs#
Area |
CR Path |
Comment |
|---|---|---|
Video in |
|
Uses |
Audio in |
|
Single audio stream. |
Ancillary in (optional) |
|
Optional ancillary/metadata input ( |
Video out |
|
Lip-synced program video. |
Video Format Subfields#
These subfields apply to video input and video output.
Field |
Example Value |
Comment |
|---|---|---|
|
|
Fixed for uncompressed ST 2110-20. |
|
|
Must match NIM |
|
|
Must match NIM |
|
|
Allowed values (CRD admission); set the same value on input and output video. |
|
|
CRD |
|
|
CRD |
|
|
|
|
|
|
|
|
Video Frame Rate#
spec.inputs.video_input.format.video.frame_rate and spec.outputs.video_output.format.video.frame_rate must be identical. Invalid values are rejected when the CR is applied.
Supported values: "24", "25", "30000/1001", "30", "50", "60000/1001", "60"
Use a plain integer string for whole rates (for example "30") and a numerator/denominator string for fractional rates ("30000/1001", "60000/1001"). Quote values in YAML so that fractions are not parsed as numbers.
Audio Format Subfields#
These subfields apply to audio input streams.
Field |
Example Value |
Comment |
|---|---|---|
|
|
Must match NIM |
|
|
Mono per stream; must match NIM |
|
|
Bits; corresponds to PCM L24. |
|
|
Fixed for ST 2110-30 mono L24. |
CR Schema Reference#
With the nvidialipsyncmediafunctions.nvidia.com CRD installed, inspect field types and OpenAPI details from the cluster:
kubectl explain nvidialipsyncmediafunctions.nvidia.com --recursive
kubectl explain nvidialipsyncmediafunctions.nvidia.com.spec
kubectl explain nvidialipsyncmediafunctions.nvidia.com.spec.inputs.video_input.format.video
kubectl explain nvidialipsyncmediafunctions.nvidia.com.spec.outputs.video_output.format.video
Some validation rules might not appear in kubectl explain output but are still enforced when the CR is applied.
Status Conditions (status.conditions)#
Status Overview#
The operator reports health using Kubernetes conditions in status.conditions (type, status, reason, message).
A media function is considered healthy and ready when the following are all True:
Provisioned: Deployment and pod are running.Registered: Successfully registered with NMOS/SDP.Configured: Required configuration has been applied.
Important Statuses#
Status |
What It Means |
|---|---|
|
App deployment is running. |
|
Registration succeeded. |
|
Configuration applied successfully. |
|
Connections are established. |
|
Reserved for future media-flow status. |
|
Reserved for future health reporting. |
When to Alert#
Alert if any of the following stay False:
ProvisionedRegisteredConfigured
Most important failure reason values:
DeploymentNotAvailableNmosQueryFailed
Connected False is usually informational or transient and can occur when connections are still being established.
Ignore Active and Degraded for now.
Check Status#
Use the custom resource metadata.name (not a Pod name).
kubectl get nvidialipsyncmediafunction <cr-name> \
-o jsonpath='{range .status.conditions[*]}{.type}{"\t"}{.status}{"\t"}{.reason}{"\n"}{end}'
See Also#
Pipeline Configuration: Pipeline tuning Helm key equivalents.