feat(provider/lambdai): Kubernetes node-data-broker support#375
feat(provider/lambdai): Kubernetes node-data-broker support#375alaski-lambda wants to merge 1 commit into
Conversation
Add lambdai.GetNodeAnnotations, which derives Topograph's instance and region node annotations from a node's .spec.providerID (lambda://<id>) and its topology.kubernetes.io/region label, and dispatch to it from the node-data-broker so the k8s engine can discover and label Lambda nodes. Register lambdai in the provider overview and docs nav. Signed-off-by: Andrew Laski <alaski@lambdal.com>
Greptile SummaryThis PR adds Kubernetes node-data-broker support for the Lambda AI provider by implementing
Confidence Score: 4/5The core Go implementation is solid and the broker wiring is correct, but the docs nav and overview reference a provider page that does not yet exist. The new GetNodeAnnotations function, its tests, and the broker switch entry are all correct. The only gap is that docs/providers/lambdai.md is referenced in both docs/index.yml and docs/overview.md but is absent from the repository, which will produce broken links on the docs site. docs/index.yml and docs/overview.md reference providers/lambdai.md, which does not exist. Important Files Changed
Sequence Diagram%%{init: {'theme': 'neutral'}}%%
sequenceDiagram
participant NDB as node-data-broker (init container)
participant K8s as Kubernetes API
participant Lambda as lambda-cloud-controller
Lambda->>K8s: "Sets Node.spec.providerID = "lambda://<id>""
Lambda->>K8s: Sets Node label topology.kubernetes.io/region
NDB->>K8s: GET Node (lambdai.GetNodeAnnotations)
alt providerID or region label missing
K8s-->>NDB: Node missing fields
NDB-->>NDB: Return error - init container retries
else fields present
K8s-->>NDB: Node with providerID + region label
NDB->>NDB: Extract instance ID via strings.CutPrefix
NDB->>K8s: GET Node (broker.apply)
NDB->>K8s: PATCH Node annotations (topograph.nvidia.com/instance, topograph.nvidia.com/region)
end
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
sequenceDiagram
participant NDB as node-data-broker (init container)
participant K8s as Kubernetes API
participant Lambda as lambda-cloud-controller
Lambda->>K8s: "Sets Node.spec.providerID = "lambda://<id>""
Lambda->>K8s: Sets Node label topology.kubernetes.io/region
NDB->>K8s: GET Node (lambdai.GetNodeAnnotations)
alt providerID or region label missing
K8s-->>NDB: Node missing fields
NDB-->>NDB: Return error - init container retries
else fields present
K8s-->>NDB: Node with providerID + region label
NDB->>NDB: Extract instance ID via strings.CutPrefix
NDB->>K8s: GET Node (broker.apply)
NDB->>K8s: PATCH Node annotations (topograph.nvidia.com/instance, topograph.nvidia.com/region)
end
Reviews (1): Last reviewed commit: "feat(provider/lambdai): Kubernetes node-..." | Re-trigger Greptile |
| - page: Lambda | ||
| path: providers/lambdai.md |
There was a problem hiding this comment.
Missing documentation file — broken nav link
docs/index.yml and docs/overview.md both reference providers/lambdai.md, but the file docs/providers/lambdai.md does not exist in the repository. Every other provider entry in the nav (aws, gcp, oci, nebius, nscale, infiniband, netq, dra) has a corresponding file under docs/providers/. Clicking the "Lambda" nav entry will result in a 404 on the docs site. A provider page is needed before this navigation entry can be wired up.
Description
Add lambdai.GetNodeAnnotations, which derives Topograph's instance and region node annotations from a node's .spec.providerID (lambda://) and its topology.kubernetes.io/region label, and dispatch to it from the node-data-broker so the k8s engine can discover and label Lambda nodes. Register lambdai in the provider overview and docs nav.
Checklist
git commit -s).