Skip to content

Commit 56be1f8

Browse files
[release-2.0] feat: Add a public function to create runtime info objects (#2846)
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com> Co-authored-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
1 parent 400591f commit 56be1f8

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed

pkg/runtime/core/clustertrainingruntime.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,18 @@ func (r *ClusterTrainingRuntime) NewObjects(ctx context.Context, trainJob *train
5757
if err := r.client.Get(ctx, client.ObjectKey{Name: trainJob.Spec.RuntimeRef.Name}, &clTrainingRuntime); err != nil {
5858
return nil, fmt.Errorf("%w: %w", errorNotFoundSpecifiedClusterTrainingRuntime, err)
5959
}
60-
return r.buildObjects(ctx, trainJob, clTrainingRuntime.Spec.Template, clTrainingRuntime.Spec.MLPolicy, clTrainingRuntime.Spec.PodGroupPolicy)
60+
61+
info, err := r.RuntimeInfo(trainJob, clTrainingRuntime.Spec.Template, clTrainingRuntime.Spec.MLPolicy, clTrainingRuntime.Spec.PodGroupPolicy)
62+
if err != nil {
63+
return nil, err
64+
}
65+
return r.framework.RunComponentBuilderPlugins(ctx, info, trainJob)
66+
}
67+
68+
func (r *ClusterTrainingRuntime) RuntimeInfo(
69+
trainJob *trainer.TrainJob, runtimeTemplateSpec any, mlPolicy *trainer.MLPolicy, podGroupPolicy *trainer.PodGroupPolicy,
70+
) (*runtime.Info, error) {
71+
return r.TrainingRuntime.RuntimeInfo(trainJob, runtimeTemplateSpec, mlPolicy, podGroupPolicy)
6172
}
6273

6374
func (r *ClusterTrainingRuntime) TerminalCondition(ctx context.Context, trainJob *trainer.TrainJob) (*metav1.Condition, error) {

pkg/runtime/core/trainingruntime.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,21 @@ func (r *TrainingRuntime) NewObjects(ctx context.Context, trainJob *trainer.Trai
8585
if err != nil {
8686
return nil, fmt.Errorf("%w: %w", errorNotFoundSpecifiedTrainingRuntime, err)
8787
}
88-
return r.buildObjects(ctx, trainJob, trainingRuntime.Spec.Template, trainingRuntime.Spec.MLPolicy, trainingRuntime.Spec.PodGroupPolicy)
88+
info, err := r.RuntimeInfo(trainJob, trainingRuntime.Spec.Template, trainingRuntime.Spec.MLPolicy, trainingRuntime.Spec.PodGroupPolicy)
89+
if err != nil {
90+
return nil, err
91+
}
92+
return r.framework.RunComponentBuilderPlugins(ctx, info, trainJob)
8993
}
9094

91-
func (r *TrainingRuntime) buildObjects(
92-
ctx context.Context, trainJob *trainer.TrainJob, jobSetTemplateSpec trainer.JobSetTemplateSpec, mlPolicy *trainer.MLPolicy, podGroupPolicy *trainer.PodGroupPolicy,
93-
) ([]any, error) {
95+
func (r *TrainingRuntime) RuntimeInfo(
96+
trainJob *trainer.TrainJob, runtimeTemplateSpec any, mlPolicy *trainer.MLPolicy, podGroupPolicy *trainer.PodGroupPolicy,
97+
) (*runtime.Info, error) {
9498

99+
jobSetTemplateSpec, ok := runtimeTemplateSpec.(trainer.JobSetTemplateSpec)
100+
if !ok {
101+
return nil, fmt.Errorf("unsupported runtimeTemplateSpec")
102+
}
95103
info, err := r.newRuntimeInfo(trainJob, jobSetTemplateSpec, mlPolicy, podGroupPolicy)
96104
if err != nil {
97105
return nil, err
@@ -108,7 +116,7 @@ func (r *TrainingRuntime) buildObjects(
108116
return nil, err
109117
}
110118

111-
return r.framework.RunComponentBuilderPlugins(ctx, info, trainJob)
119+
return info, nil
112120
}
113121

114122
func (r *TrainingRuntime) newRuntimeInfo(

pkg/runtime/interface.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ type Runtime interface {
3737
// https://github.com/kubernetes/kubernetes/pull/129313 becomes available
3838

3939
NewObjects(ctx context.Context, trainJob *trainer.TrainJob) ([]any, error)
40+
RuntimeInfo(trainJob *trainer.TrainJob, runtimeTemplateSpec any, mlPolicy *trainer.MLPolicy, podGroupPolicy *trainer.PodGroupPolicy) (*Info, error)
4041
TerminalCondition(ctx context.Context, trainJob *trainer.TrainJob) (*metav1.Condition, error)
4142
EventHandlerRegistrars() []ReconcilerBuilder
4243
ValidateObjects(ctx context.Context, old, new *trainer.TrainJob) (admission.Warnings, field.ErrorList)

0 commit comments

Comments
 (0)