RepoNVIDIANVIDIApublished May 21, 2026seen 5d

NVIDIA/nv-config-manager

Python

Open original ↗

Captured source

source ↗
published May 21, 2026seen 5dcaptured 11hhttp 200method plain

NVIDIA/nv-config-manager

Description: NVIDIA Switch Infrastructure - Config Manager

Language: Python

License: Apache-2.0

Stars: 11

Forks: 2

Open issues: 9

Created: 2026-05-21T20:26:37Z

Pushed: 2026-06-11T01:15:42Z

Default branch: main

Fork: no

Archived: no

README:

NVIDIA Config Manager

NVIDIA Config Manager (NVCM) is an open-source network automation and configuration management platform for large-scale datacenter operations. It combines Nautobot inventory, event-driven rendering, ZTP, DHCP, workflow automation, and configuration storage behind a single Helm deployment.

NVCM is currently in Developer Preview and is not recommended for production use.

Overview

| Service | Description | | :------ | :---------- | | [ZTP](https://docs.nvidia.com/switch-infrastructure/config-manager/services/network-ztp/overview) | Zero Touch Provisioning, boot scripts, OS image delivery, and provisioning status updates | | [DHCP](https://docs.nvidia.com/switch-infrastructure/config-manager/services/dhcp/overview) | Kea DHCP configuration generation from Nautobot data | | [Temporal](https://docs.nvidia.com/switch-infrastructure/config-manager/services/temporal/overview) | Long-running network operations and approval workflows | | [Render](https://docs.nvidia.com/switch-infrastructure/config-manager/services/render/overview) | Template rendering and event processing from Nautobot and workflow events | | [Config Store](https://docs.nvidia.com/switch-infrastructure/config-manager/services/config-store/overview) | PostgreSQL-backed rendered, intended, and backup configuration storage | | [UI](https://docs.nvidia.com/switch-infrastructure/config-manager/getting-started/which-interface-should-i-use) | React/Next.js interface for workflows and configuration browsing | | [Nautobot](https://docs.nvidia.com/switch-infrastructure/config-manager/config-manager/nautobot) | Network source of truth, custom jobs, and event publication |

Installer

The [NVIDIA Config Manager Installer](installer/README.md) is the supported deployment entry point. It provides an interactive TUI and a headless CLI that both use the same nv-config-manager-install.yaml configuration file.

cd installer
uv sync
uv run nv-config-manager-installer init

Common non-interactive commands:

cd installer
uv run nv-config-manager-installer validate ../deploy/configs/local-superpod.yaml
uv run nv-config-manager-installer generate-values ../deploy/configs/local-superpod.yaml --output-dir ../generated
uv run nv-config-manager-installer deploy ../deploy/configs/local-superpod.yaml \
--image-source local \
--build-images \
--load-kind \
--kind-cluster nv-config-manager \
--install-envoy-gateway \
--install-cnpg-operator \
--install-cert-manager

The installer handles Helm values generation, Kubernetes secrets, optional operator installation, image builds, Kind image loading, content PVC staging, ZTP OS image staging, post-deploy Nautobot jobs, and endpoint reporting.

Local Development Setup

Install project tools and dependencies before running tests or local deployments.

curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync --dev
./scripts/install-hooks.sh

Git Hooks

Install the repository hooks after cloning and whenever hook scripts change:

./scripts/install-hooks.sh

Installed hooks:

  • pre-commit: formats all staged Python files outside ignored/generated

directories with uv run ruff format, re-stages those files, and checks SPDX license headers for supported source files (.py, .ts, .tsx, .js, .jsx, .mjs, .cjs, and .go) under src/, ui/src/, ui/tests/, components/, db/migrations/, scripts/, development/, installer/src/, installer/tests/, and installer/scripts/.

  • commit-msg: rejects commits that do not include a valid DCO

Signed-off-by: Name trailer. Use git commit -s or git commit --amend -s to add the trailer automatically.

Local hooks can be skipped with git commit --no-verify, so the organization DCO app remains the merge-time enforcement gate in CI.

For UI work:

cd ui
npm install

Validation commands:

uv run pytest
uv run ruff check src/
uv run mypy src/
uv run ruff format src/

Kubernetes Deployment

Prerequisites:

  • Docker or a compatible container runtime
  • Kind for local clusters, or a reachable Kubernetes cluster
  • Helm 3.x
  • kubectl configured for the target cluster
  • Python 3.11 or newer, managed through uv
  • Node.js 23 or newer for UI development

Resource Profiles

Resource sizing is selected in installer config at cluster.size.

| Size | Environment | Suggested Capacity | Notes | | ---- | ----------- | ------------------ | ----- | | small | Local laptop or CI | 8 vCPU, 24 GB RAM | Single replica development profile | | medium | Remote VM or staging | 16 vCPU, 64 GB RAM | Larger requests for a shared development VM | | large | Production | 96 vCPU, 256 GB RAM, 3+ nodes | HA-oriented replica counts and resource requests |

The bundled profiles in deploy/configs/ are ready-to-run examples. Override the selected profile with cluster.size in a copied installer config.

Local Kind Deployment

make kind-up

The default make kind-up target creates the Kind cluster if needed, builds local images, loads them into Kind, installs required operators, and deploys using deploy/configs/local-superpod.yaml.

Populate or refresh mock topology data:

make topology

Local Hostnames

The local SuperPOD profile uses config-manager.local as the base hostname. Add these entries when accessing the Envoy Gateway directly from your workstation:

127.0.0.1 config-manager.local
127.0.0.1 nautobot.config-manager.local
127.0.0.1 render.config-manager.local
127.0.0.1 ztp.config-manager.local
127.0.0.1 dhcp.config-manager.local
127.0.0.1 workflow.config-manager.local
127.0.0.1 config-store.config-manager.local
127.0.0.1 temporal.config-manager.local
127.0.0.1 mcp.config-manager.local
127.0.0.1 svc-mcp.config-manager.local
127.0.0.1 svc-workflow.config-manager.local
127.0.0.1 svc-config-store.config-manager.local
127.0.0.1 svc-render.config-manager.local
127.0.0.1 svc-ztp.config-manager.local
127.0.0.1 svc-dhcp.config-manager.local
127.0.0.1 svc-nautobot.config-manager.local

Local endpoints:

  • UI:
  • Nautobot:
  • Workflow API:
  • Config Store API:
  • MCP endpoint:

For the local SuperPOD profile,…

Excerpt shown — open the source for the full document.

Notability

notability 2.0/10

Low-star new repo, routine tool