[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-k8s-launch-kit-generate":3,"mdc--n4dmii-key":37,"related-repo-nvidia-k8s-launch-kit-generate":2050,"related-org-nvidia-k8s-launch-kit-generate":2137},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"k8s-launch-kit-generate","generate Kubernetes manifests for NVIDIA networking","Use this skill when the user wants to generate Kubernetes YAML manifests for NVIDIA networking deployment using k8s-launch-kit (l8k). Activate for: manifest generation, profile selection, choosing between SR-IOV\u002Fhost-device\u002FRDMA-shared\u002FIPoIB\u002FMacVLAN\u002FSpectrum-X, creating deployment files, or when the user asks 'which profile should I use' or needs help choosing a network configuration.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"nvidia","NVIDIA","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fnvidia.png",[12,16,19,22,23],{"name":13,"slug":14,"type":15},"Networking","networking","tag",{"name":17,"slug":18,"type":15},"YAML","yaml",{"name":20,"slug":21,"type":15},"Deployment","deployment",{"name":9,"slug":8,"type":15},{"name":24,"slug":25,"type":15},"Kubernetes","kubernetes",14,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fk8s-launch-kit","2026-07-14T05:31:51.352013",null,4,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"K8s Launch Kit (l8k) is a CLI tool for deploying and managing NVIDIA cloud-native solutions on Kubernetes. The tool helps provide flexible deployment workflows for optimal network performance with SR-IOV, RDMA, and other networking technologies.","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fk8s-launch-kit\u002Ftree\u002FHEAD\u002Fskills\u002Fk8s-launch-kit-generate","---\nname: k8s-launch-kit-generate\nversion: 1.2.0\ndescription: \"Use this skill when the user wants to generate Kubernetes YAML manifests for NVIDIA networking deployment using k8s-launch-kit (l8k). Activate for: manifest generation, profile selection, choosing between SR-IOV\u002Fhost-device\u002FRDMA-shared\u002FIPoIB\u002FMacVLAN\u002FSpectrum-X, creating deployment files, or when the user asks 'which profile should I use' or needs help choosing a network configuration.\"\nmetadata:\n  requires:\n    skills: [\"k8s-launch-kit-shared\"]\n---\n\n# l8k: Manifest Generation\n\n> **PREREQUISITE:** Read `..\u002Fk8s-launch-kit-shared\u002FSKILL.md` for install paths, global flags, and output modes.\n\nGenerate Kubernetes YAML manifests for NVIDIA networking from a cluster config and profile selection.\n\n## Usage\n\n```bash\nl8k generate --user-config \u003CCONFIG> \\\n  --save-deployment-files \u003COUTPUT_DIR>\n```\n\nConfigs produced by `l8k discover` already contain the resolved profile.\nProfile flags remain available as generation-time overrides. When generation\nuses a file-backed config, resolved defaults and CLI overrides are written back\nto that source file; embedded `--for` generation does not write a config.\n\n## Profile Selection Flags\n\n| Flag | Required | Values | Description |\n|------|----------|--------|-------------|\n| `--fabric` | Auto-defaulted | `ethernet`, `infiniband` | Network fabric. Auto-defaults from the cluster's unanimous `linkType` when omitted (Unit 5 fabric probe); skipped+warned when groups disagree or any has unverified linkType. |\n| `--deployment-type` | Auto-defaulted | `sriov`, `rdma_shared`, `host_device` | Deployment type. Auto-defaults to `sriov`. |\n| `--spectrum-x` | — | `RA2.1`, `RA2.2` | Enable Spectrum-X profile by passing the SPC-X RA version. Implies ethernet fabric, sriov deployment, and multirail. |\n| `--multiplane-mode` | Auto-defaulted with `--spectrum-x` | `none`, `swplb`, `hwplb`, `uniplane` | Auto-defaults from east-west PF deviceID: CX7 \u002F BF3 SuperNIC → `uniplane`, CX8 → `swplb`, CX9 → `hwplb`. Skipped+warned when groups have mixed deviceIDs. |\n| `--number-of-planes` | Auto-defaulted with `--spectrum-x` | `1`, `2`, `4` | Auto-defaults from deviceID: CX7 \u002F BF3 → 1, CX8 → 2, CX9 → 4. |\n| `--multirail` | Auto-defaulted | — | Auto-defaults to `true`. Explicit `multirail: false` in YAML and `--multirail=false` on the CLI are both preserved. |\n| `--save-deployment-files` | Yes | — | Output directory for generated YAMLs |\n| `--groups` | — | `dgx-b200-nvidia-h100-nvl,poweredge-xe9680-nvidia-h200` | Restrict output to the named source groups (comma-separated). Mutually exclusive with `--gpu-type`. |\n| `--gpu-type` | — | `NVIDIA-H200` | Restrict output to source groups whose `gpuType` matches (case-insensitive). Mutually exclusive with `--groups`. |\n| `--for` | — | preset directory name | Skip discovery: synthesize `clusterConfig` from a topology preset. Requires `--node-selector`. List options with `l8k preset list`. |\n| `--node-selector` | Required with `--for` | `key=val,key2=val2` | Identifies which nodes the synthesized clusterConfig targets at apply time. |\n\n*Not required when `--spectrum-x` is used.\n\n## Examples\n\n```bash\n# SR-IOV Ethernet RDMA (most common for GPU clusters)\nl8k generate --user-config cluster-config.yaml \\\n  --fabric ethernet --deployment-type sriov \\\n  --save-deployment-files .\u002Foutput\n\n# Spectrum-X with hardware plane load balancing\nl8k generate --user-config cluster-config.yaml \\\n  --spectrum-x RA2.2 --multiplane-mode hwplb --number-of-planes 4 \\\n  --save-deployment-files .\u002Foutput\n\n# Host device RDMA\nl8k generate --user-config cluster-config.yaml \\\n  --fabric ethernet --deployment-type host_device \\\n  --save-deployment-files .\u002Foutput\n\n# IPoIB RDMA shared (InfiniBand)\nl8k generate --user-config cluster-config.yaml \\\n  --fabric infiniband --deployment-type rdma_shared \\\n  --save-deployment-files .\u002Foutput\n\n# Agent mode\nl8k generate --user-config cluster-config.yaml \\\n  --fabric ethernet --deployment-type sriov \\\n  --save-deployment-files .\u002Foutput \\\n  --output json 2>\u002Fdev\u002Fnull\n\n# Generate from a known server SKU (no cluster discovery required)\nl8k preset list   # see available presets\nl8k generate --user-config cluster-config.yaml \\\n  --for ThinkSystem-SR680a-V3 \\\n  --node-selector \"nvidia.com\u002Fgpu.product=NVIDIA-H200\" \\\n  --fabric ethernet --deployment-type sriov \\\n  --save-deployment-files .\u002Foutput\n```\n\n## Choosing `l8k discover` vs `--for`\n\n- **`l8k discover` then `l8k generate`** — default flow. Discovery learns the hardware and persists the resolved profile, so generation needs only the resulting `cluster-config.yaml` unless an override is desired.\n- **`l8k generate --for \u003Cpreset>`** — skip discovery entirely when the SKU is already known and there is a preset for it. Useful for ahead-of-time generation (CI scaffolding, lab runbooks, demos), or when you don't have `kubectl` access yet. Requires `--node-selector` to identify the target nodes at apply time.\n\nA preset used with `--for` must declare `capabilities.nodes.{sriov,rdma,ib}` in its `topology.yaml`. All bundled presets do.\n\n## Profile Quick Reference\n\n| Profile | Flags | Use Case |\n|---------|-------|----------|\n| SR-IOV Ethernet RDMA | `--fabric ethernet --deployment-type sriov` | GPU clusters, ML training, HPC |\n| Host Device RDMA | `--fabric ethernet --deployment-type host_device` | Legacy HPC, DPDK, full NIC access |\n| MacVLAN RDMA Shared | `--fabric ethernet --deployment-type rdma_shared` | Multi-tenant Ethernet environments |\n| IPoIB RDMA Shared | `--fabric infiniband --deployment-type rdma_shared` | InfiniBand shared workloads |\n| SR-IOV InfiniBand | `--fabric infiniband --deployment-type sriov` | InfiniBand SR-IOV |\n| Spectrum-X | `--spectrum-x` | AI cloud, multi-tenant GPU networking |\n\nFor detailed profile selection guidance (NIC constraints, multiplane modes, when to use each),\nread `references\u002Fprofile-decision-tree.md`.\n\n## Output\n\nGenerated YAMLs are written to the output directory under `network-operator\u002F`. Each profile also emits a `values.yaml` (Helm values for the `nvidia\u002Fnetwork-operator` chart) alongside the CR manifests:\n\n```\noutput\u002F\n└── network-operator\u002F\n    ├── values.yaml                       # Phase 0 helm-install input for `l8k deploy`\n    ├── 10-nicclusterpolicy.yaml\n    ├── 11-nicnodepolicy-\u003Cgroup>.yaml\n    ├── 20-ippool-\u003Cgroup>.yaml\n    ├── 40-sriovnetworknodepolicy-\u003Cgroup>.yaml\n    └── 50-sriovnetwork-\u003Cgroup>.yaml\n```\n\n`values.yaml` is rendered from the profile's `00-values.yaml` template. `--network-operator-release \u003CMAJOR.MINOR>` populates the chart repository URL and image tag from the embedded catalog. To install or upgrade the chart alongside the CRs, pass `--deploy` (and `--overwrite-existing` when the release already exists with different values).\n\nFor Network Operator 26.1 and newer, the rendered values enable Maintenance\nOperator requestor mode. Profiles with DOCA\u002FOFED enable\n`operator.maintenanceOperator.useRequestor`. Profiles that deploy the SR-IOV\nOperator enable both the Network Operator drain requestor and\n`sriov-network-operator.operator.externalDrainer`; the two SR-IOV switches are\na coordinated handoff and must not be separated. The generated\n`MaintenanceOperatorConfig` gets the global limits from the config's\n`maintenance` section.\n\nBefore release 26.1, OFED uses `maintenance.maxParallelUpgrades` and the SR-IOV\ninternal drainer uses `maintenance.maxUnavailable` through\n`SriovNetworkPoolConfig`. Starting with 26.1, the global Maintenance Operator\nlimits are effective for both flows; the legacy OFED and SR-IOV pool limits do\nnot control requestor-mode concurrency.\n\n## Reusing the Discovered Profile\n\n`l8k discover` writes the final `profile.fabric`, `profile.deployment`,\n`profile.multirail`, and any enabled Spectrum-X settings to the config. Run\n`generate` without profile flags to reuse them; explicit generate flags still\nwin when a one-off override is needed.\n\n## Common Mistakes\n\n- **There is no `--profile` flag.** Profiles are selected via `--fabric` + `--deployment-type` (or `--spectrum-x`). Do NOT invent flags.\n- **The multiplane flag is `--multiplane-mode`**, not `--spcx-multiplane` or `--multiplane`.\n\n## Tips\n\n- Default to SR-IOV Ethernet for new GPU cluster deployments unless told otherwise.\n- For Spectrum-X, NIC type determines available multiplane modes — read `references\u002Fspectrum-x-guide.md`.\n- Use `--groups \u003Ca,b,...>` (case-sensitive identifier list) or `--gpu-type \u003CX>` (case-insensitive) to scope a generate to a subset of source groups in heterogeneous clusters. Mutually exclusive. Empty match is a validation error. Strict-subset filters split per-source rendering: NodePolicies emit one CR per source (each with its own machine-label nodeSelector but a shared bucket-level resourceName); IPPool\u002Fexample DaemonSet emit one CR per bucket with an `In` list of source machine labels.\n\n> [!CAUTION]\n> Generation does not apply anything to the cluster. Use `--deploy` or `k8s-launch-kit-deploy` to apply.\n\n## See Also\n\n- [k8s-launch-kit-shared](..\u002Fk8s-launch-kit-shared\u002FSKILL.md) — Global flags and output modes\n- [k8s-launch-kit-discover](..\u002Fk8s-launch-kit-discover\u002FSKILL.md) — Produce the cluster config needed for generation\n- [k8s-launch-kit-deploy](..\u002Fk8s-launch-kit-deploy\u002FSKILL.md) — Apply generated manifests\n- [k8s-launch-kit-dryrun](..\u002Fk8s-launch-kit-dryrun\u002FSKILL.md) — Preview before applying\n",{"data":38,"body":44},{"name":4,"version":39,"description":6,"metadata":40},"1.2.0",{"requires":41},{"skills":42},[43],"k8s-launch-kit-shared",{"type":45,"children":46},"root",[47,56,81,86,93,182,203,209,748,760,766,1348,1366,1429,1457,1463,1621,1633,1639,1668,1678,1720,1757,1786,1792,1833,1839,1911,1917,1966,1993,1999,2044],{"type":48,"tag":49,"props":50,"children":52},"element","h1",{"id":51},"l8k-manifest-generation",[53],{"type":54,"value":55},"text","l8k: Manifest Generation",{"type":48,"tag":57,"props":58,"children":59},"blockquote",{},[60],{"type":48,"tag":61,"props":62,"children":63},"p",{},[64,70,72,79],{"type":48,"tag":65,"props":66,"children":67},"strong",{},[68],{"type":54,"value":69},"PREREQUISITE:",{"type":54,"value":71}," Read ",{"type":48,"tag":73,"props":74,"children":76},"code",{"className":75},[],[77],{"type":54,"value":78},"..\u002Fk8s-launch-kit-shared\u002FSKILL.md",{"type":54,"value":80}," for install paths, global flags, and output modes.",{"type":48,"tag":61,"props":82,"children":83},{},[84],{"type":54,"value":85},"Generate Kubernetes YAML manifests for NVIDIA networking from a cluster config and profile selection.",{"type":48,"tag":87,"props":88,"children":90},"h2",{"id":89},"usage",[91],{"type":54,"value":92},"Usage",{"type":48,"tag":94,"props":95,"children":100},"pre",{"className":96,"code":97,"language":98,"meta":99,"style":99},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","l8k generate --user-config \u003CCONFIG> \\\n  --save-deployment-files \u003COUTPUT_DIR>\n","bash","",[101],{"type":48,"tag":73,"props":102,"children":103},{"__ignoreMap":99},[104,154],{"type":48,"tag":105,"props":106,"children":109},"span",{"class":107,"line":108},"line",1,[110,116,122,127,133,138,144,149],{"type":48,"tag":105,"props":111,"children":113},{"style":112},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[114],{"type":54,"value":115},"l8k",{"type":48,"tag":105,"props":117,"children":119},{"style":118},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[120],{"type":54,"value":121}," generate",{"type":48,"tag":105,"props":123,"children":124},{"style":118},[125],{"type":54,"value":126}," --user-config",{"type":48,"tag":105,"props":128,"children":130},{"style":129},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[131],{"type":54,"value":132}," \u003C",{"type":48,"tag":105,"props":134,"children":135},{"style":118},[136],{"type":54,"value":137},"CONFI",{"type":48,"tag":105,"props":139,"children":141},{"style":140},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[142],{"type":54,"value":143},"G",{"type":48,"tag":105,"props":145,"children":146},{"style":129},[147],{"type":54,"value":148},">",{"type":48,"tag":105,"props":150,"children":151},{"style":140},[152],{"type":54,"value":153}," \\\n",{"type":48,"tag":105,"props":155,"children":157},{"class":107,"line":156},2,[158,163,167,172,177],{"type":48,"tag":105,"props":159,"children":160},{"style":118},[161],{"type":54,"value":162},"  --save-deployment-files",{"type":48,"tag":105,"props":164,"children":165},{"style":129},[166],{"type":54,"value":132},{"type":48,"tag":105,"props":168,"children":169},{"style":118},[170],{"type":54,"value":171},"OUTPUT_DI",{"type":48,"tag":105,"props":173,"children":174},{"style":140},[175],{"type":54,"value":176},"R",{"type":48,"tag":105,"props":178,"children":179},{"style":129},[180],{"type":54,"value":181},">\n",{"type":48,"tag":61,"props":183,"children":184},{},[185,187,193,195,201],{"type":54,"value":186},"Configs produced by ",{"type":48,"tag":73,"props":188,"children":190},{"className":189},[],[191],{"type":54,"value":192},"l8k discover",{"type":54,"value":194}," already contain the resolved profile.\nProfile flags remain available as generation-time overrides. When generation\nuses a file-backed config, resolved defaults and CLI overrides are written back\nto that source file; embedded ",{"type":48,"tag":73,"props":196,"children":198},{"className":197},[],[199],{"type":54,"value":200},"--for",{"type":54,"value":202}," generation does not write a config.",{"type":48,"tag":87,"props":204,"children":206},{"id":205},"profile-selection-flags",[207],{"type":54,"value":208},"Profile Selection Flags",{"type":48,"tag":210,"props":211,"children":212},"table",{},[213,242],{"type":48,"tag":214,"props":215,"children":216},"thead",{},[217],{"type":48,"tag":218,"props":219,"children":220},"tr",{},[221,227,232,237],{"type":48,"tag":222,"props":223,"children":224},"th",{},[225],{"type":54,"value":226},"Flag",{"type":48,"tag":222,"props":228,"children":229},{},[230],{"type":54,"value":231},"Required",{"type":48,"tag":222,"props":233,"children":234},{},[235],{"type":54,"value":236},"Values",{"type":48,"tag":222,"props":238,"children":239},{},[240],{"type":54,"value":241},"Description",{"type":48,"tag":243,"props":244,"children":245},"tbody",{},[246,294,345,383,461,510,559,585,622,665,713],{"type":48,"tag":218,"props":247,"children":248},{},[249,259,264,281],{"type":48,"tag":250,"props":251,"children":252},"td",{},[253],{"type":48,"tag":73,"props":254,"children":256},{"className":255},[],[257],{"type":54,"value":258},"--fabric",{"type":48,"tag":250,"props":260,"children":261},{},[262],{"type":54,"value":263},"Auto-defaulted",{"type":48,"tag":250,"props":265,"children":266},{},[267,273,275],{"type":48,"tag":73,"props":268,"children":270},{"className":269},[],[271],{"type":54,"value":272},"ethernet",{"type":54,"value":274},", ",{"type":48,"tag":73,"props":276,"children":278},{"className":277},[],[279],{"type":54,"value":280},"infiniband",{"type":48,"tag":250,"props":282,"children":283},{},[284,286,292],{"type":54,"value":285},"Network fabric. Auto-defaults from the cluster's unanimous ",{"type":48,"tag":73,"props":287,"children":289},{"className":288},[],[290],{"type":54,"value":291},"linkType",{"type":54,"value":293}," when omitted (Unit 5 fabric probe); skipped+warned when groups disagree or any has unverified linkType.",{"type":48,"tag":218,"props":295,"children":296},{},[297,306,310,333],{"type":48,"tag":250,"props":298,"children":299},{},[300],{"type":48,"tag":73,"props":301,"children":303},{"className":302},[],[304],{"type":54,"value":305},"--deployment-type",{"type":48,"tag":250,"props":307,"children":308},{},[309],{"type":54,"value":263},{"type":48,"tag":250,"props":311,"children":312},{},[313,319,320,326,327],{"type":48,"tag":73,"props":314,"children":316},{"className":315},[],[317],{"type":54,"value":318},"sriov",{"type":54,"value":274},{"type":48,"tag":73,"props":321,"children":323},{"className":322},[],[324],{"type":54,"value":325},"rdma_shared",{"type":54,"value":274},{"type":48,"tag":73,"props":328,"children":330},{"className":329},[],[331],{"type":54,"value":332},"host_device",{"type":48,"tag":250,"props":334,"children":335},{},[336,338,343],{"type":54,"value":337},"Deployment type. Auto-defaults to ",{"type":48,"tag":73,"props":339,"children":341},{"className":340},[],[342],{"type":54,"value":318},{"type":54,"value":344},".",{"type":48,"tag":218,"props":346,"children":347},{},[348,357,362,378],{"type":48,"tag":250,"props":349,"children":350},{},[351],{"type":48,"tag":73,"props":352,"children":354},{"className":353},[],[355],{"type":54,"value":356},"--spectrum-x",{"type":48,"tag":250,"props":358,"children":359},{},[360],{"type":54,"value":361},"—",{"type":48,"tag":250,"props":363,"children":364},{},[365,371,372],{"type":48,"tag":73,"props":366,"children":368},{"className":367},[],[369],{"type":54,"value":370},"RA2.1",{"type":54,"value":274},{"type":48,"tag":73,"props":373,"children":375},{"className":374},[],[376],{"type":54,"value":377},"RA2.2",{"type":48,"tag":250,"props":379,"children":380},{},[381],{"type":54,"value":382},"Enable Spectrum-X profile by passing the SPC-X RA version. Implies ethernet fabric, sriov deployment, and multirail.",{"type":48,"tag":218,"props":384,"children":385},{},[386,395,405,435],{"type":48,"tag":250,"props":387,"children":388},{},[389],{"type":48,"tag":73,"props":390,"children":392},{"className":391},[],[393],{"type":54,"value":394},"--multiplane-mode",{"type":48,"tag":250,"props":396,"children":397},{},[398,400],{"type":54,"value":399},"Auto-defaulted with ",{"type":48,"tag":73,"props":401,"children":403},{"className":402},[],[404],{"type":54,"value":356},{"type":48,"tag":250,"props":406,"children":407},{},[408,414,415,421,422,428,429],{"type":48,"tag":73,"props":409,"children":411},{"className":410},[],[412],{"type":54,"value":413},"none",{"type":54,"value":274},{"type":48,"tag":73,"props":416,"children":418},{"className":417},[],[419],{"type":54,"value":420},"swplb",{"type":54,"value":274},{"type":48,"tag":73,"props":423,"children":425},{"className":424},[],[426],{"type":54,"value":427},"hwplb",{"type":54,"value":274},{"type":48,"tag":73,"props":430,"children":432},{"className":431},[],[433],{"type":54,"value":434},"uniplane",{"type":48,"tag":250,"props":436,"children":437},{},[438,440,445,447,452,454,459],{"type":54,"value":439},"Auto-defaults from east-west PF deviceID: CX7 \u002F BF3 SuperNIC → ",{"type":48,"tag":73,"props":441,"children":443},{"className":442},[],[444],{"type":54,"value":434},{"type":54,"value":446},", CX8 → ",{"type":48,"tag":73,"props":448,"children":450},{"className":449},[],[451],{"type":54,"value":420},{"type":54,"value":453},", CX9 → ",{"type":48,"tag":73,"props":455,"children":457},{"className":456},[],[458],{"type":54,"value":427},{"type":54,"value":460},". Skipped+warned when groups have mixed deviceIDs.",{"type":48,"tag":218,"props":462,"children":463},{},[464,473,482,505],{"type":48,"tag":250,"props":465,"children":466},{},[467],{"type":48,"tag":73,"props":468,"children":470},{"className":469},[],[471],{"type":54,"value":472},"--number-of-planes",{"type":48,"tag":250,"props":474,"children":475},{},[476,477],{"type":54,"value":399},{"type":48,"tag":73,"props":478,"children":480},{"className":479},[],[481],{"type":54,"value":356},{"type":48,"tag":250,"props":483,"children":484},{},[485,491,492,498,499],{"type":48,"tag":73,"props":486,"children":488},{"className":487},[],[489],{"type":54,"value":490},"1",{"type":54,"value":274},{"type":48,"tag":73,"props":493,"children":495},{"className":494},[],[496],{"type":54,"value":497},"2",{"type":54,"value":274},{"type":48,"tag":73,"props":500,"children":502},{"className":501},[],[503],{"type":54,"value":504},"4",{"type":48,"tag":250,"props":506,"children":507},{},[508],{"type":54,"value":509},"Auto-defaults from deviceID: CX7 \u002F BF3 → 1, CX8 → 2, CX9 → 4.",{"type":48,"tag":218,"props":511,"children":512},{},[513,522,526,530],{"type":48,"tag":250,"props":514,"children":515},{},[516],{"type":48,"tag":73,"props":517,"children":519},{"className":518},[],[520],{"type":54,"value":521},"--multirail",{"type":48,"tag":250,"props":523,"children":524},{},[525],{"type":54,"value":263},{"type":48,"tag":250,"props":527,"children":528},{},[529],{"type":54,"value":361},{"type":48,"tag":250,"props":531,"children":532},{},[533,535,541,543,549,551,557],{"type":54,"value":534},"Auto-defaults to ",{"type":48,"tag":73,"props":536,"children":538},{"className":537},[],[539],{"type":54,"value":540},"true",{"type":54,"value":542},". Explicit ",{"type":48,"tag":73,"props":544,"children":546},{"className":545},[],[547],{"type":54,"value":548},"multirail: false",{"type":54,"value":550}," in YAML and ",{"type":48,"tag":73,"props":552,"children":554},{"className":553},[],[555],{"type":54,"value":556},"--multirail=false",{"type":54,"value":558}," on the CLI are both preserved.",{"type":48,"tag":218,"props":560,"children":561},{},[562,571,576,580],{"type":48,"tag":250,"props":563,"children":564},{},[565],{"type":48,"tag":73,"props":566,"children":568},{"className":567},[],[569],{"type":54,"value":570},"--save-deployment-files",{"type":48,"tag":250,"props":572,"children":573},{},[574],{"type":54,"value":575},"Yes",{"type":48,"tag":250,"props":577,"children":578},{},[579],{"type":54,"value":361},{"type":48,"tag":250,"props":581,"children":582},{},[583],{"type":54,"value":584},"Output directory for generated YAMLs",{"type":48,"tag":218,"props":586,"children":587},{},[588,597,601,610],{"type":48,"tag":250,"props":589,"children":590},{},[591],{"type":48,"tag":73,"props":592,"children":594},{"className":593},[],[595],{"type":54,"value":596},"--groups",{"type":48,"tag":250,"props":598,"children":599},{},[600],{"type":54,"value":361},{"type":48,"tag":250,"props":602,"children":603},{},[604],{"type":48,"tag":73,"props":605,"children":607},{"className":606},[],[608],{"type":54,"value":609},"dgx-b200-nvidia-h100-nvl,poweredge-xe9680-nvidia-h200",{"type":48,"tag":250,"props":611,"children":612},{},[613,615,621],{"type":54,"value":614},"Restrict output to the named source groups (comma-separated). Mutually exclusive with ",{"type":48,"tag":73,"props":616,"children":618},{"className":617},[],[619],{"type":54,"value":620},"--gpu-type",{"type":54,"value":344},{"type":48,"tag":218,"props":623,"children":624},{},[625,633,637,646],{"type":48,"tag":250,"props":626,"children":627},{},[628],{"type":48,"tag":73,"props":629,"children":631},{"className":630},[],[632],{"type":54,"value":620},{"type":48,"tag":250,"props":634,"children":635},{},[636],{"type":54,"value":361},{"type":48,"tag":250,"props":638,"children":639},{},[640],{"type":48,"tag":73,"props":641,"children":643},{"className":642},[],[644],{"type":54,"value":645},"NVIDIA-H200",{"type":48,"tag":250,"props":647,"children":648},{},[649,651,657,659,664],{"type":54,"value":650},"Restrict output to source groups whose ",{"type":48,"tag":73,"props":652,"children":654},{"className":653},[],[655],{"type":54,"value":656},"gpuType",{"type":54,"value":658}," matches (case-insensitive). Mutually exclusive with ",{"type":48,"tag":73,"props":660,"children":662},{"className":661},[],[663],{"type":54,"value":596},{"type":54,"value":344},{"type":48,"tag":218,"props":666,"children":667},{},[668,676,680,685],{"type":48,"tag":250,"props":669,"children":670},{},[671],{"type":48,"tag":73,"props":672,"children":674},{"className":673},[],[675],{"type":54,"value":200},{"type":48,"tag":250,"props":677,"children":678},{},[679],{"type":54,"value":361},{"type":48,"tag":250,"props":681,"children":682},{},[683],{"type":54,"value":684},"preset directory name",{"type":48,"tag":250,"props":686,"children":687},{},[688,690,696,698,704,706,712],{"type":54,"value":689},"Skip discovery: synthesize ",{"type":48,"tag":73,"props":691,"children":693},{"className":692},[],[694],{"type":54,"value":695},"clusterConfig",{"type":54,"value":697}," from a topology preset. Requires ",{"type":48,"tag":73,"props":699,"children":701},{"className":700},[],[702],{"type":54,"value":703},"--node-selector",{"type":54,"value":705},". List options with ",{"type":48,"tag":73,"props":707,"children":709},{"className":708},[],[710],{"type":54,"value":711},"l8k preset list",{"type":54,"value":344},{"type":48,"tag":218,"props":714,"children":715},{},[716,724,734,743],{"type":48,"tag":250,"props":717,"children":718},{},[719],{"type":48,"tag":73,"props":720,"children":722},{"className":721},[],[723],{"type":54,"value":703},{"type":48,"tag":250,"props":725,"children":726},{},[727,729],{"type":54,"value":728},"Required with ",{"type":48,"tag":73,"props":730,"children":732},{"className":731},[],[733],{"type":54,"value":200},{"type":48,"tag":250,"props":735,"children":736},{},[737],{"type":48,"tag":73,"props":738,"children":740},{"className":739},[],[741],{"type":54,"value":742},"key=val,key2=val2",{"type":48,"tag":250,"props":744,"children":745},{},[746],{"type":54,"value":747},"Identifies which nodes the synthesized clusterConfig targets at apply time.",{"type":48,"tag":61,"props":749,"children":750},{},[751,753,758],{"type":54,"value":752},"*Not required when ",{"type":48,"tag":73,"props":754,"children":756},{"className":755},[],[757],{"type":54,"value":356},{"type":54,"value":759}," is used.",{"type":48,"tag":87,"props":761,"children":763},{"id":762},"examples",[764],{"type":54,"value":765},"Examples",{"type":48,"tag":94,"props":767,"children":769},{"className":96,"code":768,"language":98,"meta":99,"style":99},"# SR-IOV Ethernet RDMA (most common for GPU clusters)\nl8k generate --user-config cluster-config.yaml \\\n  --fabric ethernet --deployment-type sriov \\\n  --save-deployment-files .\u002Foutput\n\n# Spectrum-X with hardware plane load balancing\nl8k generate --user-config cluster-config.yaml \\\n  --spectrum-x RA2.2 --multiplane-mode hwplb --number-of-planes 4 \\\n  --save-deployment-files .\u002Foutput\n\n# Host device RDMA\nl8k generate --user-config cluster-config.yaml \\\n  --fabric ethernet --deployment-type host_device \\\n  --save-deployment-files .\u002Foutput\n\n# IPoIB RDMA shared (InfiniBand)\nl8k generate --user-config cluster-config.yaml \\\n  --fabric infiniband --deployment-type rdma_shared \\\n  --save-deployment-files .\u002Foutput\n\n# Agent mode\nl8k generate --user-config cluster-config.yaml \\\n  --fabric ethernet --deployment-type sriov \\\n  --save-deployment-files .\u002Foutput \\\n  --output json 2>\u002Fdev\u002Fnull\n\n# Generate from a known server SKU (no cluster discovery required)\nl8k preset list   # see available presets\nl8k generate --user-config cluster-config.yaml \\\n  --for ThinkSystem-SR680a-V3 \\\n  --node-selector \"nvidia.com\u002Fgpu.product=NVIDIA-H200\" \\\n  --fabric ethernet --deployment-type sriov \\\n  --save-deployment-files .\u002Foutput\n",[770],{"type":48,"tag":73,"props":771,"children":772},{"__ignoreMap":99},[773,782,806,834,846,856,865,889,928,940,948,957,981,1006,1017,1025,1034,1058,1084,1096,1104,1113,1137,1161,1178,1202,1210,1219,1242,1266,1284,1312,1336],{"type":48,"tag":105,"props":774,"children":775},{"class":107,"line":108},[776],{"type":48,"tag":105,"props":777,"children":779},{"style":778},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[780],{"type":54,"value":781},"# SR-IOV Ethernet RDMA (most common for GPU clusters)\n",{"type":48,"tag":105,"props":783,"children":784},{"class":107,"line":156},[785,789,793,797,802],{"type":48,"tag":105,"props":786,"children":787},{"style":112},[788],{"type":54,"value":115},{"type":48,"tag":105,"props":790,"children":791},{"style":118},[792],{"type":54,"value":121},{"type":48,"tag":105,"props":794,"children":795},{"style":118},[796],{"type":54,"value":126},{"type":48,"tag":105,"props":798,"children":799},{"style":118},[800],{"type":54,"value":801}," cluster-config.yaml",{"type":48,"tag":105,"props":803,"children":804},{"style":140},[805],{"type":54,"value":153},{"type":48,"tag":105,"props":807,"children":809},{"class":107,"line":808},3,[810,815,820,825,830],{"type":48,"tag":105,"props":811,"children":812},{"style":118},[813],{"type":54,"value":814},"  --fabric",{"type":48,"tag":105,"props":816,"children":817},{"style":118},[818],{"type":54,"value":819}," ethernet",{"type":48,"tag":105,"props":821,"children":822},{"style":118},[823],{"type":54,"value":824}," --deployment-type",{"type":48,"tag":105,"props":826,"children":827},{"style":118},[828],{"type":54,"value":829}," sriov",{"type":48,"tag":105,"props":831,"children":832},{"style":140},[833],{"type":54,"value":153},{"type":48,"tag":105,"props":835,"children":836},{"class":107,"line":30},[837,841],{"type":48,"tag":105,"props":838,"children":839},{"style":118},[840],{"type":54,"value":162},{"type":48,"tag":105,"props":842,"children":843},{"style":118},[844],{"type":54,"value":845}," .\u002Foutput\n",{"type":48,"tag":105,"props":847,"children":849},{"class":107,"line":848},5,[850],{"type":48,"tag":105,"props":851,"children":853},{"emptyLinePlaceholder":852},true,[854],{"type":54,"value":855},"\n",{"type":48,"tag":105,"props":857,"children":859},{"class":107,"line":858},6,[860],{"type":48,"tag":105,"props":861,"children":862},{"style":778},[863],{"type":54,"value":864},"# Spectrum-X with hardware plane load balancing\n",{"type":48,"tag":105,"props":866,"children":868},{"class":107,"line":867},7,[869,873,877,881,885],{"type":48,"tag":105,"props":870,"children":871},{"style":112},[872],{"type":54,"value":115},{"type":48,"tag":105,"props":874,"children":875},{"style":118},[876],{"type":54,"value":121},{"type":48,"tag":105,"props":878,"children":879},{"style":118},[880],{"type":54,"value":126},{"type":48,"tag":105,"props":882,"children":883},{"style":118},[884],{"type":54,"value":801},{"type":48,"tag":105,"props":886,"children":887},{"style":140},[888],{"type":54,"value":153},{"type":48,"tag":105,"props":890,"children":892},{"class":107,"line":891},8,[893,898,903,908,913,918,924],{"type":48,"tag":105,"props":894,"children":895},{"style":118},[896],{"type":54,"value":897},"  --spectrum-x",{"type":48,"tag":105,"props":899,"children":900},{"style":118},[901],{"type":54,"value":902}," RA2.2",{"type":48,"tag":105,"props":904,"children":905},{"style":118},[906],{"type":54,"value":907}," --multiplane-mode",{"type":48,"tag":105,"props":909,"children":910},{"style":118},[911],{"type":54,"value":912}," hwplb",{"type":48,"tag":105,"props":914,"children":915},{"style":118},[916],{"type":54,"value":917}," --number-of-planes",{"type":48,"tag":105,"props":919,"children":921},{"style":920},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[922],{"type":54,"value":923}," 4",{"type":48,"tag":105,"props":925,"children":926},{"style":140},[927],{"type":54,"value":153},{"type":48,"tag":105,"props":929,"children":931},{"class":107,"line":930},9,[932,936],{"type":48,"tag":105,"props":933,"children":934},{"style":118},[935],{"type":54,"value":162},{"type":48,"tag":105,"props":937,"children":938},{"style":118},[939],{"type":54,"value":845},{"type":48,"tag":105,"props":941,"children":943},{"class":107,"line":942},10,[944],{"type":48,"tag":105,"props":945,"children":946},{"emptyLinePlaceholder":852},[947],{"type":54,"value":855},{"type":48,"tag":105,"props":949,"children":951},{"class":107,"line":950},11,[952],{"type":48,"tag":105,"props":953,"children":954},{"style":778},[955],{"type":54,"value":956},"# Host device RDMA\n",{"type":48,"tag":105,"props":958,"children":960},{"class":107,"line":959},12,[961,965,969,973,977],{"type":48,"tag":105,"props":962,"children":963},{"style":112},[964],{"type":54,"value":115},{"type":48,"tag":105,"props":966,"children":967},{"style":118},[968],{"type":54,"value":121},{"type":48,"tag":105,"props":970,"children":971},{"style":118},[972],{"type":54,"value":126},{"type":48,"tag":105,"props":974,"children":975},{"style":118},[976],{"type":54,"value":801},{"type":48,"tag":105,"props":978,"children":979},{"style":140},[980],{"type":54,"value":153},{"type":48,"tag":105,"props":982,"children":984},{"class":107,"line":983},13,[985,989,993,997,1002],{"type":48,"tag":105,"props":986,"children":987},{"style":118},[988],{"type":54,"value":814},{"type":48,"tag":105,"props":990,"children":991},{"style":118},[992],{"type":54,"value":819},{"type":48,"tag":105,"props":994,"children":995},{"style":118},[996],{"type":54,"value":824},{"type":48,"tag":105,"props":998,"children":999},{"style":118},[1000],{"type":54,"value":1001}," host_device",{"type":48,"tag":105,"props":1003,"children":1004},{"style":140},[1005],{"type":54,"value":153},{"type":48,"tag":105,"props":1007,"children":1008},{"class":107,"line":26},[1009,1013],{"type":48,"tag":105,"props":1010,"children":1011},{"style":118},[1012],{"type":54,"value":162},{"type":48,"tag":105,"props":1014,"children":1015},{"style":118},[1016],{"type":54,"value":845},{"type":48,"tag":105,"props":1018,"children":1020},{"class":107,"line":1019},15,[1021],{"type":48,"tag":105,"props":1022,"children":1023},{"emptyLinePlaceholder":852},[1024],{"type":54,"value":855},{"type":48,"tag":105,"props":1026,"children":1028},{"class":107,"line":1027},16,[1029],{"type":48,"tag":105,"props":1030,"children":1031},{"style":778},[1032],{"type":54,"value":1033},"# IPoIB RDMA shared (InfiniBand)\n",{"type":48,"tag":105,"props":1035,"children":1037},{"class":107,"line":1036},17,[1038,1042,1046,1050,1054],{"type":48,"tag":105,"props":1039,"children":1040},{"style":112},[1041],{"type":54,"value":115},{"type":48,"tag":105,"props":1043,"children":1044},{"style":118},[1045],{"type":54,"value":121},{"type":48,"tag":105,"props":1047,"children":1048},{"style":118},[1049],{"type":54,"value":126},{"type":48,"tag":105,"props":1051,"children":1052},{"style":118},[1053],{"type":54,"value":801},{"type":48,"tag":105,"props":1055,"children":1056},{"style":140},[1057],{"type":54,"value":153},{"type":48,"tag":105,"props":1059,"children":1061},{"class":107,"line":1060},18,[1062,1066,1071,1075,1080],{"type":48,"tag":105,"props":1063,"children":1064},{"style":118},[1065],{"type":54,"value":814},{"type":48,"tag":105,"props":1067,"children":1068},{"style":118},[1069],{"type":54,"value":1070}," infiniband",{"type":48,"tag":105,"props":1072,"children":1073},{"style":118},[1074],{"type":54,"value":824},{"type":48,"tag":105,"props":1076,"children":1077},{"style":118},[1078],{"type":54,"value":1079}," rdma_shared",{"type":48,"tag":105,"props":1081,"children":1082},{"style":140},[1083],{"type":54,"value":153},{"type":48,"tag":105,"props":1085,"children":1087},{"class":107,"line":1086},19,[1088,1092],{"type":48,"tag":105,"props":1089,"children":1090},{"style":118},[1091],{"type":54,"value":162},{"type":48,"tag":105,"props":1093,"children":1094},{"style":118},[1095],{"type":54,"value":845},{"type":48,"tag":105,"props":1097,"children":1099},{"class":107,"line":1098},20,[1100],{"type":48,"tag":105,"props":1101,"children":1102},{"emptyLinePlaceholder":852},[1103],{"type":54,"value":855},{"type":48,"tag":105,"props":1105,"children":1107},{"class":107,"line":1106},21,[1108],{"type":48,"tag":105,"props":1109,"children":1110},{"style":778},[1111],{"type":54,"value":1112},"# Agent mode\n",{"type":48,"tag":105,"props":1114,"children":1116},{"class":107,"line":1115},22,[1117,1121,1125,1129,1133],{"type":48,"tag":105,"props":1118,"children":1119},{"style":112},[1120],{"type":54,"value":115},{"type":48,"tag":105,"props":1122,"children":1123},{"style":118},[1124],{"type":54,"value":121},{"type":48,"tag":105,"props":1126,"children":1127},{"style":118},[1128],{"type":54,"value":126},{"type":48,"tag":105,"props":1130,"children":1131},{"style":118},[1132],{"type":54,"value":801},{"type":48,"tag":105,"props":1134,"children":1135},{"style":140},[1136],{"type":54,"value":153},{"type":48,"tag":105,"props":1138,"children":1140},{"class":107,"line":1139},23,[1141,1145,1149,1153,1157],{"type":48,"tag":105,"props":1142,"children":1143},{"style":118},[1144],{"type":54,"value":814},{"type":48,"tag":105,"props":1146,"children":1147},{"style":118},[1148],{"type":54,"value":819},{"type":48,"tag":105,"props":1150,"children":1151},{"style":118},[1152],{"type":54,"value":824},{"type":48,"tag":105,"props":1154,"children":1155},{"style":118},[1156],{"type":54,"value":829},{"type":48,"tag":105,"props":1158,"children":1159},{"style":140},[1160],{"type":54,"value":153},{"type":48,"tag":105,"props":1162,"children":1164},{"class":107,"line":1163},24,[1165,1169,1174],{"type":48,"tag":105,"props":1166,"children":1167},{"style":118},[1168],{"type":54,"value":162},{"type":48,"tag":105,"props":1170,"children":1171},{"style":118},[1172],{"type":54,"value":1173}," .\u002Foutput",{"type":48,"tag":105,"props":1175,"children":1176},{"style":140},[1177],{"type":54,"value":153},{"type":48,"tag":105,"props":1179,"children":1181},{"class":107,"line":1180},25,[1182,1187,1192,1197],{"type":48,"tag":105,"props":1183,"children":1184},{"style":118},[1185],{"type":54,"value":1186},"  --output",{"type":48,"tag":105,"props":1188,"children":1189},{"style":118},[1190],{"type":54,"value":1191}," json",{"type":48,"tag":105,"props":1193,"children":1194},{"style":129},[1195],{"type":54,"value":1196}," 2>",{"type":48,"tag":105,"props":1198,"children":1199},{"style":118},[1200],{"type":54,"value":1201},"\u002Fdev\u002Fnull\n",{"type":48,"tag":105,"props":1203,"children":1205},{"class":107,"line":1204},26,[1206],{"type":48,"tag":105,"props":1207,"children":1208},{"emptyLinePlaceholder":852},[1209],{"type":54,"value":855},{"type":48,"tag":105,"props":1211,"children":1213},{"class":107,"line":1212},27,[1214],{"type":48,"tag":105,"props":1215,"children":1216},{"style":778},[1217],{"type":54,"value":1218},"# Generate from a known server SKU (no cluster discovery required)\n",{"type":48,"tag":105,"props":1220,"children":1222},{"class":107,"line":1221},28,[1223,1227,1232,1237],{"type":48,"tag":105,"props":1224,"children":1225},{"style":112},[1226],{"type":54,"value":115},{"type":48,"tag":105,"props":1228,"children":1229},{"style":118},[1230],{"type":54,"value":1231}," preset",{"type":48,"tag":105,"props":1233,"children":1234},{"style":118},[1235],{"type":54,"value":1236}," list",{"type":48,"tag":105,"props":1238,"children":1239},{"style":778},[1240],{"type":54,"value":1241},"   # see available presets\n",{"type":48,"tag":105,"props":1243,"children":1245},{"class":107,"line":1244},29,[1246,1250,1254,1258,1262],{"type":48,"tag":105,"props":1247,"children":1248},{"style":112},[1249],{"type":54,"value":115},{"type":48,"tag":105,"props":1251,"children":1252},{"style":118},[1253],{"type":54,"value":121},{"type":48,"tag":105,"props":1255,"children":1256},{"style":118},[1257],{"type":54,"value":126},{"type":48,"tag":105,"props":1259,"children":1260},{"style":118},[1261],{"type":54,"value":801},{"type":48,"tag":105,"props":1263,"children":1264},{"style":140},[1265],{"type":54,"value":153},{"type":48,"tag":105,"props":1267,"children":1269},{"class":107,"line":1268},30,[1270,1275,1280],{"type":48,"tag":105,"props":1271,"children":1272},{"style":118},[1273],{"type":54,"value":1274},"  --for",{"type":48,"tag":105,"props":1276,"children":1277},{"style":118},[1278],{"type":54,"value":1279}," ThinkSystem-SR680a-V3",{"type":48,"tag":105,"props":1281,"children":1282},{"style":140},[1283],{"type":54,"value":153},{"type":48,"tag":105,"props":1285,"children":1287},{"class":107,"line":1286},31,[1288,1293,1298,1303,1308],{"type":48,"tag":105,"props":1289,"children":1290},{"style":118},[1291],{"type":54,"value":1292},"  --node-selector",{"type":48,"tag":105,"props":1294,"children":1295},{"style":129},[1296],{"type":54,"value":1297}," \"",{"type":48,"tag":105,"props":1299,"children":1300},{"style":118},[1301],{"type":54,"value":1302},"nvidia.com\u002Fgpu.product=NVIDIA-H200",{"type":48,"tag":105,"props":1304,"children":1305},{"style":129},[1306],{"type":54,"value":1307},"\"",{"type":48,"tag":105,"props":1309,"children":1310},{"style":140},[1311],{"type":54,"value":153},{"type":48,"tag":105,"props":1313,"children":1315},{"class":107,"line":1314},32,[1316,1320,1324,1328,1332],{"type":48,"tag":105,"props":1317,"children":1318},{"style":118},[1319],{"type":54,"value":814},{"type":48,"tag":105,"props":1321,"children":1322},{"style":118},[1323],{"type":54,"value":819},{"type":48,"tag":105,"props":1325,"children":1326},{"style":118},[1327],{"type":54,"value":824},{"type":48,"tag":105,"props":1329,"children":1330},{"style":118},[1331],{"type":54,"value":829},{"type":48,"tag":105,"props":1333,"children":1334},{"style":140},[1335],{"type":54,"value":153},{"type":48,"tag":105,"props":1337,"children":1339},{"class":107,"line":1338},33,[1340,1344],{"type":48,"tag":105,"props":1341,"children":1342},{"style":118},[1343],{"type":54,"value":162},{"type":48,"tag":105,"props":1345,"children":1346},{"style":118},[1347],{"type":54,"value":845},{"type":48,"tag":87,"props":1349,"children":1351},{"id":1350},"choosing-l8k-discover-vs-for",[1352,1354,1359,1361],{"type":54,"value":1353},"Choosing ",{"type":48,"tag":73,"props":1355,"children":1357},{"className":1356},[],[1358],{"type":54,"value":192},{"type":54,"value":1360}," vs ",{"type":48,"tag":73,"props":1362,"children":1364},{"className":1363},[],[1365],{"type":54,"value":200},{"type":48,"tag":1367,"props":1368,"children":1369},"ul",{},[1370,1400],{"type":48,"tag":1371,"props":1372,"children":1373},"li",{},[1374,1390,1392,1398],{"type":48,"tag":65,"props":1375,"children":1376},{},[1377,1382,1384],{"type":48,"tag":73,"props":1378,"children":1380},{"className":1379},[],[1381],{"type":54,"value":192},{"type":54,"value":1383}," then ",{"type":48,"tag":73,"props":1385,"children":1387},{"className":1386},[],[1388],{"type":54,"value":1389},"l8k generate",{"type":54,"value":1391}," — default flow. Discovery learns the hardware and persists the resolved profile, so generation needs only the resulting ",{"type":48,"tag":73,"props":1393,"children":1395},{"className":1394},[],[1396],{"type":54,"value":1397},"cluster-config.yaml",{"type":54,"value":1399}," unless an override is desired.",{"type":48,"tag":1371,"props":1401,"children":1402},{},[1403,1412,1414,1420,1422,1427],{"type":48,"tag":65,"props":1404,"children":1405},{},[1406],{"type":48,"tag":73,"props":1407,"children":1409},{"className":1408},[],[1410],{"type":54,"value":1411},"l8k generate --for \u003Cpreset>",{"type":54,"value":1413}," — skip discovery entirely when the SKU is already known and there is a preset for it. Useful for ahead-of-time generation (CI scaffolding, lab runbooks, demos), or when you don't have ",{"type":48,"tag":73,"props":1415,"children":1417},{"className":1416},[],[1418],{"type":54,"value":1419},"kubectl",{"type":54,"value":1421}," access yet. Requires ",{"type":48,"tag":73,"props":1423,"children":1425},{"className":1424},[],[1426],{"type":54,"value":703},{"type":54,"value":1428}," to identify the target nodes at apply time.",{"type":48,"tag":61,"props":1430,"children":1431},{},[1432,1434,1439,1441,1447,1449,1455],{"type":54,"value":1433},"A preset used with ",{"type":48,"tag":73,"props":1435,"children":1437},{"className":1436},[],[1438],{"type":54,"value":200},{"type":54,"value":1440}," must declare ",{"type":48,"tag":73,"props":1442,"children":1444},{"className":1443},[],[1445],{"type":54,"value":1446},"capabilities.nodes.{sriov,rdma,ib}",{"type":54,"value":1448}," in its ",{"type":48,"tag":73,"props":1450,"children":1452},{"className":1451},[],[1453],{"type":54,"value":1454},"topology.yaml",{"type":54,"value":1456},". All bundled presets do.",{"type":48,"tag":87,"props":1458,"children":1460},{"id":1459},"profile-quick-reference",[1461],{"type":54,"value":1462},"Profile Quick Reference",{"type":48,"tag":210,"props":1464,"children":1465},{},[1466,1487],{"type":48,"tag":214,"props":1467,"children":1468},{},[1469],{"type":48,"tag":218,"props":1470,"children":1471},{},[1472,1477,1482],{"type":48,"tag":222,"props":1473,"children":1474},{},[1475],{"type":54,"value":1476},"Profile",{"type":48,"tag":222,"props":1478,"children":1479},{},[1480],{"type":54,"value":1481},"Flags",{"type":48,"tag":222,"props":1483,"children":1484},{},[1485],{"type":54,"value":1486},"Use Case",{"type":48,"tag":243,"props":1488,"children":1489},{},[1490,1512,1534,1556,1578,1600],{"type":48,"tag":218,"props":1491,"children":1492},{},[1493,1498,1507],{"type":48,"tag":250,"props":1494,"children":1495},{},[1496],{"type":54,"value":1497},"SR-IOV Ethernet RDMA",{"type":48,"tag":250,"props":1499,"children":1500},{},[1501],{"type":48,"tag":73,"props":1502,"children":1504},{"className":1503},[],[1505],{"type":54,"value":1506},"--fabric ethernet --deployment-type sriov",{"type":48,"tag":250,"props":1508,"children":1509},{},[1510],{"type":54,"value":1511},"GPU clusters, ML training, HPC",{"type":48,"tag":218,"props":1513,"children":1514},{},[1515,1520,1529],{"type":48,"tag":250,"props":1516,"children":1517},{},[1518],{"type":54,"value":1519},"Host Device RDMA",{"type":48,"tag":250,"props":1521,"children":1522},{},[1523],{"type":48,"tag":73,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":54,"value":1528},"--fabric ethernet --deployment-type host_device",{"type":48,"tag":250,"props":1530,"children":1531},{},[1532],{"type":54,"value":1533},"Legacy HPC, DPDK, full NIC access",{"type":48,"tag":218,"props":1535,"children":1536},{},[1537,1542,1551],{"type":48,"tag":250,"props":1538,"children":1539},{},[1540],{"type":54,"value":1541},"MacVLAN RDMA Shared",{"type":48,"tag":250,"props":1543,"children":1544},{},[1545],{"type":48,"tag":73,"props":1546,"children":1548},{"className":1547},[],[1549],{"type":54,"value":1550},"--fabric ethernet --deployment-type rdma_shared",{"type":48,"tag":250,"props":1552,"children":1553},{},[1554],{"type":54,"value":1555},"Multi-tenant Ethernet environments",{"type":48,"tag":218,"props":1557,"children":1558},{},[1559,1564,1573],{"type":48,"tag":250,"props":1560,"children":1561},{},[1562],{"type":54,"value":1563},"IPoIB RDMA Shared",{"type":48,"tag":250,"props":1565,"children":1566},{},[1567],{"type":48,"tag":73,"props":1568,"children":1570},{"className":1569},[],[1571],{"type":54,"value":1572},"--fabric infiniband --deployment-type rdma_shared",{"type":48,"tag":250,"props":1574,"children":1575},{},[1576],{"type":54,"value":1577},"InfiniBand shared workloads",{"type":48,"tag":218,"props":1579,"children":1580},{},[1581,1586,1595],{"type":48,"tag":250,"props":1582,"children":1583},{},[1584],{"type":54,"value":1585},"SR-IOV InfiniBand",{"type":48,"tag":250,"props":1587,"children":1588},{},[1589],{"type":48,"tag":73,"props":1590,"children":1592},{"className":1591},[],[1593],{"type":54,"value":1594},"--fabric infiniband --deployment-type sriov",{"type":48,"tag":250,"props":1596,"children":1597},{},[1598],{"type":54,"value":1599},"InfiniBand SR-IOV",{"type":48,"tag":218,"props":1601,"children":1602},{},[1603,1608,1616],{"type":48,"tag":250,"props":1604,"children":1605},{},[1606],{"type":54,"value":1607},"Spectrum-X",{"type":48,"tag":250,"props":1609,"children":1610},{},[1611],{"type":48,"tag":73,"props":1612,"children":1614},{"className":1613},[],[1615],{"type":54,"value":356},{"type":48,"tag":250,"props":1617,"children":1618},{},[1619],{"type":54,"value":1620},"AI cloud, multi-tenant GPU networking",{"type":48,"tag":61,"props":1622,"children":1623},{},[1624,1626,1632],{"type":54,"value":1625},"For detailed profile selection guidance (NIC constraints, multiplane modes, when to use each),\nread ",{"type":48,"tag":73,"props":1627,"children":1629},{"className":1628},[],[1630],{"type":54,"value":1631},"references\u002Fprofile-decision-tree.md",{"type":54,"value":344},{"type":48,"tag":87,"props":1634,"children":1636},{"id":1635},"output",[1637],{"type":54,"value":1638},"Output",{"type":48,"tag":61,"props":1640,"children":1641},{},[1642,1644,1650,1652,1658,1660,1666],{"type":54,"value":1643},"Generated YAMLs are written to the output directory under ",{"type":48,"tag":73,"props":1645,"children":1647},{"className":1646},[],[1648],{"type":54,"value":1649},"network-operator\u002F",{"type":54,"value":1651},". Each profile also emits a ",{"type":48,"tag":73,"props":1653,"children":1655},{"className":1654},[],[1656],{"type":54,"value":1657},"values.yaml",{"type":54,"value":1659}," (Helm values for the ",{"type":48,"tag":73,"props":1661,"children":1663},{"className":1662},[],[1664],{"type":54,"value":1665},"nvidia\u002Fnetwork-operator",{"type":54,"value":1667}," chart) alongside the CR manifests:",{"type":48,"tag":94,"props":1669,"children":1673},{"className":1670,"code":1672,"language":54},[1671],"language-text","output\u002F\n└── network-operator\u002F\n    ├── values.yaml                       # Phase 0 helm-install input for `l8k deploy`\n    ├── 10-nicclusterpolicy.yaml\n    ├── 11-nicnodepolicy-\u003Cgroup>.yaml\n    ├── 20-ippool-\u003Cgroup>.yaml\n    ├── 40-sriovnetworknodepolicy-\u003Cgroup>.yaml\n    └── 50-sriovnetwork-\u003Cgroup>.yaml\n",[1674],{"type":48,"tag":73,"props":1675,"children":1676},{"__ignoreMap":99},[1677],{"type":54,"value":1672},{"type":48,"tag":61,"props":1679,"children":1680},{},[1681,1686,1688,1694,1696,1702,1704,1710,1712,1718],{"type":48,"tag":73,"props":1682,"children":1684},{"className":1683},[],[1685],{"type":54,"value":1657},{"type":54,"value":1687}," is rendered from the profile's ",{"type":48,"tag":73,"props":1689,"children":1691},{"className":1690},[],[1692],{"type":54,"value":1693},"00-values.yaml",{"type":54,"value":1695}," template. ",{"type":48,"tag":73,"props":1697,"children":1699},{"className":1698},[],[1700],{"type":54,"value":1701},"--network-operator-release \u003CMAJOR.MINOR>",{"type":54,"value":1703}," populates the chart repository URL and image tag from the embedded catalog. To install or upgrade the chart alongside the CRs, pass ",{"type":48,"tag":73,"props":1705,"children":1707},{"className":1706},[],[1708],{"type":54,"value":1709},"--deploy",{"type":54,"value":1711}," (and ",{"type":48,"tag":73,"props":1713,"children":1715},{"className":1714},[],[1716],{"type":54,"value":1717},"--overwrite-existing",{"type":54,"value":1719}," when the release already exists with different values).",{"type":48,"tag":61,"props":1721,"children":1722},{},[1723,1725,1731,1733,1739,1741,1747,1749,1755],{"type":54,"value":1724},"For Network Operator 26.1 and newer, the rendered values enable Maintenance\nOperator requestor mode. Profiles with DOCA\u002FOFED enable\n",{"type":48,"tag":73,"props":1726,"children":1728},{"className":1727},[],[1729],{"type":54,"value":1730},"operator.maintenanceOperator.useRequestor",{"type":54,"value":1732},". Profiles that deploy the SR-IOV\nOperator enable both the Network Operator drain requestor and\n",{"type":48,"tag":73,"props":1734,"children":1736},{"className":1735},[],[1737],{"type":54,"value":1738},"sriov-network-operator.operator.externalDrainer",{"type":54,"value":1740},"; the two SR-IOV switches are\na coordinated handoff and must not be separated. The generated\n",{"type":48,"tag":73,"props":1742,"children":1744},{"className":1743},[],[1745],{"type":54,"value":1746},"MaintenanceOperatorConfig",{"type":54,"value":1748}," gets the global limits from the config's\n",{"type":48,"tag":73,"props":1750,"children":1752},{"className":1751},[],[1753],{"type":54,"value":1754},"maintenance",{"type":54,"value":1756}," section.",{"type":48,"tag":61,"props":1758,"children":1759},{},[1760,1762,1768,1770,1776,1778,1784],{"type":54,"value":1761},"Before release 26.1, OFED uses ",{"type":48,"tag":73,"props":1763,"children":1765},{"className":1764},[],[1766],{"type":54,"value":1767},"maintenance.maxParallelUpgrades",{"type":54,"value":1769}," and the SR-IOV\ninternal drainer uses ",{"type":48,"tag":73,"props":1771,"children":1773},{"className":1772},[],[1774],{"type":54,"value":1775},"maintenance.maxUnavailable",{"type":54,"value":1777}," through\n",{"type":48,"tag":73,"props":1779,"children":1781},{"className":1780},[],[1782],{"type":54,"value":1783},"SriovNetworkPoolConfig",{"type":54,"value":1785},". Starting with 26.1, the global Maintenance Operator\nlimits are effective for both flows; the legacy OFED and SR-IOV pool limits do\nnot control requestor-mode concurrency.",{"type":48,"tag":87,"props":1787,"children":1789},{"id":1788},"reusing-the-discovered-profile",[1790],{"type":54,"value":1791},"Reusing the Discovered Profile",{"type":48,"tag":61,"props":1793,"children":1794},{},[1795,1800,1802,1808,1809,1815,1817,1823,1825,1831],{"type":48,"tag":73,"props":1796,"children":1798},{"className":1797},[],[1799],{"type":54,"value":192},{"type":54,"value":1801}," writes the final ",{"type":48,"tag":73,"props":1803,"children":1805},{"className":1804},[],[1806],{"type":54,"value":1807},"profile.fabric",{"type":54,"value":274},{"type":48,"tag":73,"props":1810,"children":1812},{"className":1811},[],[1813],{"type":54,"value":1814},"profile.deployment",{"type":54,"value":1816},",\n",{"type":48,"tag":73,"props":1818,"children":1820},{"className":1819},[],[1821],{"type":54,"value":1822},"profile.multirail",{"type":54,"value":1824},", and any enabled Spectrum-X settings to the config. Run\n",{"type":48,"tag":73,"props":1826,"children":1828},{"className":1827},[],[1829],{"type":54,"value":1830},"generate",{"type":54,"value":1832}," without profile flags to reuse them; explicit generate flags still\nwin when a one-off override is needed.",{"type":48,"tag":87,"props":1834,"children":1836},{"id":1835},"common-mistakes",[1837],{"type":54,"value":1838},"Common Mistakes",{"type":48,"tag":1367,"props":1840,"children":1841},{},[1842,1881],{"type":48,"tag":1371,"props":1843,"children":1844},{},[1845,1858,1860,1865,1867,1872,1874,1879],{"type":48,"tag":65,"props":1846,"children":1847},{},[1848,1850,1856],{"type":54,"value":1849},"There is no ",{"type":48,"tag":73,"props":1851,"children":1853},{"className":1852},[],[1854],{"type":54,"value":1855},"--profile",{"type":54,"value":1857}," flag.",{"type":54,"value":1859}," Profiles are selected via ",{"type":48,"tag":73,"props":1861,"children":1863},{"className":1862},[],[1864],{"type":54,"value":258},{"type":54,"value":1866}," + ",{"type":48,"tag":73,"props":1868,"children":1870},{"className":1869},[],[1871],{"type":54,"value":305},{"type":54,"value":1873}," (or ",{"type":48,"tag":73,"props":1875,"children":1877},{"className":1876},[],[1878],{"type":54,"value":356},{"type":54,"value":1880},"). Do NOT invent flags.",{"type":48,"tag":1371,"props":1882,"children":1883},{},[1884,1894,1896,1902,1904,1910],{"type":48,"tag":65,"props":1885,"children":1886},{},[1887,1889],{"type":54,"value":1888},"The multiplane flag is ",{"type":48,"tag":73,"props":1890,"children":1892},{"className":1891},[],[1893],{"type":54,"value":394},{"type":54,"value":1895},", not ",{"type":48,"tag":73,"props":1897,"children":1899},{"className":1898},[],[1900],{"type":54,"value":1901},"--spcx-multiplane",{"type":54,"value":1903}," or ",{"type":48,"tag":73,"props":1905,"children":1907},{"className":1906},[],[1908],{"type":54,"value":1909},"--multiplane",{"type":54,"value":344},{"type":48,"tag":87,"props":1912,"children":1914},{"id":1913},"tips",[1915],{"type":54,"value":1916},"Tips",{"type":48,"tag":1367,"props":1918,"children":1919},{},[1920,1925,1937],{"type":48,"tag":1371,"props":1921,"children":1922},{},[1923],{"type":54,"value":1924},"Default to SR-IOV Ethernet for new GPU cluster deployments unless told otherwise.",{"type":48,"tag":1371,"props":1926,"children":1927},{},[1928,1930,1936],{"type":54,"value":1929},"For Spectrum-X, NIC type determines available multiplane modes — read ",{"type":48,"tag":73,"props":1931,"children":1933},{"className":1932},[],[1934],{"type":54,"value":1935},"references\u002Fspectrum-x-guide.md",{"type":54,"value":344},{"type":48,"tag":1371,"props":1938,"children":1939},{},[1940,1942,1948,1950,1956,1958,1964],{"type":54,"value":1941},"Use ",{"type":48,"tag":73,"props":1943,"children":1945},{"className":1944},[],[1946],{"type":54,"value":1947},"--groups \u003Ca,b,...>",{"type":54,"value":1949}," (case-sensitive identifier list) or ",{"type":48,"tag":73,"props":1951,"children":1953},{"className":1952},[],[1954],{"type":54,"value":1955},"--gpu-type \u003CX>",{"type":54,"value":1957}," (case-insensitive) to scope a generate to a subset of source groups in heterogeneous clusters. Mutually exclusive. Empty match is a validation error. Strict-subset filters split per-source rendering: NodePolicies emit one CR per source (each with its own machine-label nodeSelector but a shared bucket-level resourceName); IPPool\u002Fexample DaemonSet emit one CR per bucket with an ",{"type":48,"tag":73,"props":1959,"children":1961},{"className":1960},[],[1962],{"type":54,"value":1963},"In",{"type":54,"value":1965}," list of source machine labels.",{"type":48,"tag":57,"props":1967,"children":1968},{},[1969],{"type":48,"tag":61,"props":1970,"children":1971},{},[1972,1977,1979,1984,1985,1991],{"type":48,"tag":105,"props":1973,"children":1974},{},[1975],{"type":54,"value":1976},"!CAUTION",{"type":54,"value":1978},"\nGeneration does not apply anything to the cluster. Use ",{"type":48,"tag":73,"props":1980,"children":1982},{"className":1981},[],[1983],{"type":54,"value":1709},{"type":54,"value":1903},{"type":48,"tag":73,"props":1986,"children":1988},{"className":1987},[],[1989],{"type":54,"value":1990},"k8s-launch-kit-deploy",{"type":54,"value":1992}," to apply.",{"type":48,"tag":87,"props":1994,"children":1996},{"id":1995},"see-also",[1997],{"type":54,"value":1998},"See Also",{"type":48,"tag":1367,"props":2000,"children":2001},{},[2002,2012,2023,2033],{"type":48,"tag":1371,"props":2003,"children":2004},{},[2005,2010],{"type":48,"tag":2006,"props":2007,"children":2008},"a",{"href":78},[2009],{"type":54,"value":43},{"type":54,"value":2011}," — Global flags and output modes",{"type":48,"tag":1371,"props":2013,"children":2014},{},[2015,2021],{"type":48,"tag":2006,"props":2016,"children":2018},{"href":2017},"..\u002Fk8s-launch-kit-discover\u002FSKILL.md",[2019],{"type":54,"value":2020},"k8s-launch-kit-discover",{"type":54,"value":2022}," — Produce the cluster config needed for generation",{"type":48,"tag":1371,"props":2024,"children":2025},{},[2026,2031],{"type":48,"tag":2006,"props":2027,"children":2029},{"href":2028},"..\u002Fk8s-launch-kit-deploy\u002FSKILL.md",[2030],{"type":54,"value":1990},{"type":54,"value":2032}," — Apply generated manifests",{"type":48,"tag":1371,"props":2034,"children":2035},{},[2036,2042],{"type":48,"tag":2006,"props":2037,"children":2039},{"href":2038},"..\u002Fk8s-launch-kit-dryrun\u002FSKILL.md",[2040],{"type":54,"value":2041},"k8s-launch-kit-dryrun",{"type":54,"value":2043}," — Preview before applying",{"type":48,"tag":2045,"props":2046,"children":2047},"style",{},[2048],{"type":54,"value":2049},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2051,"total":942},[2052,2065,2075,2090,2101,2109,2123],{"slug":2053,"name":2053,"fn":2054,"description":2055,"org":2056,"tags":2057,"stars":26,"repoUrl":27,"updatedAt":2064},"k8s-launch-kit-config","configure k8s-launch-kit clusters","Use this skill when the user needs help understanding, creating, or editing a k8s-launch-kit (l8k) configuration file (l8k-config.yaml or cluster-config.yaml). Activate for: config file questions, parameter tuning, subnet configuration, NV-IPAM setup, DOCA driver settings, maintenance concurrency, NIC configuration operator settings, changing MTU, VFs, resource names, or understanding what any config field does.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2058,2061,2062,2063],{"name":2059,"slug":2060,"type":15},"Configuration","configuration",{"name":20,"slug":21,"type":15},{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:29:15.229216",{"slug":1990,"name":1990,"fn":2066,"description":2067,"org":2068,"tags":2069,"stars":26,"repoUrl":27,"updatedAt":2074},"deploy NVIDIA networking manifests to Kubernetes","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.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2070,2071,2072,2073],{"name":20,"slug":21,"type":15},{"name":24,"slug":25,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:31:50.114923",{"slug":2020,"name":2020,"fn":2076,"description":2077,"org":2078,"tags":2079,"stars":26,"repoUrl":27,"updatedAt":2089},"discover Kubernetes cluster network hardware capabilities","Use this skill when the user wants to discover their Kubernetes cluster's network hardware capabilities using k8s-launch-kit (l8k). Activate for: cluster discovery, hardware detection, NIC detection, finding what GPUs or NICs are in a cluster, creating a cluster config file, or when the user says 'discover' in the context of l8k or NVIDIA networking.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2080,2083,2084,2085,2086],{"name":2081,"slug":2082,"type":15},"Hardware","hardware",{"name":24,"slug":25,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":2087,"slug":2088,"type":15},"Operations","operations","2026-07-14T05:31:58.825512",{"slug":2041,"name":2041,"fn":2091,"description":2092,"org":2093,"tags":2094,"stars":26,"repoUrl":27,"updatedAt":2100},"preview NVIDIA networking deployment changes","Use this skill when the user wants to preview what k8s-launch-kit (l8k) would deploy without making changes, or wants to safely validate their configuration before applying. Activate for: dry-run, preview, validation, 'what would happen if', testing configurations, schema discovery, checking generated manifests, or any cautious pre-deployment step. Also use when the user asks 'is my config valid' or 'show me what would be created' -- even without mentioning dry-run explicitly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2095,2096,2097,2098,2099],{"name":2059,"slug":2060,"type":15},{"name":20,"slug":21,"type":15},{"name":24,"slug":25,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:31:56.325698",{"slug":4,"name":4,"fn":5,"description":6,"org":2102,"tags":2103,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2104,2105,2106,2107,2108],{"name":20,"slug":21,"type":15},{"name":24,"slug":25,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":17,"slug":18,"type":15},{"slug":2110,"name":2110,"fn":2111,"description":2112,"org":2113,"tags":2114,"stars":26,"repoUrl":27,"updatedAt":2122},"k8s-launch-kit-pipeline","run end-to-end NVIDIA networking deployment pipelines","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\u002FCD integration, automation pipelines, 'one-liner', 'complete workflow', or end-to-end NVIDIA networking deployment.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2115,2118,2119,2120,2121],{"name":2116,"slug":2117,"type":15},"Automation","automation",{"name":20,"slug":21,"type":15},{"name":24,"slug":25,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:31:55.07782",{"slug":43,"name":43,"fn":2124,"description":2125,"org":2126,"tags":2127,"stars":26,"repoUrl":27,"updatedAt":2136},"manage NVIDIA k8s-launch-kit CLI patterns","k8s-launch-kit (l8k) CLI: Shared patterns for binary location, global flags, output formatting, exit codes, and error handling. Read this before using any other k8s-launch-kit skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2128,2131,2134,2135],{"name":2129,"slug":2130,"type":15},"CLI","cli",{"name":2132,"slug":2133,"type":15},"Engineering","engineering",{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},"2026-07-14T05:32:01.309487",{"items":2138,"total":2293},[2139,2157,2173,2184,2196,2210,2223,2237,2250,2261,2275,2284],{"slug":2140,"name":2140,"fn":2141,"description":2142,"org":2143,"tags":2144,"stars":2154,"repoUrl":2155,"updatedAt":2156},"nemoclaw-user-guide","retrieve NemoClaw documentation and configuration","Guides human users' AI agents to the NemoClaw docs MCP server and canonical Fern documentation in Markdown form. Use when users ask how to install, configure, operate, troubleshoot, secure, or learn NemoClaw with an AI coding assistant. Trigger keywords - nemoclaw docs, use nemoclaw with ai agent, nemoclaw mcp docs, nemoclaw install help, nemoclaw quickstart, nemoclaw markdown docs, llms.txt, agent skills.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2145,2148,2151],{"name":2146,"slug":2147,"type":15},"Documentation","documentation",{"name":2149,"slug":2150,"type":15},"MCP","mcp",{"name":2152,"slug":2153,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2158,"name":2158,"fn":2159,"description":2160,"org":2161,"tags":2162,"stars":2170,"repoUrl":2171,"updatedAt":2172},"mcore-build-and-dependency","manage Megatron-LM development environments","Container-based dev environment setup and dependency management for Megatron-LM. Covers acquiring and launching the CI container, uv package management, and updating uv.lock.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2163,2166,2167],{"name":2164,"slug":2165,"type":15},"Containers","containers",{"name":20,"slug":21,"type":15},{"name":2168,"slug":2169,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2174,"name":2174,"fn":2175,"description":2176,"org":2177,"tags":2178,"stars":2170,"repoUrl":2171,"updatedAt":2183},"mcore-bump-base-image","update NVIDIA PyTorch base images","Bump the NVIDIA PyTorch base image (`nvcr.io\u002Fnvidia\u002Fpytorch:YY.MM-py3`) used by Megatron-LM CI. Covers the two pin sites (GitHub CI in `docker\u002F.ngc_version.dev` and GitLab CI in `.gitlab\u002Fstages\u002F01.build.yml`), the post-bump CI loop (re-run functional tests, refresh golden values, mark broken tests), and the gotchas that bit PRs",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2179,2182],{"name":2180,"slug":2181,"type":15},"CI\u002FCD","ci-cd",{"name":20,"slug":21,"type":15},"2026-07-14T05:25:59.97109",{"slug":2185,"name":2185,"fn":2186,"description":2187,"org":2188,"tags":2189,"stars":2170,"repoUrl":2171,"updatedAt":2195},"mcore-cicd","manage CI\u002FCD pipelines for Megatron-LM","CI\u002FCD reference for Megatron-LM. Covers CI pipeline structure, PR scope labels, triggering internal GitLab CI (which force-pushes the current branch to a pull-request\u002FBRANCH ref — always dry-run and verify the destination first; never run against shared or protected branches), and CI failure investigation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2190,2191,2192],{"name":2180,"slug":2181,"type":15},{"name":20,"slug":21,"type":15},{"name":2193,"slug":2194,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2197,"name":2197,"fn":2198,"description":2199,"org":2200,"tags":2201,"stars":2170,"repoUrl":2171,"updatedAt":2209},"mcore-create-issue","investigate CI failures and create issues","Investigate a failing GitHub Actions run or job and create a GitHub issue for the failure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2202,2205,2206],{"name":2203,"slug":2204,"type":15},"Debugging","debugging",{"name":2193,"slug":2194,"type":15},{"name":2207,"slug":2208,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2211,"name":2211,"fn":2212,"description":2213,"org":2214,"tags":2215,"stars":2170,"repoUrl":2171,"updatedAt":2222},"mcore-linting-and-formatting","lint and format Megatron-LM code","Linting and formatting for Megatron-LM. Covers running autoformat.sh, tools (ruff, black, isort, pylint, mypy), and code style rules.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2216,2219],{"name":2217,"slug":2218,"type":15},"Best Practices","best-practices",{"name":2220,"slug":2221,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2224,"name":2224,"fn":2225,"description":2226,"org":2227,"tags":2228,"stars":2170,"repoUrl":2171,"updatedAt":2236},"mcore-migrate-gpt-to-hybrid","migrate Megatron-LM models to HybridModel","Migration guide for moving Megatron Core GPTModel checkpoints, model providers, training commands, and layer mappings to HybridModel.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2229,2232,2235],{"name":2230,"slug":2231,"type":15},"Machine Learning","machine-learning",{"name":2233,"slug":2234,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2238,"name":2238,"fn":2239,"description":2240,"org":2241,"tags":2242,"stars":2170,"repoUrl":2171,"updatedAt":2249},"mcore-onboard-gb200-1node-tests","onboard functional tests for GB200","Onboard 1-node GitHub MR functional tests for GB200 from existing mr-scoped 2-node tests.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2243,2246],{"name":2244,"slug":2245,"type":15},"QA","qa",{"name":2247,"slug":2248,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":2251,"name":2251,"fn":2252,"description":2253,"org":2254,"tags":2255,"stars":2170,"repoUrl":2171,"updatedAt":2260},"mcore-run-on-slurm","launch distributed training jobs on SLURM","How to launch distributed Megatron-LM training jobs on a SLURM cluster. Covers a minimal sbatch skeleton, environment-variable setup for torch.distributed.run, CUDA_DEVICE_MAX_CONNECTIONS rules across hardware and parallelism modes, container conventions, monitoring, and per-rank failure diagnosis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2256,2257],{"name":20,"slug":21,"type":15},{"name":2258,"slug":2259,"type":15},"Infrastructure","infrastructure","2026-07-14T05:25:49.362534",{"slug":2262,"name":2262,"fn":2263,"description":2264,"org":2265,"tags":2266,"stars":2170,"repoUrl":2171,"updatedAt":2274},"mcore-split-pr","split pull requests to reduce review load","Split a PR into multiple PRs to reduce the number of required CODEOWNERS reviewer groups.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2267,2270,2271],{"name":2268,"slug":2269,"type":15},"Code Review","code-review",{"name":2193,"slug":2194,"type":15},{"name":2272,"slug":2273,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2276,"name":2276,"fn":2277,"description":2278,"org":2279,"tags":2280,"stars":2170,"repoUrl":2171,"updatedAt":2283},"mcore-testing","run and manage Megatron-LM tests","Test system for Megatron-LM. Covers test layout, recipe YAML structure, adding and running unit and functional tests, golden values, marker filters, and CI parity.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2281,2282],{"name":2244,"slug":2245,"type":15},{"name":2247,"slug":2248,"type":15},"2026-07-14T05:25:54.928983",{"slug":2285,"name":2285,"fn":2286,"description":2287,"org":2288,"tags":2289,"stars":2170,"repoUrl":2171,"updatedAt":2292},"nightly-sync","manage nightly main-to-dev sync workflows","Domain knowledge for the nightly main-to-dev sync workflow. Covers merge strategy, CI architecture, failure investigation, and known issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2290,2291],{"name":2116,"slug":2117,"type":15},{"name":2180,"slug":2181,"type":15},"2026-07-30T05:29:03.275638",496]