k8s-launch-kit-pipeline

作者: nvidia

當使用者想要完整執行 k8s-launch-kit (l8k) 管線的端到端流程時使用此技能:探索叢集硬體、選擇設定檔、生成清單…

npx skills add https://github.com/nvidia/k8s-launch-kit --skill k8s-launch-kit-pipeline

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:

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

# 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 CaseCommand
Discovery onlyl8k discover --save-cluster-config <PATH>
Generate onlyl8k generate --user-config <CONFIG> --save-deployment-files <DIR>
Generate + deployl8k generate ... --deploy
Full pipeline (root)l8k --discover-cluster-config ... --deploy
Full pipeline (subcommands)l8k discover ... && l8k generate ... --deploy
Full pipeline dry-runl8k --discover-cluster-config ... --deploy --dry-run
External Helm ownershipl8k ... --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

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.

來自 nvidia 的更多技能