CLI Reference
On this page
The Launch Kit binary is invoked as l8k and exposes a set of subcommands. l8k --help and l8k <subcommand> --help show the complete flag set for the installed version. This page covers the host networking workflow.
Global Flags
Available on all subcommands:
Flag |
Description |
|---|---|
|
Output format: |
|
Log level: |
|
Write logs to file instead of stderr. |
|
Show help. |
--yes and --quiet are root-pipeline flags. Use --output json to auto-confirm lifecycle subcommands. Host workflow commands also accept --config-dir for config/preset overrides and --flavor k8s|ocp for operator integration.
l8k discover
Probes cluster hardware and writes a cluster-config.yaml.
Flag |
Description |
|---|---|
|
Path to kubeconfig file (falls back to |
|
Base config to merge with discovered hardware. If |
|
Output path for the discovered cluster configuration. Defaults to |
|
Override the Network Operator namespace (default: |
|
Pin discovery to a Network Operator release line. Supported: |
|
Enable Spectrum-X for discovery. Accepted values are |
|
Multiplane mode override: |
|
Plane count override: |
|
Topology scheme for Spectrum-X IP allocation: |
|
IP version for Spectrum-X address allocation: |
|
Path to a spcx-gen/reference-generator or NVIDIA AIR topology JSON, used to generate Spectrum-X |
|
Spectrum-X input: full doSPCX ConfigMap for RA2.4/RA3.1; full legacy ConfigMap or raw |
|
Name for the generated profile ConfigMap. Requires |
|
Saved deployment selector; does not limit discovery scheduling. Default: |
|
Image pull secret names for NicClusterPolicy (comma-separated). |
|
Comma-separated list of plugins to enable (default: |
l8k generate
Renders Kubernetes manifests from a cluster configuration and a profile selection. Optionally deploys them.
Profile Selection
Flag |
Description |
|---|---|
|
Cluster configuration file. Auto-detected from |
|
Generate for a hardware preset without running discovery. Requires |
|
Fabric type: |
|
Deployment type: |
|
Enable multirail deployment. Auto-defaults to |
|
Enable Spectrum-X. Accepted values are |
|
Multiplane mode: |
|
Number of planes: |
|
Topology scheme for Spectrum-X IP allocation: |
|
IP version for Spectrum-X address allocation: |
|
Path to a spcx-gen/reference-generator or NVIDIA AIR topology JSON. Required with |
|
Required profile input for RA2.3/RA2.4/RA3.1. RA2.4/RA3.1 require a full doSPCX ConfigMap and set the NIC template version to the RA; RA2.3 accepts raw legacy YAML and uses the ConfigMap name as its version. See Spectrum-X. |
|
Name for the generated profile ConfigMap. Required only when |
|
Pin to a Network Operator release line. Supported: |
|
Restrict output to the named source groups (comma-separated, matched case-sensitively against |
|
Restrict output to source groups whose |
|
Node selector for the synthesized |
Ownership and Routing
--skip-network-operator-helmdisables Launch Kit Helm management; external operators remain prerequisites.--routing destination-based|source-basedselects secondary-network routing.--ignore-arpcontrols the standard-profile ARP tuning policy.--overwrite-existingpermits preflight convergence, including deleting reported stray CRs. It can affect omitted groups; see Deploy Workflow.
Output and Deployment
Flag |
Description |
|---|---|
|
Output directory for generated YAML files (default: |
|
Apply generated manifests to the cluster. |
|
Preview deployment without applying (requires |
|
Path to kubeconfig (required with |
Customization
Flag |
Description |
|---|---|
|
Enable DOCA driver deployment. |
|
Path to a custom workload manifest. Launch Kit patches network annotations, resource requests, and node affinity. See Generate Workflow. |
|
Image pull secret names for NicClusterPolicy (comma-separated). Propagates to per-group NicNodePolicy sub-specs. |
|
Override the Network Operator namespace. |
|
Comma-separated namespaces for secondary-network resources and example workloads. |
|
Comma-separated list of plugins to enable (default: |
l8k deploy
Loads the saved bundle, manages Helm when enabled, checks preflight drift, then applies custom resources in four phases: NicClusterPolicy first (await ready), per-group NicNodePolicy (await each), all remaining CRs in one batch (controllers reconcile concurrently), then verify every manifest reached a terminal state. Example workload manifests (*example*) are skipped here — they’re applied by l8k validate --connectivity as part of the data-plane phase. See Deploy Workflow for the full deployment-ordering description.
Flag |
Description |
|---|---|
|
Path to kubeconfig (falls back to |
|
Directory containing the manifests to apply (default: |
|
End-to-end wall-clock budget for the apply + reconciliation phase (e.g., |
|
Preview what would be applied without changing the cluster. |
l8k validate
Checks release and component versions, Helm values when managed, stray resources, certified-preset deviations, manifest readiness, and configured connectivity families. Writes <deployment-files>/k8s-launch-kit-validation-report.html by default. See Validate Workflow for coverage and exit-code semantics.
Flag |
Description |
|---|---|
|
Path to kubeconfig (falls back to |
|
Explicit source configuration override. When omitted, the bundle sidecar is preferred; see Configuration Reference for lookup order. |
|
Directory containing the manifests to verify (default: |
|
Run the data-plane ping matrix. Default |
|
Wall-clock budget for workload setup and connectivity. Default |
|
Select |
|
Coverage and cross-rail expectations: |
|
Optional JUnit XML report, independent of HTML output. |
|
Leave the test DaemonSet running after |
|
Block validate up to this duration waiting for in-progress manifests to reach a terminal state. |
|
Write the HTML report to this path. Empty (default) writes to |
l8k clean
Removes Network Operator resources and, by default, its Helm release. This is a cluster mutation with no dry-run mode. Inspect the target kubeconfig and namespace first. --keep-helm-chart retains Helm; networkOperator.skipHelmChart also preserves externally managed Helm. The namespace and CRDs are preserved. OpenShift cleanup is unsupported. See l8k clean --help for the current removal scope and flags.
OpenShift Integration
Use --flavor ocp or flavor: ocp with separately installed certified Network Operator, SR-IOV Operator, Maintenance Operator, and NFD prerequisites. Multus and reference CNI plugins remain platform-owned. See Getting Started with OpenShift and the Launch Kit OpenShift guide for ownership and namespace configuration.
l8k preset list
Lists locally available cluster topology presets.
l8k preset list
l8k preset update
Downloads the latest presets from a Git repository.
Flag |
Description |
|---|---|
|
GitHub repository in |
|
Branch or tag to fetch from (default: |
|
Local destination directory for downloaded presets. |
See Cluster Topology Presets for usage.
l8k sosreport
Collects diagnostic data from the cluster.
Flag |
Description |
|---|---|
|
Path to kubeconfig (falls back to |
|
Directory to save the sosreport (default: |
See Troubleshooting for analysis guidance.
l8k schema
Outputs a JSON description of l8k’s capabilities — supported commands, fabrics, deployment types, exit codes, and output formats. Used by AI agents and automation tooling to discover l8k capabilities programmatically. See Automation and CI/CD.
l8k schema
l8k version
Prints the version. Supports --output json for structured output.
Exit Codes
Code |
Meaning |
|---|---|
0 |
Success. |
1 |
General error. |
2 |
Validation error (invalid flags or configuration). |
3 |
Cluster error (API unreachable, discovery failed). |
4 |
Deployment or validation gate failure. |
5 |
Partial success (discovery completed but deployment failed). |
See Also
Configuration Reference —
l8k-config.yamlschemaAutomation and CI/CD — JSON output and exit-code-driven retries
Overview — the meaning behind the flags