Skip to content

[TCL-6909] feat(slurm): Model-Aware TorchPass chart support (init scripts + orchestrator Service)#37

Open
sagrawal-byte wants to merge 3 commits into
slurm-1.0-together-changesfrom
sagrawal/torchpass-chart-pkg
Open

[TCL-6909] feat(slurm): Model-Aware TorchPass chart support (init scripts + orchestrator Service)#37
sagrawal-byte wants to merge 3 commits into
slurm-1.0-together-changesfrom
sagrawal/torchpass-chart-pkg

Conversation

@sagrawal-byte

Copy link
Copy Markdown

What

Combined TorchPass chart change (supersedes #35 + #36 — this is the exact source tcloud-charts #354's slurm-1.0.0.tgz was packaged from):

  • initScriptController — mounts /root/init.sh on slurmctld via ConfigMap (mirrors the existing initScriptLogin/initScriptNodes). Run by the controller entrypoint (slurmcontainers Add hostname services for NodeSets SlinkyProject/slurm-operator#50) to bootstrap TorchPass from the substrate metadata service.
  • torchpass.enabled block — renders the torchpass-orchestrator Service (:26001, selects the slurmctld pod) + login-profile ConfigMap.
  • login.initContainers passthrough (login Deployment previously had none).

All gated/opt-in; default renders unchanged. Set by together-cloud-cluster-operator #658 when Cluster.Spec.ModelAwareTorchPassEnabled is true.

Test plan

  • helm lint → 0 failures.
  • helm template with all torchpass values: controller init CM + /root/init.sh mount, orchestrator Service, login initContainer all render; default values render identical to base.
  • End-to-end verified live on QA tenant test-slurm-torchpass (substrate-us-central-8a-2): metadata fetch → login stages+installs both roles → worker waits then SPANK-launches :26002 → controller deferred install + persisted strigger self-fires (monitor/plugin/orchestrator up on :26000/:26001).

🤖 Generated with Claude Code

sagrawal-byte and others added 3 commits June 30, 2026 10:38
Two additions, both gated/opt-in so default renders are unchanged:

- login: support `login.initContainers` (the login Deployment template had no
  passthrough). Needed so the torchpass-payload initContainer can populate
  /opt/torchpass on login pods, matching the worker nodeset.
- torchpass: new `torchpass.enabled` block rendering the cluster-scoped pieces
  the chart owns -- the torchpass-login-profile ConfigMap (sourced by login +
  worker shells) and the torchpass-orchestrator Service (:26001, selecting the
  slurmctld pod). The clockworks sidecar + payload initContainers + volumes are
  injected by the caller via the controller/nodeset/login podSpec values.

Verified with `helm lint` + `helm template`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
login (initScriptLogin) and compute (initScriptNodes) already mount a
/root/init.sh init script via ConfigMap; the controller had no equivalent.
Add initScriptController: a ConfigMap mounted at /root/init.sh on the
slurmctld container, run at startup by the controller entrypoint
(slurmcontainers controller.sh). Used to fetch role binaries (e.g. TorchPass)
from the substrate metadata service. Gated/null by default -- no change to
existing renders.

Verified with helm lint + helm template.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ontroller' into sagrawal/torchpass-chart-pkg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant