Skip to main content

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, and deploy them all in one command. Also activate for CI/CD integration, automation pipelines, 'one-liner', 'complete workflow', or end-to-end NVIDIA networking deployment.

Source facts

Repository
NVIDIA/k8s-launch-kit
Last source activity
September 28, 2026 at 10:32
Detected SKILL.md language
English
Stars
16
Forks
11

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
k8s-launch-kit-pipeline
version
1.1.2
description
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, and deploy them all in one command. Also activate for CI/CD integration, automation pipelines, 'one-liner', 'complete workflow', or end-to-end NVIDIA networking deployment.
metadata
{"requires":{"skills":["k8s-launch-kit-shared"]}}
# l8k: Full Pipeline > **PREREQUISITE:** Read `../k8s-launch-kit-shared/SKILL.md` for install paths, global flags, and output modes. Run discovery + generation + deployment as a single command. The pipeline operates on the default `host` target. Omitting `--target` keeps the established behavior; `--target host` is equivalent. Do not select `dpf` until `l8k schema` reports all required DPF phases as available. The root command snapshots its arguments and runs the complete concrete Host pipeline as one bound target operation. The Host pipeline validates the post-annotation artifacts before replacing generated output, then deploys that same retained snapshot. If artifact validation fails, it reports the source file/document and does not enter Helm or resource apply. A standalone deploy loads its own snapshot from disk. ## Usage The root command chains all phases in one invocation: ```bash l8k --discover-cluster-config [--kubeconfig <PATH>] \ --fabric <FABRIC> --deployment-type <TYPE> \ --save-deployment-files <DIR> --deploy ``` Or use subcommands for a two-step approach: ```bash 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 ```bash # 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 # Pipeline with deployment dry-run (discovery still creates cluster resources) 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` | | External Helm ownership | `l8k ... --skip-network-operator-helm --deploy` | 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. With `--skip-network-operator-helm`, generation omits `values.yaml` and deploy skips the Network Operator Helm install/preflight boundary while continuing to apply and reconcile the generated custom resources. ## Phase Order 1. **Discover** — Probe hardware and persist its inventory; fresh discovery also resolves profile settings, while `--user-config` preserves non-`clusterConfig` sections 2. **Generate** — Match profile, render templates, write YAMLs 3. **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. Verify the context and stay within the > user's existing live-operation authorization. `--dry-run` previews deployment; > discovery still creates temporary cluster resources, so the pipeline is not read-only. ## See Also - [k8s-launch-kit-shared](../k8s-launch-kit-shared/SKILL.md) — Global flags and exit codes - [k8s-launch-kit-discover](../k8s-launch-kit-discover/SKILL.md) — Discovery details - [k8s-launch-kit-generate](../k8s-launch-kit-generate/SKILL.md) — Profile selection details - [k8s-launch-kit-deploy](../k8s-launch-kit-deploy/SKILL.md) — Deploy details ## OpenShift The root Host pipeline accepts `--flavor ocp` and requires externally installed certified operators. Set explicit `clusterConfig[].workerNodes` for bounded discovery and inspect generated selectors before live deploy.
View on GitHub