RepoNVIDIANVIDIApublished Nov 4, 2025seen 3d

NVIDIA/k8s-launch-kit

Go

Open original ↗

Captured source

source ↗
published Nov 4, 2025seen 3dcaptured 8hhttp 200method plain

NVIDIA/k8s-launch-kit

Description: K8s Launch Kit (l8k) is a CLI tool for deploying and managing NVIDIA cloud-native solutions on Kubernetes. The tool helps provide flexible deployment workflows for optimal network performance with SR-IOV, RDMA, and other networking technologies.

Language: Go

License: Apache-2.0

Stars: 11

Forks: 3

Open issues: 12

Created: 2025-11-04T17:19:23Z

Pushed: 2026-06-09T01:15:08Z

Default branch: main

Fork: no

Archived: no

README:

K8s Launch Kit - CLI for configuring NVIDIA cloud-native solutions

K8s Launch Kit (l8k) is a CLI tool for deploying and managing NVIDIA cloud-native solutions on Kubernetes. The tool helps provide flexible deployment workflows for optimal network performance with SR-IOV, RDMA, and other networking technologies.

Operation Phases

Discover Cluster Configuration

Bootstrap a private NIC Configuration Daemon into the nvidia-k8s-launch-kit namespace to discover your cluster's network capabilities and hardware configuration. Discovery does not require a pre-installed Network Operator — the daemon and its CRDs are created in a dedicated namespace, used to publish NicDevice CRs, and torn down when discovery finishes. This phase can be skipped if you provide your own configuration file.

Select the Deployment Profile

Specify the desired deployment profile via CLI flags (--fabric, --deployment-type, --multirail, --spectrum-x) or via a profile section in the user-config file. AI-driven profile selection now lives in the k8s-launch-kit-* Claude Code skills, which wrap the deterministic CLI commands.

Generate Deployment Files

Based on the discovered/provided configuration, generate a complete set of YAML deployment files tailored to your selected network profile.

Installation

Quick install (from GitHub Releases)

curl -fsSL https://raw.githubusercontent.com/nvidia/k8s-launch-kit/main/scripts/install.sh | sh

Pin a specific version or install to a custom directory:

L8K_VERSION=v1.0.0 sh scripts/install.sh
curl -fsSL ... | sh -s -- -d ~/local

Uninstall:

curl -fsSL https://raw.githubusercontent.com/nvidia/k8s-launch-kit/main/scripts/install.sh | sh -s -- --uninstall

Homebrew

brew tap nvidia/l8k https://github.com/nvidia/k8s-launch-kit
brew install l8k

Build from source

git clone
cd k8s-launch-kit
make build

The binary will be available at build/l8k.

After building, install the binary, profiles, and config to /usr/local:

make install # Copies binary, profiles, config to /usr/local
make dev-install # Symlinks instead of copies (for development)

This runs scripts/install-local.sh, which places:

  • /bin/l8k
  • /share/l8k/profiles/
  • /share/l8k/presets/
  • /share/l8k/l8k-config.yaml

Default prefix is /usr/local. Override with PREFIX=/opt/l8k make install.

Docker

make docker-build # Build Docker image (l8k:v0.1.0 + l8k:latest)
make docker-build-local # Build inside container, extract binary to host build/l8k

docker-build-local is useful when you don't have the Go toolchain installed — it compiles inside a container and copies the resulting binary to build/l8k on your host.

# Run from the Docker image
docker run --net=host \
-v ~/.kube:/kube:ro \
-v $(pwd):/output \
l8k:latest discover --kubeconfig /kube/config \
--save-cluster-config /output/cluster-config.yaml

Usage

K8s Launch Kit (l8k) is a CLI tool for deploying and managing NVIDIA cloud-native solutions on Kubernetes. The tool helps provide flexible deployment workflows for optimal network performance with SR-IOV, RDMA, and other networking technologies.

### Discover Cluster Configuration
Deploy a minimal Network Operator profile to automatically discover your cluster's
network capabilities and hardware configuration by using --discover-cluster-config.
This phase can be skipped if you provide your own configuration file by using --user-config.
This phase requires --kubeconfig to be specified.

### Generate Deployment Files
Based on the discovered or provided configuration,
generate a complete set of YAML deployment files for the selected network profile.
Files can be saved to disk using --save-deployment-files.
The profile is defined with --fabric, --deployment-type and --multirail flags,
or via a profile section in the user-config file.

### Deploy to Cluster
Apply the generated deployment files to your Kubernetes cluster by using --deploy. This phase requires --kubeconfig and can be skipped if --deploy is not specified.

The deploy step installs (or upgrades) the `nvidia/network-operator` Helm chart in-process before applying the post-install CRs. The chart version and Helm repository URL are taken from the embedded release catalog and can be selected via `--network-operator-release `. Each profile renders a per-profile `values.yaml` next to the CR manifests; `l8k deploy` reads that file and runs the install. When a release already exists with different values, deploy fails fast — pass `--overwrite-existing` to promote to `helm upgrade --install`.

### AI Agent / Automation Support
Use --output json for structured machine-readable output (single JSON object to stdout).
Use --yes to auto-confirm prompts, --quiet to suppress informational output, and --dry-run to preview deployments.
Use 'l8k schema' to discover tool capabilities programmatically.

Usage:
l8k [flags]
l8k [command]

Examples:
# Discover cluster and generate SR-IOV ethernet deployment
l8k --kubeconfig ~/.kube/config --discover-cluster-config \
--fabric ethernet --deployment-type sriov --save-deployment-files ./output

# Generate from saved config (no cluster access needed)
l8k --user-config cluster-config.yaml --fabric ethernet \
--deployment-type sriov --save-deployment-files ./output

# Discover + deploy Spectrum-X with JSON output for automation
l8k --kubeconfig ~/.kube/config --discover-cluster-config \
--spectrum-x RA2.2 --multiplane-mode hwplb --number-of-planes 4 --network-operator-release 26.4 --deploy --output json --yes

# Dry-run: preview what would be deployed
l8k --user-config cluster-config.yaml --spectrum-x --deploy \
--dry-run --output json

# Get tool capabilities as JSON (for AI agents)
l8k schema

Available Commands:
completion Generate the autocompletion script for the specified shell
deploy Apply previously generated manifests to a Kubernetes cluster
discover Discover cluster network hardware…

Excerpt shown — open the source for the full document.

Notability

notability 1.0/10

Routine repo with very low traction