Skip to content

KubeFlow patches#94

Merged
mchmarny merged 5 commits into
NVIDIA:mainfrom
coffeepac:kubeflow-works
Feb 11, 2026
Merged

KubeFlow patches#94
mchmarny merged 5 commits into
NVIDIA:mainfrom
coffeepac:kubeflow-works

Conversation

@coffeepac

@coffeepac coffeepac commented Feb 11, 2026

Copy link
Copy Markdown
Contributor

Summary

adds external manifest to kubeflow helm chart to install torch-distributed ClusterTrainingRuntime as part of eidos

Motivation / Context

easily support CUJ1

Fixes:
Related:

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)
  • Build/CI/tooling

Component(s) Affected

  • CLI (cmd/eidos, pkg/cli)
  • API server (cmd/eidosd, pkg/api, pkg/server)
  • Recipe engine / data (pkg/recipe)
  • Bundlers (pkg/bundler, pkg/component/*)
  • Collectors / snapshotter (pkg/collector, pkg/snapshotter)
  • Validator (pkg/validator)
  • Core libraries (pkg/errors, pkg/k8s)
  • Docs/examples (docs/, examples/)
  • Other: ____________

Implementation Notes

Testing

# Commands run (prefer `make qualify` for non-trivial changes)
make qualify

Risk Assessment

  • Low — Isolated change, well-tested, easy to revert
  • Medium — Touches multiple components or has broader impact
  • High — Breaking change, affects critical paths, or complex rollout

Rollout notes:

Checklist

  • Tests pass locally (make test with -race)
  • Linter passes (make lint)
  • I did not skip/disable tests to make CI green
  • I added/updated tests for new functionality
  • I updated docs if user-facing behavior changed
  • Changes follow existing patterns in the codebase
  • Commits are signed off (git commit -s) — DCO info

@coffeepac coffeepac requested review from a team as code owners February 11, 2026 17:56
mchmarny
mchmarny previously approved these changes Feb 11, 2026

@mchmarny mchmarny left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/lgtm

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a Kubeflow Trainer patch to include an external manifest so Eidos can install a torch-distributed ClusterTrainingRuntime alongside the kubeflow-trainer Helm release, and updates the CUJ1 demo to reference that runtime.

Changes:

  • Adds manifestFiles entries for kubeflow-trainer in the Kubeflow training and inference overlays.
  • Introduces a new ClusterTrainingRuntime manifest for torch-distributed.
  • Updates the CUJ1 demo TrainJob example to use the torch-distributed runtime and a different example image/path.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
pkg/recipe/data/overlays/h100-eks-ubuntu-training-kubeflow.yaml Adds the kubeflow-trainer extra manifest file for Kubeflow training overlay.
pkg/recipe/data/overlays/h100-eks-ubuntu-inference.yaml Adds the same kubeflow-trainer extra manifest file for inference overlay.
pkg/recipe/data/components/kubeflow-trainer/manifests/torch-distributed-cluster-training-runtime.yaml New cluster-scoped runtime manifest intended to be installed with kubeflow-trainer.
examples/demos/cuj1.md Updates demo TrainJob snippet to reference torch-distributed runtime and adjust image/paths/resources.

@mchmarny mchmarny merged commit 29b4972 into NVIDIA:main Feb 11, 2026
7 checks passed
@mchmarny mchmarny deleted the kubeflow-works branch February 11, 2026 23:21
yuanchen8911 added a commit to yuanchen8911/aicr that referenced this pull request Apr 30, 2026
The torch-distributed ClusterTrainingRuntime declared its delete policy as
hook-delete-policy: before-hook-creation,hook-succeeded. Helm interprets
hook-succeeded literally — after the post-install hook runs successfully,
the resource is deleted. So every install would create the CTR and
immediately delete it, leaving the cluster with no torch-distributed
runtime.

Symptom: any TrainJob referencing runtimeRef.name=torch-distributed (e.g.
the pytorch-mnist demo in demos/cuj1-eks.md) is rejected by the trainer
admission webhook with "ClusterTrainingRuntime torch-distributed not found".

Fix: drop only ,hook-succeeded. Keep the helm.sh/hook annotation (project
convention enforced by pkg/recipe.TestManifestHelmHooksRequired) and
before-hook-creation (idempotent re-install). Without hook-succeeded, the
CTR persists between installs.

Verified end-to-end on a real EKS H100 cluster: with the fix applied the
CTR is present after install, the demo TrainJob is admitted, and a
1-epoch pytorch-mnist run completes (accuracy 0.74).

The bug has existed since the manifest was first introduced in NVIDIA#94
(Feb 2026); confirmed by git log -p on both the original embedded path
and the current recipes/ path.
@github-actions

Copy link
Copy Markdown
Contributor

This pull request has been automatically locked since it has been closed for 90 days with no further activity. Please open a new pull request for related changes.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators May 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants