[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-nvidia-nvcf-self-managed-prerequisite":3,"mdc-qr6k10-key":39,"related-repo-nvidia-nvcf-self-managed-prerequisite":2001,"related-org-nvidia-nvcf-self-managed-prerequisite":2033},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":34,"sourceUrl":37,"mdContent":38},"nvcf-self-managed-prerequisite","install NVCF self-managed prerequisites","Install the prerequisites the NVCA operator \u002F compute plane needs before nvcf-nvca-install can succeed: the operator tool nvcf-cli (required by the compute-plane stack's register-cluster step), KAI Scheduler (for the KAIScheduler feature gate), and the SMB CSI driver (for the sharedStorage Samba sidecar PVCs). The two cluster components are cloud-neutral helm installs at the NVCF-validated version pins; same install on AKS, EKS, GKE, k3d, or bare metal. Use when the user mentions NVCA prereqs, nvcf-cli, \"nvcf-cli not found\", ensure-nvcf-cli, register-cluster, KAI Scheduler, SMB CSI, csi-driver-smb, queue quotas, default-parent-queue, NVCA shared-storage PVCs stuck Pending, or asks how to prepare a cluster before installing the NVCA operator.",{"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,20],{"name":13,"slug":14,"type":15},"CLI","cli","tag",{"name":17,"slug":18,"type":15},"Deployment","deployment",{"name":9,"slug":8,"type":15},{"name":21,"slug":22,"type":15},"Infrastructure","infrastructure",176,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnvcf","2026-07-14T05:33:51.764422","Apache-2.0",23,[29,30,31,32,8,33],"cloud-functions","gpu","inference","kubernetes","serverless-gpu",{"repoUrl":24,"stars":23,"forks":27,"topics":35,"description":36},[29,30,31,32,8,33],"Platform for deploying and routing GPU-accelerated inference, streaming, and batch workloads at scale.","https:\u002F\u002Fgithub.com\u002FNVIDIA\u002Fnvcf\u002Ftree\u002FHEAD\u002Fai-tooling\u002Fuser\u002Fskills\u002Fnvcf-self-managed-prerequisite","---\nname: nvcf-self-managed-prerequisite\ndescription: >-\n  Install the prerequisites the NVCA operator \u002F compute plane needs before\n  nvcf-nvca-install can succeed: the operator tool nvcf-cli (required by the\n  compute-plane stack's register-cluster step), KAI Scheduler (for the\n  KAIScheduler feature gate), and the SMB CSI driver (for the sharedStorage\n  Samba sidecar PVCs). The two cluster components are cloud-neutral helm\n  installs at the NVCF-validated version pins; same install on AKS, EKS, GKE,\n  k3d, or bare metal. Use when the user mentions NVCA prereqs, nvcf-cli, \"nvcf-cli\n  not found\", ensure-nvcf-cli, register-cluster, KAI Scheduler, SMB CSI,\n  csi-driver-smb, queue quotas, default-parent-queue, NVCA shared-storage PVCs\n  stuck Pending, or asks how to prepare a cluster before installing the NVCA\n  operator.\nlicense: Apache-2.0\ncompatibility: Requires helm >= 3.12, \u003C 4 (Helm 4 not supported), kubectl matching cluster version.\nauthor: \"nvcf-core-eng \u003Cnvcf-core-eng@exchange.nvidia.com>\"\nversion: \"1.0.0\"\ntags: [nvcf, self-managed, self-hosted, kai-scheduler, smb-csi, csi-driver-smb, prereq, nvca-prereq, shared-storage]\ntools: [Shell, Read, Edit, Grep, Glob]\nmetadata:\n  internal: false\n  author: \"nvcf-core-eng \u003Cnvcf-core-eng@exchange.nvidia.com>\"\n  version: \"1.0\"\n  tags: [nvcf, self-managed, self-hosted, kai-scheduler, smb-csi, csi-driver-smb, prereq, nvca-prereq, shared-storage]\n  languages: [bash, yaml]\n  frameworks: [helm, kubectl]\n  domain: cloud-infrastructure\n---\n\n# NVCA prerequisites — KAI Scheduler + SMB CSI\n\nOne operator tool plus two cluster-level components the NVCA operator \u002F compute plane depends on. Satisfy all three before running `nvcf-nvca-install`.\n\n| Prereq | Why it is needed | Detail |\n| ------ | ------------------ | ------ |\n| `nvcf-cli` | The compute-plane stack's `make register-cluster` (and `install`\u002F`apply`\u002F`sync`, which abort without the registration values it writes) shells out to `nvcf-cli`. The shipped stack defaults to building it from a sibling `..\u002Fcli` checkout that the release does not include, so a green-field repo fails with `ensure-nvcf-cli` \u002F \"Registration values not found\". | See Step 0b below |\n| KAI Scheduler | `selfManaged.featureGateValues` includes `KAIScheduler`; NVCA polls `Queue` CRs and refuses to become healthy until their quotas are `-1` | [references\u002Fkai-scheduler.md](references\u002Fkai-scheduler.md) |\n| SMB CSI driver (`smb.csi.k8s.io`) | NVCA's `selfManaged.sharedStorage` runs Samba sidecar pods that export file shares; the resulting PVCs need this CSI driver to bind | [references\u002Fsmb-csi.md](references\u002Fsmb-csi.md) |\n\nThe KAI Scheduler and SMB CSI installs are cloud-neutral helm commands pinned to NVCF-validated versions. These are upstream third-party charts (not NVCF images), so they are not in `manifest.yaml`; the per-component reference docs carry the current pin and link the NVCF docs version table. `nvcf-cli` is an operator workstation tool, not an in-cluster install.\n\n## Prerequisites\n\n- A running Kubernetes cluster (any cloud — AKS, EKS, GKE, k3d, MicroK8s) with `kubectl` configured and admin access.\n- `helm` **>= 3.12 and \u003C 4**. **Helm 4 is NOT supported** (matches `nvcf-self-managed-stack\u002FREADME.md`). On Helm 4 the KAI install below hangs silently for many minutes — Helm 4 runs the chart's pre-install `crd-manager` hook through a `before-hook-creation` delete and then waits `--timeout` *per already-absent hook resource*, so the release sits in `pending-install` with no pods and never errors cleanly. Use Helm 3.x.\n- Cluster has CPU headroom on a general-purpose node pool for KAI's 7 pods.\n\n## Install\n\n### 0 — Preflight: verify Helm 3.x (fail fast on Helm 4)\n\nHelm 4 is not supported and causes a silent multi-minute hang on the KAI install below. Check the major version before installing anything:\n\n```bash\nhelm_major=\"$(helm version --template '{{.Version}}' | sed -E 's\u002F^v?([0-9]+).*\u002F\\1\u002F')\"\nif [ \"$helm_major\" != \"3\" ]; then\n  echo \"ERROR: Helm $helm_major detected; this prerequisite requires Helm 3.x (>= 3.12, \u003C 4).\" >&2\n  echo \"Helm 4 hangs on the KAI Scheduler chart's crd-manager hook. Install a 3.x release and retry.\" >&2\n  exit 1\nfi\n```\n\n### 0b — nvcf-cli (compute-plane registration tool)\n\nThe compute-plane stack (`nvcf-compute-plane-stack`) registers each GPU cluster with the control plane via `make register-cluster`, which shells out to `nvcf-cli` (`init` + `cluster register`) and writes `registration\u002F\u003Ccluster>-register-values.yaml`. The stack's `install`\u002F`apply`\u002F`sync` targets abort if that file is missing. By default the stack builds `nvcf-cli` from a sibling `..\u002Fcli` checkout (`NVCF_CLI_REPO ?= $(MAKEFILE_DIR)\u002F..\u002Fcli`) that is not bundled with the release, so a fresh checkout fails at `ensure-nvcf-cli`.\n\n`nvcf-cli` is a convenience wrapper: its only job in this flow is to produce `registration\u002F\u003Ccluster>-register-values.yaml` (the `clusterID` \u002F `selfManaged.clusterId`\u002F`clusterGroupId` schema the NVCA helmfile loads). There are two ways to satisfy this prerequisite.\n\nRegister without `nvcf-cli` (supported path for self-hosted deployments). Obtain the cluster registration data from the running control plane and hand-author `registration\u002F\u003Ccluster>-register-values.yaml` in the schema the NVCA helmfile expects, then run `make install CLUSTER_NAME=\u003Cname> HELMFILE_ENV=\u003Cenv>` directly (no `register-cluster`). The step-by-step procedure for gathering that data without the CLI is being published by the NVCF team; until it lands, use an `nvcf-cli` build if NVIDIA has provided you one.\n\nUse an `nvcf-cli` binary if you have one. Point the stack at the binary with an absolute path so it does not try to build the missing `..\u002Fcli`:\n\n```bash\ncd nvcf-compute-plane-stack\nmake register-cluster \\\n  CLUSTER_NAME=\u003Cname> NCA_ID=\u003Cnca> CLUSTER_REGION=\u003Cregion> \\\n  ICMS_URL=https:\u002F\u002Fsis.\u003Cyour-domain> \\\n  NVCF_CLI=\u002Fabs\u002Fpath\u002Fto\u002Fnvcf-cli\nmake install CLUSTER_NAME=\u003Cname> HELMFILE_ENV=\u003Cenv>\n```\n\n### 1 — KAI Scheduler\n\n```bash\ncat > nvca-values.yaml \u003C\u003C 'EOF'\nscheduler:\n  placementStrategy: binpack\n  plugins:\n    nodeplacement:\n      arguments:\n        gpu: binpack\n        cpu: spread\n  actions:\n    preempt:\n      enabled: false\n    consolidation:\n      enabled: false\n\ndefaultQueue:\n  createDefaultQueue: true\n  parentName: default-parent-queue\n  childName: default-queue\n  parentResources:\n    cpu:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\n    gpu:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\n    memory:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\n  childResources:\n    cpu:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\n    gpu:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\n    memory:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\nEOF\n\n\nhelm install kai-scheduler \\\n  oci:\u002F\u002Fghcr.io\u002Fkai-scheduler\u002Fkai-scheduler\u002Fkai-scheduler \\\n  -n kai-scheduler --create-namespace -f nvca-values.yaml \\\n  --version v0.14.0 \\\n  --wait --timeout 5m\n```\n\n### 2 — SMB CSI driver\n\n```bash\nhelm repo add csi-driver-smb \\\n  https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes-csi\u002Fcsi-driver-smb\u002Fmaster\u002Fcharts\nhelm repo update\nhelm install csi-driver-smb csi-driver-smb\u002Fcsi-driver-smb \\\n  -n kube-system \\\n  --version v1.17.0 \\\n  --wait --timeout 5m\n```\n\nAKS clusters can use the managed `csi-driver-smb` add-on instead — see [references\u002Fsmb-csi.md](references\u002Fsmb-csi.md).\n\n## Definition of done\n\n- Compute-plane registration is satisfiable: either you can produce `registration\u002F\u003Ccluster>-register-values.yaml` without the CLI, or an `nvcf-cli` binary is available (on `PATH` or via `NVCF_CLI=\u003Cabs-path>`).\n- `kubectl get pods -n kai-scheduler` shows 7 pods Running.\n- `kubectl get queues` shows both `default-parent-queue` and `default-queue` with `limit: -1, quota: -1` on cpu \u002F gpu \u002F memory.\n- `kubectl get csidriver smb.csi.k8s.io` returns the driver without error.\n\nAfter this, run `nvcf-nvca-install`.\n\n## Uninstall\n\n```bash\nhelm uninstall csi-driver-smb -n kube-system\nhelm uninstall kai-scheduler -n kai-scheduler\nkubectl delete namespace kai-scheduler\n```\n\n## References\n\n- [references\u002Fkai-scheduler.md](references\u002Fkai-scheduler.md) — KAI install detail, queue-quota theory, failure modes\n- [references\u002Fsmb-csi.md](references\u002Fsmb-csi.md) — SMB CSI install detail, AKS managed-add-on alternative, verification\n- Companion skill: `nvcf-self-managed-installation` — Section 7 covers enabling and validating the NVCA operator after these prerequisites are satisfied.\n",{"data":40,"body":71},{"name":4,"description":6,"license":26,"compatibility":41,"author":42,"version":43,"tags":44,"tools":54,"metadata":60},"Requires helm >= 3.12, \u003C 4 (Helm 4 not supported), kubectl matching cluster version.","nvcf-core-eng \u003Cnvcf-core-eng@exchange.nvidia.com>","1.0.0",[45,46,47,48,49,50,51,52,53],"nvcf","self-managed","self-hosted","kai-scheduler","smb-csi","csi-driver-smb","prereq","nvca-prereq","shared-storage",[55,56,57,58,59],"Shell","Read","Edit","Grep","Glob",{"internal":61,"author":42,"version":62,"tags":63,"languages":64,"frameworks":67,"domain":70},false,"1.0",[45,46,47,48,49,50,51,52,53],[65,66],"bash","yaml",[68,69],"helm","kubectl","cloud-infrastructure",{"type":72,"children":73},"root",[74,83,98,294,314,321,415,420,427,432,663,669,767,807,849,868,1077,1083,1608,1614,1742,1759,1765,1860,1871,1877,1955,1961,1995],{"type":75,"tag":76,"props":77,"children":79},"element","h1",{"id":78},"nvca-prerequisites-kai-scheduler-smb-csi",[80],{"type":81,"value":82},"text","NVCA prerequisites — KAI Scheduler + SMB CSI",{"type":75,"tag":84,"props":85,"children":86},"p",{},[87,89,96],{"type":81,"value":88},"One operator tool plus two cluster-level components the NVCA operator \u002F compute plane depends on. Satisfy all three before running ",{"type":75,"tag":90,"props":91,"children":93},"code",{"className":92},[],[94],{"type":81,"value":95},"nvcf-nvca-install",{"type":81,"value":97},".",{"type":75,"tag":99,"props":100,"children":101},"table",{},[102,126],{"type":75,"tag":103,"props":104,"children":105},"thead",{},[106],{"type":75,"tag":107,"props":108,"children":109},"tr",{},[110,116,121],{"type":75,"tag":111,"props":112,"children":113},"th",{},[114],{"type":81,"value":115},"Prereq",{"type":75,"tag":111,"props":117,"children":118},{},[119],{"type":81,"value":120},"Why it is needed",{"type":75,"tag":111,"props":122,"children":123},{},[124],{"type":81,"value":125},"Detail",{"type":75,"tag":127,"props":128,"children":129},"tbody",{},[130,207,257],{"type":75,"tag":107,"props":131,"children":132},{},[133,143,202],{"type":75,"tag":134,"props":135,"children":136},"td",{},[137],{"type":75,"tag":90,"props":138,"children":140},{"className":139},[],[141],{"type":81,"value":142},"nvcf-cli",{"type":75,"tag":134,"props":144,"children":145},{},[146,148,154,156,162,164,170,171,177,179,184,186,192,194,200],{"type":81,"value":147},"The compute-plane stack's ",{"type":75,"tag":90,"props":149,"children":151},{"className":150},[],[152],{"type":81,"value":153},"make register-cluster",{"type":81,"value":155}," (and ",{"type":75,"tag":90,"props":157,"children":159},{"className":158},[],[160],{"type":81,"value":161},"install",{"type":81,"value":163},"\u002F",{"type":75,"tag":90,"props":165,"children":167},{"className":166},[],[168],{"type":81,"value":169},"apply",{"type":81,"value":163},{"type":75,"tag":90,"props":172,"children":174},{"className":173},[],[175],{"type":81,"value":176},"sync",{"type":81,"value":178},", which abort without the registration values it writes) shells out to ",{"type":75,"tag":90,"props":180,"children":182},{"className":181},[],[183],{"type":81,"value":142},{"type":81,"value":185},". The shipped stack defaults to building it from a sibling ",{"type":75,"tag":90,"props":187,"children":189},{"className":188},[],[190],{"type":81,"value":191},"..\u002Fcli",{"type":81,"value":193}," checkout that the release does not include, so a green-field repo fails with ",{"type":75,"tag":90,"props":195,"children":197},{"className":196},[],[198],{"type":81,"value":199},"ensure-nvcf-cli",{"type":81,"value":201}," \u002F \"Registration values not found\".",{"type":75,"tag":134,"props":203,"children":204},{},[205],{"type":81,"value":206},"See Step 0b below",{"type":75,"tag":107,"props":208,"children":209},{},[210,215,248],{"type":75,"tag":134,"props":211,"children":212},{},[213],{"type":81,"value":214},"KAI Scheduler",{"type":75,"tag":134,"props":216,"children":217},{},[218,224,226,232,234,240,242],{"type":75,"tag":90,"props":219,"children":221},{"className":220},[],[222],{"type":81,"value":223},"selfManaged.featureGateValues",{"type":81,"value":225}," includes ",{"type":75,"tag":90,"props":227,"children":229},{"className":228},[],[230],{"type":81,"value":231},"KAIScheduler",{"type":81,"value":233},"; NVCA polls ",{"type":75,"tag":90,"props":235,"children":237},{"className":236},[],[238],{"type":81,"value":239},"Queue",{"type":81,"value":241}," CRs and refuses to become healthy until their quotas are ",{"type":75,"tag":90,"props":243,"children":245},{"className":244},[],[246],{"type":81,"value":247},"-1",{"type":75,"tag":134,"props":249,"children":250},{},[251],{"type":75,"tag":252,"props":253,"children":255},"a",{"href":254},"references\u002Fkai-scheduler.md",[256],{"type":81,"value":254},{"type":75,"tag":107,"props":258,"children":259},{},[260,273,286],{"type":75,"tag":134,"props":261,"children":262},{},[263,265,271],{"type":81,"value":264},"SMB CSI driver (",{"type":75,"tag":90,"props":266,"children":268},{"className":267},[],[269],{"type":81,"value":270},"smb.csi.k8s.io",{"type":81,"value":272},")",{"type":75,"tag":134,"props":274,"children":275},{},[276,278,284],{"type":81,"value":277},"NVCA's ",{"type":75,"tag":90,"props":279,"children":281},{"className":280},[],[282],{"type":81,"value":283},"selfManaged.sharedStorage",{"type":81,"value":285}," runs Samba sidecar pods that export file shares; the resulting PVCs need this CSI driver to bind",{"type":75,"tag":134,"props":287,"children":288},{},[289],{"type":75,"tag":252,"props":290,"children":292},{"href":291},"references\u002Fsmb-csi.md",[293],{"type":81,"value":291},{"type":75,"tag":84,"props":295,"children":296},{},[297,299,305,307,312],{"type":81,"value":298},"The KAI Scheduler and SMB CSI installs are cloud-neutral helm commands pinned to NVCF-validated versions. These are upstream third-party charts (not NVCF images), so they are not in ",{"type":75,"tag":90,"props":300,"children":302},{"className":301},[],[303],{"type":81,"value":304},"manifest.yaml",{"type":81,"value":306},"; the per-component reference docs carry the current pin and link the NVCF docs version table. ",{"type":75,"tag":90,"props":308,"children":310},{"className":309},[],[311],{"type":81,"value":142},{"type":81,"value":313}," is an operator workstation tool, not an in-cluster install.",{"type":75,"tag":315,"props":316,"children":318},"h2",{"id":317},"prerequisites",[319],{"type":81,"value":320},"Prerequisites",{"type":75,"tag":322,"props":323,"children":324},"ul",{},[325,338,410],{"type":75,"tag":326,"props":327,"children":328},"li",{},[329,331,336],{"type":81,"value":330},"A running Kubernetes cluster (any cloud — AKS, EKS, GKE, k3d, MicroK8s) with ",{"type":75,"tag":90,"props":332,"children":334},{"className":333},[],[335],{"type":81,"value":69},{"type":81,"value":337}," configured and admin access.",{"type":75,"tag":326,"props":339,"children":340},{},[341,346,348,354,356,361,363,369,371,377,379,385,387,393,394,400,402,408],{"type":75,"tag":90,"props":342,"children":344},{"className":343},[],[345],{"type":81,"value":68},{"type":81,"value":347}," ",{"type":75,"tag":349,"props":350,"children":351},"strong",{},[352],{"type":81,"value":353},">= 3.12 and \u003C 4",{"type":81,"value":355},". ",{"type":75,"tag":349,"props":357,"children":358},{},[359],{"type":81,"value":360},"Helm 4 is NOT supported",{"type":81,"value":362}," (matches ",{"type":75,"tag":90,"props":364,"children":366},{"className":365},[],[367],{"type":81,"value":368},"nvcf-self-managed-stack\u002FREADME.md",{"type":81,"value":370},"). On Helm 4 the KAI install below hangs silently for many minutes — Helm 4 runs the chart's pre-install ",{"type":75,"tag":90,"props":372,"children":374},{"className":373},[],[375],{"type":81,"value":376},"crd-manager",{"type":81,"value":378}," hook through a ",{"type":75,"tag":90,"props":380,"children":382},{"className":381},[],[383],{"type":81,"value":384},"before-hook-creation",{"type":81,"value":386}," delete and then waits ",{"type":75,"tag":90,"props":388,"children":390},{"className":389},[],[391],{"type":81,"value":392},"--timeout",{"type":81,"value":347},{"type":75,"tag":395,"props":396,"children":397},"em",{},[398],{"type":81,"value":399},"per already-absent hook resource",{"type":81,"value":401},", so the release sits in ",{"type":75,"tag":90,"props":403,"children":405},{"className":404},[],[406],{"type":81,"value":407},"pending-install",{"type":81,"value":409}," with no pods and never errors cleanly. Use Helm 3.x.",{"type":75,"tag":326,"props":411,"children":412},{},[413],{"type":81,"value":414},"Cluster has CPU headroom on a general-purpose node pool for KAI's 7 pods.",{"type":75,"tag":315,"props":416,"children":417},{"id":161},[418],{"type":81,"value":419},"Install",{"type":75,"tag":421,"props":422,"children":424},"h3",{"id":423},"_0-preflight-verify-helm-3x-fail-fast-on-helm-4",[425],{"type":81,"value":426},"0 — Preflight: verify Helm 3.x (fail fast on Helm 4)",{"type":75,"tag":84,"props":428,"children":429},{},[430],{"type":81,"value":431},"Helm 4 is not supported and causes a silent multi-minute hang on the KAI install below. Check the major version before installing anything:",{"type":75,"tag":433,"props":434,"children":438},"pre",{"className":435,"code":436,"language":65,"meta":437,"style":437},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","helm_major=\"$(helm version --template '{{.Version}}' | sed -E 's\u002F^v?([0-9]+).*\u002F\\1\u002F')\"\nif [ \"$helm_major\" != \"3\" ]; then\n  echo \"ERROR: Helm $helm_major detected; this prerequisite requires Helm 3.x (>= 3.12, \u003C 4).\" >&2\n  echo \"Helm 4 hangs on the KAI Scheduler chart's crd-manager hook. Install a 3.x release and retry.\" >&2\n  exit 1\nfi\n","",[439],{"type":75,"tag":90,"props":440,"children":441},{"__ignoreMap":437},[442,519,577,614,639,654],{"type":75,"tag":443,"props":444,"children":447},"span",{"class":445,"line":446},"line",1,[448,454,460,465,470,476,481,486,490,495,500,505,509,514],{"type":75,"tag":443,"props":449,"children":451},{"style":450},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[452],{"type":81,"value":453},"helm_major",{"type":75,"tag":443,"props":455,"children":457},{"style":456},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[458],{"type":81,"value":459},"=",{"type":75,"tag":443,"props":461,"children":462},{"style":456},[463],{"type":81,"value":464},"\"$(",{"type":75,"tag":443,"props":466,"children":468},{"style":467},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[469],{"type":81,"value":68},{"type":75,"tag":443,"props":471,"children":473},{"style":472},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[474],{"type":81,"value":475}," version --template ",{"type":75,"tag":443,"props":477,"children":478},{"style":456},[479],{"type":81,"value":480},"'",{"type":75,"tag":443,"props":482,"children":483},{"style":472},[484],{"type":81,"value":485},"{{.Version}}",{"type":75,"tag":443,"props":487,"children":488},{"style":456},[489],{"type":81,"value":480},{"type":75,"tag":443,"props":491,"children":492},{"style":456},[493],{"type":81,"value":494}," |",{"type":75,"tag":443,"props":496,"children":497},{"style":467},[498],{"type":81,"value":499}," sed",{"type":75,"tag":443,"props":501,"children":502},{"style":472},[503],{"type":81,"value":504}," -E ",{"type":75,"tag":443,"props":506,"children":507},{"style":456},[508],{"type":81,"value":480},{"type":75,"tag":443,"props":510,"children":511},{"style":472},[512],{"type":81,"value":513},"s\u002F^v?([0-9]+).*\u002F\\1\u002F",{"type":75,"tag":443,"props":515,"children":516},{"style":456},[517],{"type":81,"value":518},"')\"\n",{"type":75,"tag":443,"props":520,"children":522},{"class":445,"line":521},2,[523,529,534,539,544,549,554,558,563,567,572],{"type":75,"tag":443,"props":524,"children":526},{"style":525},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[527],{"type":81,"value":528},"if",{"type":75,"tag":443,"props":530,"children":531},{"style":456},[532],{"type":81,"value":533}," [",{"type":75,"tag":443,"props":535,"children":536},{"style":456},[537],{"type":81,"value":538}," \"",{"type":75,"tag":443,"props":540,"children":541},{"style":450},[542],{"type":81,"value":543},"$helm_major",{"type":75,"tag":443,"props":545,"children":546},{"style":456},[547],{"type":81,"value":548},"\"",{"type":75,"tag":443,"props":550,"children":551},{"style":456},[552],{"type":81,"value":553}," !=",{"type":75,"tag":443,"props":555,"children":556},{"style":456},[557],{"type":81,"value":538},{"type":75,"tag":443,"props":559,"children":560},{"style":472},[561],{"type":81,"value":562},"3",{"type":75,"tag":443,"props":564,"children":565},{"style":456},[566],{"type":81,"value":548},{"type":75,"tag":443,"props":568,"children":569},{"style":456},[570],{"type":81,"value":571}," ];",{"type":75,"tag":443,"props":573,"children":574},{"style":525},[575],{"type":81,"value":576}," then\n",{"type":75,"tag":443,"props":578,"children":580},{"class":445,"line":579},3,[581,587,591,596,600,605,609],{"type":75,"tag":443,"props":582,"children":584},{"style":583},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[585],{"type":81,"value":586},"  echo",{"type":75,"tag":443,"props":588,"children":589},{"style":456},[590],{"type":81,"value":538},{"type":75,"tag":443,"props":592,"children":593},{"style":472},[594],{"type":81,"value":595},"ERROR: Helm ",{"type":75,"tag":443,"props":597,"children":598},{"style":450},[599],{"type":81,"value":543},{"type":75,"tag":443,"props":601,"children":602},{"style":472},[603],{"type":81,"value":604}," detected; this prerequisite requires Helm 3.x (>= 3.12, \u003C 4).",{"type":75,"tag":443,"props":606,"children":607},{"style":456},[608],{"type":81,"value":548},{"type":75,"tag":443,"props":610,"children":611},{"style":456},[612],{"type":81,"value":613}," >&2\n",{"type":75,"tag":443,"props":615,"children":617},{"class":445,"line":616},4,[618,622,626,631,635],{"type":75,"tag":443,"props":619,"children":620},{"style":583},[621],{"type":81,"value":586},{"type":75,"tag":443,"props":623,"children":624},{"style":456},[625],{"type":81,"value":538},{"type":75,"tag":443,"props":627,"children":628},{"style":472},[629],{"type":81,"value":630},"Helm 4 hangs on the KAI Scheduler chart's crd-manager hook. Install a 3.x release and retry.",{"type":75,"tag":443,"props":632,"children":633},{"style":456},[634],{"type":81,"value":548},{"type":75,"tag":443,"props":636,"children":637},{"style":456},[638],{"type":81,"value":613},{"type":75,"tag":443,"props":640,"children":642},{"class":445,"line":641},5,[643,648],{"type":75,"tag":443,"props":644,"children":645},{"style":583},[646],{"type":81,"value":647},"  exit",{"type":75,"tag":443,"props":649,"children":651},{"style":650},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[652],{"type":81,"value":653}," 1\n",{"type":75,"tag":443,"props":655,"children":657},{"class":445,"line":656},6,[658],{"type":75,"tag":443,"props":659,"children":660},{"style":525},[661],{"type":81,"value":662},"fi\n",{"type":75,"tag":421,"props":664,"children":666},{"id":665},"_0b-nvcf-cli-compute-plane-registration-tool",[667],{"type":81,"value":668},"0b — nvcf-cli (compute-plane registration tool)",{"type":75,"tag":84,"props":670,"children":671},{},[672,674,680,682,687,689,694,696,702,704,710,712,718,720,725,726,731,732,737,739,744,746,751,753,759,761,766],{"type":81,"value":673},"The compute-plane stack (",{"type":75,"tag":90,"props":675,"children":677},{"className":676},[],[678],{"type":81,"value":679},"nvcf-compute-plane-stack",{"type":81,"value":681},") registers each GPU cluster with the control plane via ",{"type":75,"tag":90,"props":683,"children":685},{"className":684},[],[686],{"type":81,"value":153},{"type":81,"value":688},", which shells out to ",{"type":75,"tag":90,"props":690,"children":692},{"className":691},[],[693],{"type":81,"value":142},{"type":81,"value":695}," (",{"type":75,"tag":90,"props":697,"children":699},{"className":698},[],[700],{"type":81,"value":701},"init",{"type":81,"value":703}," + ",{"type":75,"tag":90,"props":705,"children":707},{"className":706},[],[708],{"type":81,"value":709},"cluster register",{"type":81,"value":711},") and writes ",{"type":75,"tag":90,"props":713,"children":715},{"className":714},[],[716],{"type":81,"value":717},"registration\u002F\u003Ccluster>-register-values.yaml",{"type":81,"value":719},". The stack's ",{"type":75,"tag":90,"props":721,"children":723},{"className":722},[],[724],{"type":81,"value":161},{"type":81,"value":163},{"type":75,"tag":90,"props":727,"children":729},{"className":728},[],[730],{"type":81,"value":169},{"type":81,"value":163},{"type":75,"tag":90,"props":733,"children":735},{"className":734},[],[736],{"type":81,"value":176},{"type":81,"value":738}," targets abort if that file is missing. By default the stack builds ",{"type":75,"tag":90,"props":740,"children":742},{"className":741},[],[743],{"type":81,"value":142},{"type":81,"value":745}," from a sibling ",{"type":75,"tag":90,"props":747,"children":749},{"className":748},[],[750],{"type":81,"value":191},{"type":81,"value":752}," checkout (",{"type":75,"tag":90,"props":754,"children":756},{"className":755},[],[757],{"type":81,"value":758},"NVCF_CLI_REPO ?= $(MAKEFILE_DIR)\u002F..\u002Fcli",{"type":81,"value":760},") that is not bundled with the release, so a fresh checkout fails at ",{"type":75,"tag":90,"props":762,"children":764},{"className":763},[],[765],{"type":81,"value":199},{"type":81,"value":97},{"type":75,"tag":84,"props":768,"children":769},{},[770,775,777,782,784,790,792,798,799,805],{"type":75,"tag":90,"props":771,"children":773},{"className":772},[],[774],{"type":81,"value":142},{"type":81,"value":776}," is a convenience wrapper: its only job in this flow is to produce ",{"type":75,"tag":90,"props":778,"children":780},{"className":779},[],[781],{"type":81,"value":717},{"type":81,"value":783}," (the ",{"type":75,"tag":90,"props":785,"children":787},{"className":786},[],[788],{"type":81,"value":789},"clusterID",{"type":81,"value":791}," \u002F ",{"type":75,"tag":90,"props":793,"children":795},{"className":794},[],[796],{"type":81,"value":797},"selfManaged.clusterId",{"type":81,"value":163},{"type":75,"tag":90,"props":800,"children":802},{"className":801},[],[803],{"type":81,"value":804},"clusterGroupId",{"type":81,"value":806}," schema the NVCA helmfile loads). There are two ways to satisfy this prerequisite.",{"type":75,"tag":84,"props":808,"children":809},{},[810,812,817,819,824,826,832,834,840,842,847],{"type":81,"value":811},"Register without ",{"type":75,"tag":90,"props":813,"children":815},{"className":814},[],[816],{"type":81,"value":142},{"type":81,"value":818}," (supported path for self-hosted deployments). Obtain the cluster registration data from the running control plane and hand-author ",{"type":75,"tag":90,"props":820,"children":822},{"className":821},[],[823],{"type":81,"value":717},{"type":81,"value":825}," in the schema the NVCA helmfile expects, then run ",{"type":75,"tag":90,"props":827,"children":829},{"className":828},[],[830],{"type":81,"value":831},"make install CLUSTER_NAME=\u003Cname> HELMFILE_ENV=\u003Cenv>",{"type":81,"value":833}," directly (no ",{"type":75,"tag":90,"props":835,"children":837},{"className":836},[],[838],{"type":81,"value":839},"register-cluster",{"type":81,"value":841},"). The step-by-step procedure for gathering that data without the CLI is being published by the NVCF team; until it lands, use an ",{"type":75,"tag":90,"props":843,"children":845},{"className":844},[],[846],{"type":81,"value":142},{"type":81,"value":848}," build if NVIDIA has provided you one.",{"type":75,"tag":84,"props":850,"children":851},{},[852,854,859,861,866],{"type":81,"value":853},"Use an ",{"type":75,"tag":90,"props":855,"children":857},{"className":856},[],[858],{"type":81,"value":142},{"type":81,"value":860}," binary if you have one. Point the stack at the binary with an absolute path so it does not try to build the missing ",{"type":75,"tag":90,"props":862,"children":864},{"className":863},[],[865],{"type":81,"value":191},{"type":81,"value":867},":",{"type":75,"tag":433,"props":869,"children":871},{"className":435,"code":870,"language":65,"meta":437,"style":437},"cd nvcf-compute-plane-stack\nmake register-cluster \\\n  CLUSTER_NAME=\u003Cname> NCA_ID=\u003Cnca> CLUSTER_REGION=\u003Cregion> \\\n  ICMS_URL=https:\u002F\u002Fsis.\u003Cyour-domain> \\\n  NVCF_CLI=\u002Fabs\u002Fpath\u002Fto\u002Fnvcf-cli\nmake install CLUSTER_NAME=\u003Cname> HELMFILE_ENV=\u003Cenv>\n",[872],{"type":75,"tag":90,"props":873,"children":874},{"__ignoreMap":437},[875,888,906,983,1012,1020],{"type":75,"tag":443,"props":876,"children":877},{"class":445,"line":446},[878,883],{"type":75,"tag":443,"props":879,"children":880},{"style":583},[881],{"type":81,"value":882},"cd",{"type":75,"tag":443,"props":884,"children":885},{"style":472},[886],{"type":81,"value":887}," nvcf-compute-plane-stack\n",{"type":75,"tag":443,"props":889,"children":890},{"class":445,"line":521},[891,896,901],{"type":75,"tag":443,"props":892,"children":893},{"style":467},[894],{"type":81,"value":895},"make",{"type":75,"tag":443,"props":897,"children":898},{"style":472},[899],{"type":81,"value":900}," register-cluster",{"type":75,"tag":443,"props":902,"children":903},{"style":450},[904],{"type":81,"value":905}," \\\n",{"type":75,"tag":443,"props":907,"children":908},{"class":445,"line":579},[909,914,919,924,929,934,939,943,948,952,956,961,965,970,975,979],{"type":75,"tag":443,"props":910,"children":911},{"style":472},[912],{"type":81,"value":913},"  CLUSTER_NAME=",{"type":75,"tag":443,"props":915,"children":916},{"style":456},[917],{"type":81,"value":918},"\u003C",{"type":75,"tag":443,"props":920,"children":921},{"style":472},[922],{"type":81,"value":923},"nam",{"type":75,"tag":443,"props":925,"children":926},{"style":450},[927],{"type":81,"value":928},"e",{"type":75,"tag":443,"props":930,"children":931},{"style":456},[932],{"type":81,"value":933},">",{"type":75,"tag":443,"props":935,"children":936},{"style":472},[937],{"type":81,"value":938}," NCA_ID=",{"type":75,"tag":443,"props":940,"children":941},{"style":456},[942],{"type":81,"value":918},{"type":75,"tag":443,"props":944,"children":945},{"style":472},[946],{"type":81,"value":947},"nc",{"type":75,"tag":443,"props":949,"children":950},{"style":450},[951],{"type":81,"value":252},{"type":75,"tag":443,"props":953,"children":954},{"style":456},[955],{"type":81,"value":933},{"type":75,"tag":443,"props":957,"children":958},{"style":472},[959],{"type":81,"value":960}," CLUSTER_REGION=",{"type":75,"tag":443,"props":962,"children":963},{"style":456},[964],{"type":81,"value":918},{"type":75,"tag":443,"props":966,"children":967},{"style":472},[968],{"type":81,"value":969},"regio",{"type":75,"tag":443,"props":971,"children":972},{"style":450},[973],{"type":81,"value":974},"n",{"type":75,"tag":443,"props":976,"children":977},{"style":456},[978],{"type":81,"value":933},{"type":75,"tag":443,"props":980,"children":981},{"style":450},[982],{"type":81,"value":905},{"type":75,"tag":443,"props":984,"children":985},{"class":445,"line":616},[986,991,995,1000,1004,1008],{"type":75,"tag":443,"props":987,"children":988},{"style":472},[989],{"type":81,"value":990},"  ICMS_URL=https:\u002F\u002Fsis.",{"type":75,"tag":443,"props":992,"children":993},{"style":456},[994],{"type":81,"value":918},{"type":75,"tag":443,"props":996,"children":997},{"style":472},[998],{"type":81,"value":999},"your-domai",{"type":75,"tag":443,"props":1001,"children":1002},{"style":450},[1003],{"type":81,"value":974},{"type":75,"tag":443,"props":1005,"children":1006},{"style":456},[1007],{"type":81,"value":933},{"type":75,"tag":443,"props":1009,"children":1010},{"style":450},[1011],{"type":81,"value":905},{"type":75,"tag":443,"props":1013,"children":1014},{"class":445,"line":641},[1015],{"type":75,"tag":443,"props":1016,"children":1017},{"style":472},[1018],{"type":81,"value":1019},"  NVCF_CLI=\u002Fabs\u002Fpath\u002Fto\u002Fnvcf-cli\n",{"type":75,"tag":443,"props":1021,"children":1022},{"class":445,"line":656},[1023,1027,1032,1037,1041,1045,1049,1053,1058,1062,1067,1072],{"type":75,"tag":443,"props":1024,"children":1025},{"style":467},[1026],{"type":81,"value":895},{"type":75,"tag":443,"props":1028,"children":1029},{"style":472},[1030],{"type":81,"value":1031}," install",{"type":75,"tag":443,"props":1033,"children":1034},{"style":472},[1035],{"type":81,"value":1036}," CLUSTER_NAME=",{"type":75,"tag":443,"props":1038,"children":1039},{"style":456},[1040],{"type":81,"value":918},{"type":75,"tag":443,"props":1042,"children":1043},{"style":472},[1044],{"type":81,"value":923},{"type":75,"tag":443,"props":1046,"children":1047},{"style":450},[1048],{"type":81,"value":928},{"type":75,"tag":443,"props":1050,"children":1051},{"style":456},[1052],{"type":81,"value":933},{"type":75,"tag":443,"props":1054,"children":1055},{"style":472},[1056],{"type":81,"value":1057}," HELMFILE_ENV=",{"type":75,"tag":443,"props":1059,"children":1060},{"style":456},[1061],{"type":81,"value":918},{"type":75,"tag":443,"props":1063,"children":1064},{"style":472},[1065],{"type":81,"value":1066},"en",{"type":75,"tag":443,"props":1068,"children":1069},{"style":450},[1070],{"type":81,"value":1071},"v",{"type":75,"tag":443,"props":1073,"children":1074},{"style":456},[1075],{"type":81,"value":1076},">\n",{"type":75,"tag":421,"props":1078,"children":1080},{"id":1079},"_1-kai-scheduler",[1081],{"type":81,"value":1082},"1 — KAI Scheduler",{"type":75,"tag":433,"props":1084,"children":1086},{"className":435,"code":1085,"language":65,"meta":437,"style":437},"cat > nvca-values.yaml \u003C\u003C 'EOF'\nscheduler:\n  placementStrategy: binpack\n  plugins:\n    nodeplacement:\n      arguments:\n        gpu: binpack\n        cpu: spread\n  actions:\n    preempt:\n      enabled: false\n    consolidation:\n      enabled: false\n\ndefaultQueue:\n  createDefaultQueue: true\n  parentName: default-parent-queue\n  childName: default-queue\n  parentResources:\n    cpu:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\n    gpu:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\n    memory:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\n  childResources:\n    cpu:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\n    gpu:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\n    memory:\n      quota: -1\n      limit: -1\n      overQuotaWeight: 1\nEOF\n\n\nhelm install kai-scheduler \\\n  oci:\u002F\u002Fghcr.io\u002Fkai-scheduler\u002Fkai-scheduler\u002Fkai-scheduler \\\n  -n kai-scheduler --create-namespace -f nvca-values.yaml \\\n  --version v0.14.0 \\\n  --wait --timeout 5m\n",[1087],{"type":75,"tag":90,"props":1088,"children":1089},{"__ignoreMap":437},[1090,1118,1126,1134,1142,1150,1158,1167,1176,1185,1194,1203,1212,1220,1230,1239,1248,1257,1266,1275,1284,1293,1302,1310,1319,1327,1335,1343,1352,1360,1368,1376,1385,1393,1401,1409,1417,1425,1433,1441,1449,1457,1465,1473,1481,1490,1498,1506,1527,1540,1571,1589],{"type":75,"tag":443,"props":1091,"children":1092},{"class":445,"line":446},[1093,1098,1103,1108,1113],{"type":75,"tag":443,"props":1094,"children":1095},{"style":467},[1096],{"type":81,"value":1097},"cat",{"type":75,"tag":443,"props":1099,"children":1100},{"style":456},[1101],{"type":81,"value":1102}," >",{"type":75,"tag":443,"props":1104,"children":1105},{"style":472},[1106],{"type":81,"value":1107}," nvca-values.yaml",{"type":75,"tag":443,"props":1109,"children":1110},{"style":456},[1111],{"type":81,"value":1112}," \u003C\u003C",{"type":75,"tag":443,"props":1114,"children":1115},{"style":456},[1116],{"type":81,"value":1117}," 'EOF'\n",{"type":75,"tag":443,"props":1119,"children":1120},{"class":445,"line":521},[1121],{"type":75,"tag":443,"props":1122,"children":1123},{"style":472},[1124],{"type":81,"value":1125},"scheduler:\n",{"type":75,"tag":443,"props":1127,"children":1128},{"class":445,"line":579},[1129],{"type":75,"tag":443,"props":1130,"children":1131},{"style":472},[1132],{"type":81,"value":1133},"  placementStrategy: binpack\n",{"type":75,"tag":443,"props":1135,"children":1136},{"class":445,"line":616},[1137],{"type":75,"tag":443,"props":1138,"children":1139},{"style":472},[1140],{"type":81,"value":1141},"  plugins:\n",{"type":75,"tag":443,"props":1143,"children":1144},{"class":445,"line":641},[1145],{"type":75,"tag":443,"props":1146,"children":1147},{"style":472},[1148],{"type":81,"value":1149},"    nodeplacement:\n",{"type":75,"tag":443,"props":1151,"children":1152},{"class":445,"line":656},[1153],{"type":75,"tag":443,"props":1154,"children":1155},{"style":472},[1156],{"type":81,"value":1157},"      arguments:\n",{"type":75,"tag":443,"props":1159,"children":1161},{"class":445,"line":1160},7,[1162],{"type":75,"tag":443,"props":1163,"children":1164},{"style":472},[1165],{"type":81,"value":1166},"        gpu: binpack\n",{"type":75,"tag":443,"props":1168,"children":1170},{"class":445,"line":1169},8,[1171],{"type":75,"tag":443,"props":1172,"children":1173},{"style":472},[1174],{"type":81,"value":1175},"        cpu: spread\n",{"type":75,"tag":443,"props":1177,"children":1179},{"class":445,"line":1178},9,[1180],{"type":75,"tag":443,"props":1181,"children":1182},{"style":472},[1183],{"type":81,"value":1184},"  actions:\n",{"type":75,"tag":443,"props":1186,"children":1188},{"class":445,"line":1187},10,[1189],{"type":75,"tag":443,"props":1190,"children":1191},{"style":472},[1192],{"type":81,"value":1193},"    preempt:\n",{"type":75,"tag":443,"props":1195,"children":1197},{"class":445,"line":1196},11,[1198],{"type":75,"tag":443,"props":1199,"children":1200},{"style":472},[1201],{"type":81,"value":1202},"      enabled: false\n",{"type":75,"tag":443,"props":1204,"children":1206},{"class":445,"line":1205},12,[1207],{"type":75,"tag":443,"props":1208,"children":1209},{"style":472},[1210],{"type":81,"value":1211},"    consolidation:\n",{"type":75,"tag":443,"props":1213,"children":1215},{"class":445,"line":1214},13,[1216],{"type":75,"tag":443,"props":1217,"children":1218},{"style":472},[1219],{"type":81,"value":1202},{"type":75,"tag":443,"props":1221,"children":1223},{"class":445,"line":1222},14,[1224],{"type":75,"tag":443,"props":1225,"children":1227},{"emptyLinePlaceholder":1226},true,[1228],{"type":81,"value":1229},"\n",{"type":75,"tag":443,"props":1231,"children":1233},{"class":445,"line":1232},15,[1234],{"type":75,"tag":443,"props":1235,"children":1236},{"style":472},[1237],{"type":81,"value":1238},"defaultQueue:\n",{"type":75,"tag":443,"props":1240,"children":1242},{"class":445,"line":1241},16,[1243],{"type":75,"tag":443,"props":1244,"children":1245},{"style":472},[1246],{"type":81,"value":1247},"  createDefaultQueue: true\n",{"type":75,"tag":443,"props":1249,"children":1251},{"class":445,"line":1250},17,[1252],{"type":75,"tag":443,"props":1253,"children":1254},{"style":472},[1255],{"type":81,"value":1256},"  parentName: default-parent-queue\n",{"type":75,"tag":443,"props":1258,"children":1260},{"class":445,"line":1259},18,[1261],{"type":75,"tag":443,"props":1262,"children":1263},{"style":472},[1264],{"type":81,"value":1265},"  childName: default-queue\n",{"type":75,"tag":443,"props":1267,"children":1269},{"class":445,"line":1268},19,[1270],{"type":75,"tag":443,"props":1271,"children":1272},{"style":472},[1273],{"type":81,"value":1274},"  parentResources:\n",{"type":75,"tag":443,"props":1276,"children":1278},{"class":445,"line":1277},20,[1279],{"type":75,"tag":443,"props":1280,"children":1281},{"style":472},[1282],{"type":81,"value":1283},"    cpu:\n",{"type":75,"tag":443,"props":1285,"children":1287},{"class":445,"line":1286},21,[1288],{"type":75,"tag":443,"props":1289,"children":1290},{"style":472},[1291],{"type":81,"value":1292},"      quota: -1\n",{"type":75,"tag":443,"props":1294,"children":1296},{"class":445,"line":1295},22,[1297],{"type":75,"tag":443,"props":1298,"children":1299},{"style":472},[1300],{"type":81,"value":1301},"      limit: -1\n",{"type":75,"tag":443,"props":1303,"children":1304},{"class":445,"line":27},[1305],{"type":75,"tag":443,"props":1306,"children":1307},{"style":472},[1308],{"type":81,"value":1309},"      overQuotaWeight: 1\n",{"type":75,"tag":443,"props":1311,"children":1313},{"class":445,"line":1312},24,[1314],{"type":75,"tag":443,"props":1315,"children":1316},{"style":472},[1317],{"type":81,"value":1318},"    gpu:\n",{"type":75,"tag":443,"props":1320,"children":1322},{"class":445,"line":1321},25,[1323],{"type":75,"tag":443,"props":1324,"children":1325},{"style":472},[1326],{"type":81,"value":1292},{"type":75,"tag":443,"props":1328,"children":1330},{"class":445,"line":1329},26,[1331],{"type":75,"tag":443,"props":1332,"children":1333},{"style":472},[1334],{"type":81,"value":1301},{"type":75,"tag":443,"props":1336,"children":1338},{"class":445,"line":1337},27,[1339],{"type":75,"tag":443,"props":1340,"children":1341},{"style":472},[1342],{"type":81,"value":1309},{"type":75,"tag":443,"props":1344,"children":1346},{"class":445,"line":1345},28,[1347],{"type":75,"tag":443,"props":1348,"children":1349},{"style":472},[1350],{"type":81,"value":1351},"    memory:\n",{"type":75,"tag":443,"props":1353,"children":1355},{"class":445,"line":1354},29,[1356],{"type":75,"tag":443,"props":1357,"children":1358},{"style":472},[1359],{"type":81,"value":1292},{"type":75,"tag":443,"props":1361,"children":1363},{"class":445,"line":1362},30,[1364],{"type":75,"tag":443,"props":1365,"children":1366},{"style":472},[1367],{"type":81,"value":1301},{"type":75,"tag":443,"props":1369,"children":1371},{"class":445,"line":1370},31,[1372],{"type":75,"tag":443,"props":1373,"children":1374},{"style":472},[1375],{"type":81,"value":1309},{"type":75,"tag":443,"props":1377,"children":1379},{"class":445,"line":1378},32,[1380],{"type":75,"tag":443,"props":1381,"children":1382},{"style":472},[1383],{"type":81,"value":1384},"  childResources:\n",{"type":75,"tag":443,"props":1386,"children":1388},{"class":445,"line":1387},33,[1389],{"type":75,"tag":443,"props":1390,"children":1391},{"style":472},[1392],{"type":81,"value":1283},{"type":75,"tag":443,"props":1394,"children":1396},{"class":445,"line":1395},34,[1397],{"type":75,"tag":443,"props":1398,"children":1399},{"style":472},[1400],{"type":81,"value":1292},{"type":75,"tag":443,"props":1402,"children":1404},{"class":445,"line":1403},35,[1405],{"type":75,"tag":443,"props":1406,"children":1407},{"style":472},[1408],{"type":81,"value":1301},{"type":75,"tag":443,"props":1410,"children":1412},{"class":445,"line":1411},36,[1413],{"type":75,"tag":443,"props":1414,"children":1415},{"style":472},[1416],{"type":81,"value":1309},{"type":75,"tag":443,"props":1418,"children":1420},{"class":445,"line":1419},37,[1421],{"type":75,"tag":443,"props":1422,"children":1423},{"style":472},[1424],{"type":81,"value":1318},{"type":75,"tag":443,"props":1426,"children":1428},{"class":445,"line":1427},38,[1429],{"type":75,"tag":443,"props":1430,"children":1431},{"style":472},[1432],{"type":81,"value":1292},{"type":75,"tag":443,"props":1434,"children":1436},{"class":445,"line":1435},39,[1437],{"type":75,"tag":443,"props":1438,"children":1439},{"style":472},[1440],{"type":81,"value":1301},{"type":75,"tag":443,"props":1442,"children":1444},{"class":445,"line":1443},40,[1445],{"type":75,"tag":443,"props":1446,"children":1447},{"style":472},[1448],{"type":81,"value":1309},{"type":75,"tag":443,"props":1450,"children":1452},{"class":445,"line":1451},41,[1453],{"type":75,"tag":443,"props":1454,"children":1455},{"style":472},[1456],{"type":81,"value":1351},{"type":75,"tag":443,"props":1458,"children":1460},{"class":445,"line":1459},42,[1461],{"type":75,"tag":443,"props":1462,"children":1463},{"style":472},[1464],{"type":81,"value":1292},{"type":75,"tag":443,"props":1466,"children":1468},{"class":445,"line":1467},43,[1469],{"type":75,"tag":443,"props":1470,"children":1471},{"style":472},[1472],{"type":81,"value":1301},{"type":75,"tag":443,"props":1474,"children":1476},{"class":445,"line":1475},44,[1477],{"type":75,"tag":443,"props":1478,"children":1479},{"style":472},[1480],{"type":81,"value":1309},{"type":75,"tag":443,"props":1482,"children":1484},{"class":445,"line":1483},45,[1485],{"type":75,"tag":443,"props":1486,"children":1487},{"style":456},[1488],{"type":81,"value":1489},"EOF\n",{"type":75,"tag":443,"props":1491,"children":1493},{"class":445,"line":1492},46,[1494],{"type":75,"tag":443,"props":1495,"children":1496},{"emptyLinePlaceholder":1226},[1497],{"type":81,"value":1229},{"type":75,"tag":443,"props":1499,"children":1501},{"class":445,"line":1500},47,[1502],{"type":75,"tag":443,"props":1503,"children":1504},{"emptyLinePlaceholder":1226},[1505],{"type":81,"value":1229},{"type":75,"tag":443,"props":1507,"children":1509},{"class":445,"line":1508},48,[1510,1514,1518,1523],{"type":75,"tag":443,"props":1511,"children":1512},{"style":467},[1513],{"type":81,"value":68},{"type":75,"tag":443,"props":1515,"children":1516},{"style":472},[1517],{"type":81,"value":1031},{"type":75,"tag":443,"props":1519,"children":1520},{"style":472},[1521],{"type":81,"value":1522}," kai-scheduler",{"type":75,"tag":443,"props":1524,"children":1525},{"style":450},[1526],{"type":81,"value":905},{"type":75,"tag":443,"props":1528,"children":1530},{"class":445,"line":1529},49,[1531,1536],{"type":75,"tag":443,"props":1532,"children":1533},{"style":472},[1534],{"type":81,"value":1535},"  oci:\u002F\u002Fghcr.io\u002Fkai-scheduler\u002Fkai-scheduler\u002Fkai-scheduler",{"type":75,"tag":443,"props":1537,"children":1538},{"style":450},[1539],{"type":81,"value":905},{"type":75,"tag":443,"props":1541,"children":1543},{"class":445,"line":1542},50,[1544,1549,1553,1558,1563,1567],{"type":75,"tag":443,"props":1545,"children":1546},{"style":472},[1547],{"type":81,"value":1548},"  -n",{"type":75,"tag":443,"props":1550,"children":1551},{"style":472},[1552],{"type":81,"value":1522},{"type":75,"tag":443,"props":1554,"children":1555},{"style":472},[1556],{"type":81,"value":1557}," --create-namespace",{"type":75,"tag":443,"props":1559,"children":1560},{"style":472},[1561],{"type":81,"value":1562}," -f",{"type":75,"tag":443,"props":1564,"children":1565},{"style":472},[1566],{"type":81,"value":1107},{"type":75,"tag":443,"props":1568,"children":1569},{"style":450},[1570],{"type":81,"value":905},{"type":75,"tag":443,"props":1572,"children":1574},{"class":445,"line":1573},51,[1575,1580,1585],{"type":75,"tag":443,"props":1576,"children":1577},{"style":472},[1578],{"type":81,"value":1579},"  --version",{"type":75,"tag":443,"props":1581,"children":1582},{"style":472},[1583],{"type":81,"value":1584}," v0.14.0",{"type":75,"tag":443,"props":1586,"children":1587},{"style":450},[1588],{"type":81,"value":905},{"type":75,"tag":443,"props":1590,"children":1592},{"class":445,"line":1591},52,[1593,1598,1603],{"type":75,"tag":443,"props":1594,"children":1595},{"style":472},[1596],{"type":81,"value":1597},"  --wait",{"type":75,"tag":443,"props":1599,"children":1600},{"style":472},[1601],{"type":81,"value":1602}," --timeout",{"type":75,"tag":443,"props":1604,"children":1605},{"style":472},[1606],{"type":81,"value":1607}," 5m\n",{"type":75,"tag":421,"props":1609,"children":1611},{"id":1610},"_2-smb-csi-driver",[1612],{"type":81,"value":1613},"2 — SMB CSI driver",{"type":75,"tag":433,"props":1615,"children":1617},{"className":435,"code":1616,"language":65,"meta":437,"style":437},"helm repo add csi-driver-smb \\\n  https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes-csi\u002Fcsi-driver-smb\u002Fmaster\u002Fcharts\nhelm repo update\nhelm install csi-driver-smb csi-driver-smb\u002Fcsi-driver-smb \\\n  -n kube-system \\\n  --version v1.17.0 \\\n  --wait --timeout 5m\n",[1618],{"type":75,"tag":90,"props":1619,"children":1620},{"__ignoreMap":437},[1621,1647,1655,1671,1695,1711,1727],{"type":75,"tag":443,"props":1622,"children":1623},{"class":445,"line":446},[1624,1628,1633,1638,1643],{"type":75,"tag":443,"props":1625,"children":1626},{"style":467},[1627],{"type":81,"value":68},{"type":75,"tag":443,"props":1629,"children":1630},{"style":472},[1631],{"type":81,"value":1632}," repo",{"type":75,"tag":443,"props":1634,"children":1635},{"style":472},[1636],{"type":81,"value":1637}," add",{"type":75,"tag":443,"props":1639,"children":1640},{"style":472},[1641],{"type":81,"value":1642}," csi-driver-smb",{"type":75,"tag":443,"props":1644,"children":1645},{"style":450},[1646],{"type":81,"value":905},{"type":75,"tag":443,"props":1648,"children":1649},{"class":445,"line":521},[1650],{"type":75,"tag":443,"props":1651,"children":1652},{"style":472},[1653],{"type":81,"value":1654},"  https:\u002F\u002Fraw.githubusercontent.com\u002Fkubernetes-csi\u002Fcsi-driver-smb\u002Fmaster\u002Fcharts\n",{"type":75,"tag":443,"props":1656,"children":1657},{"class":445,"line":579},[1658,1662,1666],{"type":75,"tag":443,"props":1659,"children":1660},{"style":467},[1661],{"type":81,"value":68},{"type":75,"tag":443,"props":1663,"children":1664},{"style":472},[1665],{"type":81,"value":1632},{"type":75,"tag":443,"props":1667,"children":1668},{"style":472},[1669],{"type":81,"value":1670}," update\n",{"type":75,"tag":443,"props":1672,"children":1673},{"class":445,"line":616},[1674,1678,1682,1686,1691],{"type":75,"tag":443,"props":1675,"children":1676},{"style":467},[1677],{"type":81,"value":68},{"type":75,"tag":443,"props":1679,"children":1680},{"style":472},[1681],{"type":81,"value":1031},{"type":75,"tag":443,"props":1683,"children":1684},{"style":472},[1685],{"type":81,"value":1642},{"type":75,"tag":443,"props":1687,"children":1688},{"style":472},[1689],{"type":81,"value":1690}," csi-driver-smb\u002Fcsi-driver-smb",{"type":75,"tag":443,"props":1692,"children":1693},{"style":450},[1694],{"type":81,"value":905},{"type":75,"tag":443,"props":1696,"children":1697},{"class":445,"line":641},[1698,1702,1707],{"type":75,"tag":443,"props":1699,"children":1700},{"style":472},[1701],{"type":81,"value":1548},{"type":75,"tag":443,"props":1703,"children":1704},{"style":472},[1705],{"type":81,"value":1706}," kube-system",{"type":75,"tag":443,"props":1708,"children":1709},{"style":450},[1710],{"type":81,"value":905},{"type":75,"tag":443,"props":1712,"children":1713},{"class":445,"line":656},[1714,1718,1723],{"type":75,"tag":443,"props":1715,"children":1716},{"style":472},[1717],{"type":81,"value":1579},{"type":75,"tag":443,"props":1719,"children":1720},{"style":472},[1721],{"type":81,"value":1722}," v1.17.0",{"type":75,"tag":443,"props":1724,"children":1725},{"style":450},[1726],{"type":81,"value":905},{"type":75,"tag":443,"props":1728,"children":1729},{"class":445,"line":1160},[1730,1734,1738],{"type":75,"tag":443,"props":1731,"children":1732},{"style":472},[1733],{"type":81,"value":1597},{"type":75,"tag":443,"props":1735,"children":1736},{"style":472},[1737],{"type":81,"value":1602},{"type":75,"tag":443,"props":1739,"children":1740},{"style":472},[1741],{"type":81,"value":1607},{"type":75,"tag":84,"props":1743,"children":1744},{},[1745,1747,1752,1754,1758],{"type":81,"value":1746},"AKS clusters can use the managed ",{"type":75,"tag":90,"props":1748,"children":1750},{"className":1749},[],[1751],{"type":81,"value":50},{"type":81,"value":1753}," add-on instead — see ",{"type":75,"tag":252,"props":1755,"children":1756},{"href":291},[1757],{"type":81,"value":291},{"type":81,"value":97},{"type":75,"tag":315,"props":1760,"children":1762},{"id":1761},"definition-of-done",[1763],{"type":81,"value":1764},"Definition of done",{"type":75,"tag":322,"props":1766,"children":1767},{},[1768,1803,1814,1849],{"type":75,"tag":326,"props":1769,"children":1770},{},[1771,1773,1778,1780,1785,1787,1793,1795,1801],{"type":81,"value":1772},"Compute-plane registration is satisfiable: either you can produce ",{"type":75,"tag":90,"props":1774,"children":1776},{"className":1775},[],[1777],{"type":81,"value":717},{"type":81,"value":1779}," without the CLI, or an ",{"type":75,"tag":90,"props":1781,"children":1783},{"className":1782},[],[1784],{"type":81,"value":142},{"type":81,"value":1786}," binary is available (on ",{"type":75,"tag":90,"props":1788,"children":1790},{"className":1789},[],[1791],{"type":81,"value":1792},"PATH",{"type":81,"value":1794}," or via ",{"type":75,"tag":90,"props":1796,"children":1798},{"className":1797},[],[1799],{"type":81,"value":1800},"NVCF_CLI=\u003Cabs-path>",{"type":81,"value":1802},").",{"type":75,"tag":326,"props":1804,"children":1805},{},[1806,1812],{"type":75,"tag":90,"props":1807,"children":1809},{"className":1808},[],[1810],{"type":81,"value":1811},"kubectl get pods -n kai-scheduler",{"type":81,"value":1813}," shows 7 pods Running.",{"type":75,"tag":326,"props":1815,"children":1816},{},[1817,1823,1825,1831,1833,1839,1841,1847],{"type":75,"tag":90,"props":1818,"children":1820},{"className":1819},[],[1821],{"type":81,"value":1822},"kubectl get queues",{"type":81,"value":1824}," shows both ",{"type":75,"tag":90,"props":1826,"children":1828},{"className":1827},[],[1829],{"type":81,"value":1830},"default-parent-queue",{"type":81,"value":1832}," and ",{"type":75,"tag":90,"props":1834,"children":1836},{"className":1835},[],[1837],{"type":81,"value":1838},"default-queue",{"type":81,"value":1840}," with ",{"type":75,"tag":90,"props":1842,"children":1844},{"className":1843},[],[1845],{"type":81,"value":1846},"limit: -1, quota: -1",{"type":81,"value":1848}," on cpu \u002F gpu \u002F memory.",{"type":75,"tag":326,"props":1850,"children":1851},{},[1852,1858],{"type":75,"tag":90,"props":1853,"children":1855},{"className":1854},[],[1856],{"type":81,"value":1857},"kubectl get csidriver smb.csi.k8s.io",{"type":81,"value":1859}," returns the driver without error.",{"type":75,"tag":84,"props":1861,"children":1862},{},[1863,1865,1870],{"type":81,"value":1864},"After this, run ",{"type":75,"tag":90,"props":1866,"children":1868},{"className":1867},[],[1869],{"type":81,"value":95},{"type":81,"value":97},{"type":75,"tag":315,"props":1872,"children":1874},{"id":1873},"uninstall",[1875],{"type":81,"value":1876},"Uninstall",{"type":75,"tag":433,"props":1878,"children":1880},{"className":435,"code":1879,"language":65,"meta":437,"style":437},"helm uninstall csi-driver-smb -n kube-system\nhelm uninstall kai-scheduler -n kai-scheduler\nkubectl delete namespace kai-scheduler\n",[1881],{"type":75,"tag":90,"props":1882,"children":1883},{"__ignoreMap":437},[1884,1910,1934],{"type":75,"tag":443,"props":1885,"children":1886},{"class":445,"line":446},[1887,1891,1896,1900,1905],{"type":75,"tag":443,"props":1888,"children":1889},{"style":467},[1890],{"type":81,"value":68},{"type":75,"tag":443,"props":1892,"children":1893},{"style":472},[1894],{"type":81,"value":1895}," uninstall",{"type":75,"tag":443,"props":1897,"children":1898},{"style":472},[1899],{"type":81,"value":1642},{"type":75,"tag":443,"props":1901,"children":1902},{"style":472},[1903],{"type":81,"value":1904}," -n",{"type":75,"tag":443,"props":1906,"children":1907},{"style":472},[1908],{"type":81,"value":1909}," kube-system\n",{"type":75,"tag":443,"props":1911,"children":1912},{"class":445,"line":521},[1913,1917,1921,1925,1929],{"type":75,"tag":443,"props":1914,"children":1915},{"style":467},[1916],{"type":81,"value":68},{"type":75,"tag":443,"props":1918,"children":1919},{"style":472},[1920],{"type":81,"value":1895},{"type":75,"tag":443,"props":1922,"children":1923},{"style":472},[1924],{"type":81,"value":1522},{"type":75,"tag":443,"props":1926,"children":1927},{"style":472},[1928],{"type":81,"value":1904},{"type":75,"tag":443,"props":1930,"children":1931},{"style":472},[1932],{"type":81,"value":1933}," kai-scheduler\n",{"type":75,"tag":443,"props":1935,"children":1936},{"class":445,"line":579},[1937,1941,1946,1951],{"type":75,"tag":443,"props":1938,"children":1939},{"style":467},[1940],{"type":81,"value":69},{"type":75,"tag":443,"props":1942,"children":1943},{"style":472},[1944],{"type":81,"value":1945}," delete",{"type":75,"tag":443,"props":1947,"children":1948},{"style":472},[1949],{"type":81,"value":1950}," namespace",{"type":75,"tag":443,"props":1952,"children":1953},{"style":472},[1954],{"type":81,"value":1933},{"type":75,"tag":315,"props":1956,"children":1958},{"id":1957},"references",[1959],{"type":81,"value":1960},"References",{"type":75,"tag":322,"props":1962,"children":1963},{},[1964,1973,1982],{"type":75,"tag":326,"props":1965,"children":1966},{},[1967,1971],{"type":75,"tag":252,"props":1968,"children":1969},{"href":254},[1970],{"type":81,"value":254},{"type":81,"value":1972}," — KAI install detail, queue-quota theory, failure modes",{"type":75,"tag":326,"props":1974,"children":1975},{},[1976,1980],{"type":75,"tag":252,"props":1977,"children":1978},{"href":291},[1979],{"type":81,"value":291},{"type":81,"value":1981}," — SMB CSI install detail, AKS managed-add-on alternative, verification",{"type":75,"tag":326,"props":1983,"children":1984},{},[1985,1987,1993],{"type":81,"value":1986},"Companion skill: ",{"type":75,"tag":90,"props":1988,"children":1990},{"className":1989},[],[1991],{"type":81,"value":1992},"nvcf-self-managed-installation",{"type":81,"value":1994}," — Section 7 covers enabling and validating the NVCA operator after these prerequisites are satisfied.",{"type":75,"tag":1996,"props":1997,"children":1998},"style",{},[1999],{"type":81,"value":2000},"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":2002,"total":579},[2003,2016,2026],{"slug":2004,"name":2004,"fn":2005,"description":2006,"org":2007,"tags":2008,"stars":23,"repoUrl":24,"updatedAt":2015},"nvcf-self-managed-cli","deploy and manage NVIDIA Cloud Functions","Install, operate, and tear down self-hosted NVIDIA Cloud Functions (NVCF)\ndeployments with nvcf-cli. Use for control-plane or compute-plane install,\nstatus checks, cluster registration, function deploy\u002Finvoke, task\ncreate\u002Flist\u002Fcancel\u002Fdelete, API keys, admin tokens, JWKS rotation,\nfailed-install diagnosis, and uninstall or down workflows. Trigger keywords:\nnvcf, nvcf-cli, self-hosted nvcf, self-managed nvcf, NVCFBackend, NVCA, NCP,\nICMS, helmfile, control plane, compute plane, LLM function,\nOpenAI-compatible invocation, Responses API, embeddings, batch task, task\nmonitor, cluster rotate, cluster delete, helm task, helm-based task,\ntask secrets, update task secrets, retrieve task results, bulk fetch tasks,\ntask results, NVCT, NVCT task, NVCT batch job.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2009,2010,2013,2014],{"name":13,"slug":14,"type":15},{"name":2011,"slug":2012,"type":15},"Cloud","cloud",{"name":17,"slug":18,"type":15},{"name":9,"slug":8,"type":15},"2026-07-30T05:29:41.025233",{"slug":1992,"name":1992,"fn":2017,"description":2018,"org":2019,"tags":2020,"stars":23,"repoUrl":24,"updatedAt":2025},"install and operate NVCF self-hosted stacks","Install and operate NVCF self-hosted control-plane and separate compute-plane stacks. Covers Helmfile values and CLI profile installation flows, teardown, values overrides, pull secrets, and troubleshooting. Use for nvcf-self-managed-stack, nvcf-compute-plane-stack, split compute-plane installation, control-plane installation, CLI-generated control-plane profiles, Helmfile, self-managed, or self-hosted deployments. Do NOT use for local k3d environments; use the local k3d development workflow instead.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2021,2022,2023,2024],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},"2026-07-27T06:06:46.634385",{"slug":4,"name":4,"fn":5,"description":6,"org":2027,"tags":2028,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[2029,2030,2031,2032],{"name":13,"slug":14,"type":15},{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"items":2034,"total":2189},[2035,2053,2069,2080,2092,2106,2119,2133,2146,2155,2169,2178],{"slug":2036,"name":2036,"fn":2037,"description":2038,"org":2039,"tags":2040,"stars":2050,"repoUrl":2051,"updatedAt":2052},"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},[2041,2044,2047],{"name":2042,"slug":2043,"type":15},"Documentation","documentation",{"name":2045,"slug":2046,"type":15},"MCP","mcp",{"name":2048,"slug":2049,"type":15},"Search","search",21777,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FNemoClaw","2026-07-20T06:00:01.461044",{"slug":2054,"name":2054,"fn":2055,"description":2056,"org":2057,"tags":2058,"stars":2066,"repoUrl":2067,"updatedAt":2068},"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},[2059,2062,2063],{"name":2060,"slug":2061,"type":15},"Containers","containers",{"name":17,"slug":18,"type":15},{"name":2064,"slug":2065,"type":15},"Python","python",17049,"https:\u002F\u002Fgithub.com\u002FNVIDIA\u002FMegatron-LM","2026-07-27T06:06:11.249662",{"slug":2070,"name":2070,"fn":2071,"description":2072,"org":2073,"tags":2074,"stars":2066,"repoUrl":2067,"updatedAt":2079},"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},[2075,2078],{"name":2076,"slug":2077,"type":15},"CI\u002FCD","ci-cd",{"name":17,"slug":18,"type":15},"2026-07-14T05:25:59.97109",{"slug":2081,"name":2081,"fn":2082,"description":2083,"org":2084,"tags":2085,"stars":2066,"repoUrl":2067,"updatedAt":2091},"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},[2086,2087,2088],{"name":2076,"slug":2077,"type":15},{"name":17,"slug":18,"type":15},{"name":2089,"slug":2090,"type":15},"GitHub","github","2026-07-27T06:06:12.278222",{"slug":2093,"name":2093,"fn":2094,"description":2095,"org":2096,"tags":2097,"stars":2066,"repoUrl":2067,"updatedAt":2105},"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},[2098,2101,2102],{"name":2099,"slug":2100,"type":15},"Debugging","debugging",{"name":2089,"slug":2090,"type":15},{"name":2103,"slug":2104,"type":15},"Triage","triage","2026-07-14T05:25:57.442089",{"slug":2107,"name":2107,"fn":2108,"description":2109,"org":2110,"tags":2111,"stars":2066,"repoUrl":2067,"updatedAt":2118},"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},[2112,2115],{"name":2113,"slug":2114,"type":15},"Best Practices","best-practices",{"name":2116,"slug":2117,"type":15},"Code Analysis","code-analysis","2026-07-14T05:25:56.18433",{"slug":2120,"name":2120,"fn":2121,"description":2122,"org":2123,"tags":2124,"stars":2066,"repoUrl":2067,"updatedAt":2132},"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},[2125,2128,2131],{"name":2126,"slug":2127,"type":15},"Machine Learning","machine-learning",{"name":2129,"slug":2130,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-07-17T06:07:11.777011",{"slug":2134,"name":2134,"fn":2135,"description":2136,"org":2137,"tags":2138,"stars":2066,"repoUrl":2067,"updatedAt":2145},"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},[2139,2142],{"name":2140,"slug":2141,"type":15},"QA","qa",{"name":2143,"slug":2144,"type":15},"Testing","testing","2026-07-14T05:25:53.673039",{"slug":2147,"name":2147,"fn":2148,"description":2149,"org":2150,"tags":2151,"stars":2066,"repoUrl":2067,"updatedAt":2154},"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},[2152,2153],{"name":17,"slug":18,"type":15},{"name":21,"slug":22,"type":15},"2026-07-14T05:25:49.362534",{"slug":2156,"name":2156,"fn":2157,"description":2158,"org":2159,"tags":2160,"stars":2066,"repoUrl":2067,"updatedAt":2168},"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},[2161,2164,2165],{"name":2162,"slug":2163,"type":15},"Code Review","code-review",{"name":2089,"slug":2090,"type":15},{"name":2166,"slug":2167,"type":15},"Pull Requests","pull-requests","2026-07-14T05:26:01.226578",{"slug":2170,"name":2170,"fn":2171,"description":2172,"org":2173,"tags":2174,"stars":2066,"repoUrl":2067,"updatedAt":2177},"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},[2175,2176],{"name":2140,"slug":2141,"type":15},{"name":2143,"slug":2144,"type":15},"2026-07-14T05:25:54.928983",{"slug":2179,"name":2179,"fn":2180,"description":2181,"org":2182,"tags":2183,"stars":2066,"repoUrl":2067,"updatedAt":2188},"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},[2184,2187],{"name":2185,"slug":2186,"type":15},"Automation","automation",{"name":2076,"slug":2077,"type":15},"2026-07-30T05:29:03.275638",496]