Installation

Prerequisites

Before using Kubernetes Launch Kit, ensure the following:

  • Kubernetes cluster with the NVIDIA Network Operator Helm chart installed, including the SR-IOV Network Operator, Maintenance Operator, and Node Feature Discovery (NFD). For installation instructions, see Getting Started with Kubernetes.

  • kubectl configured with access to the target cluster.

  • Docker or Podman on the machine where you will run l8k (only for the container scenario).

Install

Choose one of the methods below. The script and Homebrew methods install a binary plus profile templates and presets to a local prefix; the container method runs l8k from a published image and writes nothing outside your working directory.

Script

Downloads the latest release from GitHub and installs the l8k binary, profile templates, and presets to /usr/local:

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 https://raw.githubusercontent.com/nvidia/k8s-launch-kit/main/scripts/install.sh | sh -s -- -d ~/local

Homebrew

For macOS and Linux systems with Homebrew:

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

Container

Run l8k directly from the published container image without copying any binary or assets to the host filesystem. The image stays in the local Docker cache; everything else (kubeconfig, output directory) is mounted at runtime.

Pull the image once:

docker pull nvcr.io/nvstaging/mellanox/k8s-launch-kit:v26.4.0-beta.8

Define a shell alias so l8k invokes the container with kubeconfig + working directory mounted:

alias l8k='docker run --rm --net=host \
    -v ~/.kube:/kube:ro \
    -v $(pwd):/work -w /work \
    nvcr.io/nvstaging/mellanox/k8s-launch-kit:v26.4.0-beta.8'

Add the line to your ~/.bashrc or ~/.zshrc to make it persistent. With this alias in place, every l8k <subcommand> ... invocation creates a fresh container, runs the command, and removes the container — nothing is written outside the current working directory.

Note

--net=host is required so the container can reach the Kubernetes API server. The --rm flag ensures no stopped containers accumulate. Mount the kubeconfig directory read-only.

Verify

The same command works for all installation methods:

l8k version

Uninstall

Use the method that matches how you installed.

Script

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

Homebrew

brew uninstall l8k
brew untap nvidia/l8k

Container

Drop the alias and remove the cached image:

unalias l8k
docker image rm nvcr.io/nvstaging/mellanox/k8s-launch-kit:v26.4.0-beta.8

Also remove the alias line from your shell rc file if you added it.

Layout (Script and Homebrew)

The script and Homebrew methods install the following under the install prefix (default: /usr/local):

  • <prefix>/bin/l8k — CLI binary

  • <prefix>/share/l8k/profiles/ — profile templates

  • <prefix>/share/l8k/presets/ — cluster topology presets

  • <prefix>/share/l8k/l8k-config.yaml — default configuration

The container method does not write anything outside your working directory; profiles, presets, and the default config are baked into the image.

See Also