| name | k8s-launch-kit-deploy |
| version | 1.2.0 |
| description | Use this skill when the user wants to deploy generated NVIDIA networking manifests to a Kubernetes cluster using k8s-launch-kit (l8k). Activate for: applying manifests, deploying to cluster, the `l8k deploy` subcommand or the legacy --deploy flag on `l8k generate`, applying generated files, or any mention of pushing l8k output to a live cluster. Even if the user just says 'apply these' or 'push to cluster' after generating manifests, use this skill. |
| metadata | {"requires":{"skills":["k8s-launch-kit-shared"]}} |
l8k: Deploy
PREREQUISITE: Read ../k8s-launch-kit-shared/SKILL.md for install paths, global flags, and output modes.
Apply previously generated NVIDIA networking manifests to a Kubernetes cluster.
Usage
The standalone subcommand (preferred):
l8k deploy [--deployment-files <DIR>] [--kubeconfig <PATH>] [--dry-run]
l8k deploy reads YAML files from --deployment-files (default ./deployment) and applies them in dependency order. It auto-prefers <DIR>/network-operator/ (the layout l8k generate produces) and falls back to <DIR> itself.
The legacy one-shot form (still supported, useful when you want to generate and apply in a single step):
l8k generate --user-config <CONFIG> --fabric <FABRIC> --deployment-type <TYPE> --deploy [--kubeconfig <PATH>]
Flags
| Flag | Required | Description |
|---|
--deployment-files | — | Directory with manifests to apply (default ./deployment) |
--kubeconfig | — | Path to kubeconfig with cluster-admin access (falls back to $KUBECONFIG) |
--dry-run | — | Server-side dry-run (client.DryRunAll) — cluster validates without persisting |
Examples
l8k deploy
l8k deploy --deployment-files /tmp/my-output --kubeconfig ~/.kube/config
l8k deploy --dry-run
l8k deploy --output json --yes 2>/dev/null
l8k generate --user-config cluster-config.yaml \
--fabric ethernet --deployment-type sriov \
--save-deployment-files ./output \
--deploy --kubeconfig ~/.kube/config
Resource Apply Order
l8k applies resources in dependency order:
- NicClusterPolicy (cluster-wide: Multus, CNI, NV-IPAM, operators) — wait for ready before continuing
- NicNodePolicy per group (OFED driver, device plugins) — wait for each
- Network resources (SriovNetwork / HostDeviceNetwork / MacvlanNetwork / IPoIBNetwork)
- IPPool (NV-IPAM address allocation)
- NicInterfaceNameTemplate (when needed)
- Example workload DaemonSets (optional)
Post-Deploy Verification
kubectl get nicclusterpolicy -o yaml
kubectl get nicnodepolicy
kubectl get pods -n <operator-ns>
kubectl get sriovnetworknodestates -A
[!CAUTION]
This is a write command — confirm with the user before executing on production clusters.
See Also