Skip to content

Installation

Install a published l8k binary, then select a Network Operator release with --network-operator-release or configuration. The current binary carries its embedded release catalog; use l8k schema to see the release lines that your installed binary recognizes. Complete deployment planning before using cluster credentials.

This website is published from the repository's main branch. For a pinned binary, read the documentation at its repository release tag when you need the exact behavior of that version. Record the l8k version output and the selected Network Operator release with your deployment artifacts.

Prerequisites

  • Linux or macOS on amd64 or arm64.
  • kubectl is recommended for inspection and troubleshooting.
  • curl for the install script, Homebrew for the formula, or Docker/Podman for the container method.

A pre-installed Network Operator and NFD are not required for discovery. l8k deploy can install the selected Network Operator Helm chart from the generated values.yaml. Cluster permissions, privileged admission, image access, and the site's network inputs depend on the intended workflow; check prerequisites and ownership before the first live command.

Install Script

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

Pin a release:

L8K_VERSION=v26.7.0-beta.4 \
  sh -c "$(curl -fsSL https://raw.githubusercontent.com/NVIDIA/k8s-launch-kit/main/scripts/install.sh)"

Use a custom destination:

curl -fsSL https://raw.githubusercontent.com/NVIDIA/k8s-launch-kit/main/scripts/install.sh | \
  sh -s -- -d "$HOME/.local"

Homebrew

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

Container

Set L8K_VERSION to a published release tag and pull the image:

export L8K_VERSION=vX.Y.Z
docker pull nvcr.io/nvidia/cloud-native/k8s-launch-kit:${L8K_VERSION}

Define a shell function that mounts the kubeconfig and current working directory:

l8k() {
  docker run --rm --network host \
    -v "$HOME/.kube:/root/.kube:ro" \
    -v "$PWD:/work" \
    -w /work \
    "nvcr.io/nvidia/cloud-native/k8s-launch-kit:${L8K_VERSION}" \
    "$@"
}

The generated configuration, manifests, and reports remain in the current directory. Ensure the Kubernetes API server address in the mounted kubeconfig is reachable from the container runtime.

Build From Source

git clone https://github.com/NVIDIA/k8s-launch-kit.git
cd k8s-launch-kit
make build

The binary is written to build/l8k.

For a local install:

make install

For development, symlink the source-tree assets instead of copying them:

make dev-install

Installed Assets

The install places the binary on PATH. The default configuration and bundled topology presets are embedded in the binary. Use --config-dir when you need a filesystem override:

/etc/l8k/
|-- l8k-config.yaml
`-- presets/
    `-- <preset-name>/topology.yaml
l8k discover --config-dir /etc/l8k --kubeconfig ~/.kube/config
l8k preset list --config-dir /etc/l8k

--user-config <file> has higher precedence than --config-dir/l8k-config.yaml. A presets/ directory in --config-dir replaces the embedded preset catalog instead of merging with it.

Script, Homebrew, and source installs also place the profile templates under <prefix>/share/l8k/profiles/. Existing l8k-config.yaml and presets/ overrides under the share directory are preserved during upgrades and can still be selected implicitly.

Local and installed overrides can outlive a binary upgrade. Run l8k preset list with the same flags as the intended workflow to inspect the selected catalog. See configuration lookup and topology presets for the complete precedence rules.

Profile templates remain filesystem assets: ./profiles takes precedence over /usr/local/share/l8k/profiles, followed by the binary-relative share directory. Build-only users should run from the repository root or install the profiles.

Release artifacts also contain the Network Operator sosreport helper. The installers place it at <prefix>/share/l8k/scripts/kubectl-netop_sosreport. Source-tree make install, make dev-install, and direct scripts/install-local.sh invocations download the helper when it is absent; l8k sosreport itself never downloads executable code at runtime.

Verify

l8k version
l8k schema | jq '.supportedNetworkOperatorReleases'

Uninstall

Install script:

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

Use -d <prefix> with --uninstall if a custom install destination was used.

Homebrew:

brew uninstall l8k
brew untap nvidia/l8k

Container:

docker image rm "nvcr.io/nvidia/cloud-native/k8s-launch-kit:${L8K_VERSION}"