The NMC Airgap Tool downloads Helm charts, container images, and files required for air-gapped deployment of NVIDIA Mission Control.

The NMC Airgap tool downloads Helm charts, container images, and files required for air-gapped deployment of NVIDIA Mission Control. The tool is designed to consume the NMC Airgap Manifest yaml file, provided in another resource.
Supported Arch
Linux AMD64 and Linux ARM64
Requirements
For Docker execution:
- Docker with Linux AMD64 or ARM64 container support.
- Host manifest/output directories mounted into /data.
Typical workflow and examples
docker pull nvcr.io/nvstaging/nv-mission-control/nmc-airgap:latest export NMC_AIRGAP_IMAGE=nvcr.io/nvstaging/nv-mission-control/nmc-airgap:latest
Prepare credentials and output
The published manifest is downloaded separately from the image.
Create .env.docker using KEY=VALUE, without export:
NGC_NVIDIA_NV_MISSION_CONTROL_API_KEY=... RUNAI_ARTIFACTORY_TOKEN=... NETQ_ARTIFACTORY_USER=... NETQ_ARTIFACTORY_PASSWORD=...
Only credentials needed by the selected components are required.
mkdir -p bundle
Verify and inspect the manifest
docker run --rm
--env-file .env.docker
-v "$PWD/manifest.yaml:/data/manifest.yaml:ro"
"$NMC_AIRGAP_IMAGE"
verify manifest --manifest /data/manifest.yaml
docker run --rm
--env-file .env.docker
-v "$PWD/manifest.yaml:/data/manifest.yaml:ro"
"$NMC_AIRGAP_IMAGE"
list --manifest /data/manifest.yaml
Preview or fetch
Preview
docker run --rm
--env-file .env.docker
-v "$PWD/manifest.yaml:/data/manifest.yaml:ro"
-v "$PWD/bundle:/data/bundle"
"$NMC_AIRGAP_IMAGE"
fetch --manifest /data/manifest.yaml
--output /data/bundle
--dry-run
Fetch all enabled components
docker run --rm
--env-file .env.docker
-v "$PWD/manifest.yaml:/data/manifest.yaml:ro"
-v "$PWD/bundle:/data/bundle"
"$NMC_AIRGAP_IMAGE"
fetch --manifest /data/manifest.yaml
--output /data/bundle
Select components or resume:
docker run --rm
--env-file .env.docker
-v "$PWD/manifest.yaml:/data/manifest.yaml:ro"
-v "$PWD/bundle:/data/bundle"
"$NMC_AIRGAP_IMAGE"
fetch -m /data/manifest.yaml
-o /data/bundle
-c bcm -c netq
--skip-existing
Verify and archive
These operations no longer need the original manifest:
docker run --rm
-v "$PWD/bundle:/data/bundle:ro"
"$NMC_AIRGAP_IMAGE"
verify bundle --bundle /data/bundle
docker run --rm
-v "$PWD/bundle:/data/bundle:ro"
-v "$PWD:/data/output"
"$NMC_AIRGAP_IMAGE"
archive --bundle /data/bundle
--output /data/output/bundle.tar.gz
Upload on the air-gapped side
docker run --rm
-v "$PWD/bundle:/data/bundle:ro"
"$NMC_AIRGAP_IMAGE"
upload --bundle /data/bundle
--registry harbor.example.com
--dry-run
Authenticated upload, including Helm charts:
export HARBOR_PASSWORD='...'
docker run --rm
-v "$PWD/bundle:/data/bundle:ro"
"$NMC_AIRGAP_IMAGE"
upload --bundle /data/bundle
--registry harbor.example.com
--username admin
--password "$HARBOR_PASSWORD"
--include-charts
--skip-existing
--verify
With a private CA:
docker run --rm
-v "$PWD/bundle:/data/bundle:ro"
-v "$PWD/harbor-ca.pem:/data/harbor-ca.pem:ro"
"$NMC_AIRGAP_IMAGE"
upload --bundle /data/bundle
--registry harbor.example.com:9443
--ca-cert /data/harbor-ca.pem
License
NVIDIA Proprietary