k8s-launch-kit-pipeline
Use this skill when the user wants to run the full k8s-launch-kit (l8k) pipeline end-to-end: discover cluster hardware, select a profile, generate manifests,…
npx skills add https://github.com/nvidia/k8s-launch-kit --skill k8s-launch-kit-pipelinel8k: Full Pipeline
PREREQUISITE: Read
../k8s-launch-kit-shared/SKILL.mdfor install paths, global flags, and output modes.
Run discovery + generation + deployment as a single command.
Usage
The root command chains all phases in one invocation:
l8k --discover-cluster-config [--kubeconfig <PATH>] \
--fabric <FABRIC> --deployment-type <TYPE> \
--save-deployment-files <DIR> --deploy
Or use subcommands for a two-step approach:
l8k discover --save-cluster-config ./cluster-config.yaml && \
l8k generate --user-config ./cluster-config.yaml \
--save-deployment-files <DIR> --deploy
The subcommand flow does not need to repeat profile flags: discovery resolves and persists them. Pass profile flags to either command only as explicit overrides.
Examples
# Full pipeline: discover + SR-IOV Ethernet + deploy (root command)
l8k --discover-cluster-config \
--kubeconfig ~/.kube/config \
--fabric ethernet --deployment-type sriov \
--save-deployment-files ./output --deploy
# Full pipeline: Spectrum-X
l8k --discover-cluster-config \
--kubeconfig ~/.kube/config \
--spectrum-x RA2.2 --multiplane-mode hwplb --number-of-planes 4 \
--save-deployment-files ./output --deploy
# Non-default operator namespace (applies to generate/deploy only — discover
# always uses its own nvidia-k8s-launch-kit namespace)
l8k --discover-cluster-config \
--kubeconfig ~/.kube/config \
--network-operator-namespace network-operator \
--fabric ethernet --deployment-type sriov \
--save-deployment-files ./output --deploy
# Agent / CI mode
l8k --discover-cluster-config \
--kubeconfig ~/.kube/config \
--fabric ethernet --deployment-type sriov \
--save-deployment-files ./output --deploy \
--output json --yes 2>/dev/null
# Pipeline with dry-run (validate everything, apply nothing)
l8k --discover-cluster-config \
--kubeconfig ~/.kube/config \
--fabric ethernet --deployment-type sriov \
--save-deployment-files ./output --deploy --dry-run
# Subcommand alternative: discover then generate+deploy separately
l8k discover --kubeconfig ~/.kube/config \
--fabric ethernet --deployment-type sriov \
--save-cluster-config ./cluster-config.yaml && \
l8k generate --user-config ./cluster-config.yaml \
--save-deployment-files ./output --deploy
# Skip discovery entirely with --for (known SKU)
l8k generate --user-config ./cluster-config.yaml \
--for ThinkSystem-SR680a-V3 \
--node-selector "nvidia.com/gpu.product=NVIDIA-H200" \
--fabric ethernet --deployment-type sriov \
--save-deployment-files ./output --deploy \
--kubeconfig ~/.kube/config
Common Variations
| Use Case | Command |
|---|---|
| Discovery only | l8k discover --save-cluster-config <PATH> |
| Generate only | l8k generate --user-config <CONFIG> --save-deployment-files <DIR> |
| Generate + deploy | l8k generate ... --deploy |
| Full pipeline (root) | l8k --discover-cluster-config ... --deploy |
| Full pipeline (subcommands) | l8k discover ... && l8k generate ... --deploy |
| Full pipeline dry-run | l8k --discover-cluster-config ... --deploy --dry-run |
Note: The root command's strength is chaining all phases — it runs discover, generate, and deploy in a single invocation. Use subcommands when you need intermediate inspection or different flags per phase.
Phase Order
- Discover — Probe hardware, resolve profile settings, and persist both
- Generate — Match profile, render templates, write YAMLs
- Deploy — Apply resources in dependency order
If any phase fails, subsequent phases are skipped. The JSON output includes which phase failed.
[!CAUTION] The full pipeline includes deployment — confirm with the user before running on production. Use
--dry-runto preview first.
See Also
- k8s-launch-kit-shared — Global flags and exit codes
- k8s-launch-kit-discover — Discovery details
- k8s-launch-kit-generate — Profile selection details
- k8s-launch-kit-deploy — Deploy details