Skip to content

Commit

Permalink
commonize job name validation
Browse files Browse the repository at this point in the history
Signed-off-by: Harshvir Potpose <[email protected]>
  • Loading branch information
akagami-harsh committed Oct 29, 2024
1 parent 22d5dde commit 9094503
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 16 deletions.
8 changes: 4 additions & 4 deletions pkg/webhooks/jax/jaxjob_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ import (
"context"
"fmt"
"slices"
"strings"

apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/klog/v2"
Expand All @@ -31,6 +29,7 @@ import (
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"

trainingoperator "github.com/kubeflow/training-operator/pkg/apis/kubeflow.org/v1"
"github.com/kubeflow/training-operator/pkg/webhooks/utils"
)

var (
Expand Down Expand Up @@ -71,8 +70,9 @@ func (w *Webhook) ValidateDelete(context.Context, runtime.Object) (admission.War

func validateJAXJob(job *trainingoperator.JAXJob) field.ErrorList {
var allErrs field.ErrorList
if errors := apimachineryvalidation.NameIsDNS1035Label(job.ObjectMeta.Name, false); len(errors) != 0 {
allErrs = append(allErrs, field.Invalid(field.NewPath("metadata").Child("name"), job.Name, fmt.Sprintf("should match: %v", strings.Join(errors, ","))))
err := utils.ValidateJobName(job.ObjectMeta.Name)
if err != nil {
allErrs = append(allErrs, err)
}

allErrs = append(allErrs, validateSpec(job.Spec)...)
Expand Down
8 changes: 4 additions & 4 deletions pkg/webhooks/paddlepaddle/paddlepaddle_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ import (
"context"
"fmt"
"slices"
"strings"

apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/klog/v2"
Expand All @@ -32,6 +30,7 @@ import (

trainingoperator "github.com/kubeflow/training-operator/pkg/apis/kubeflow.org/v1"
"github.com/kubeflow/training-operator/pkg/common/util"
"github.com/kubeflow/training-operator/pkg/webhooks/utils"
)

var (
Expand Down Expand Up @@ -73,8 +72,9 @@ func (w Webhook) ValidateDelete(context.Context, runtime.Object) (admission.Warn

func validatePaddleJob(oldJob, newJob *trainingoperator.PaddleJob) field.ErrorList {
var allErrs field.ErrorList
if errors := apimachineryvalidation.NameIsDNS1035Label(newJob.Name, false); len(errors) != 0 {
allErrs = append(allErrs, field.Invalid(field.NewPath("metadata").Child("name"), newJob.Name, fmt.Sprintf("should match: %v", strings.Join(errors, ","))))
err := utils.ValidateJobName(newJob.Name)
if err != nil {
allErrs = append(allErrs, err)
}
if oldJob != nil {
allErrs = append(allErrs, util.ValidateRunPolicyUpdate(&oldJob.Spec.RunPolicy, &newJob.Spec.RunPolicy)...)
Expand Down
8 changes: 4 additions & 4 deletions pkg/webhooks/pytorch/pytorchjob_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@ import (
"context"
"fmt"
"slices"
"strings"

apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/klog/v2"
Expand All @@ -32,6 +30,7 @@ import (

trainingoperator "github.com/kubeflow/training-operator/pkg/apis/kubeflow.org/v1"
"github.com/kubeflow/training-operator/pkg/common/util"
"github.com/kubeflow/training-operator/pkg/webhooks/utils"
)

var (
Expand Down Expand Up @@ -77,8 +76,9 @@ func validatePyTorchJob(oldJob, newJob *trainingoperator.PyTorchJob) (admission.
var allErrs field.ErrorList
var warnings admission.Warnings

if errors := apimachineryvalidation.NameIsDNS1035Label(newJob.ObjectMeta.Name, false); len(errors) != 0 {
allErrs = append(allErrs, field.Invalid(field.NewPath("metadata").Child("name"), newJob.Name, fmt.Sprintf("should match: %v", strings.Join(errors, ","))))
jobNameErr := utils.ValidateJobName(newJob.ObjectMeta.Name)
if jobNameErr != nil {
allErrs = append(allErrs, jobNameErr)
}
if oldJob != nil {
allErrs = append(allErrs, util.ValidateRunPolicyUpdate(&oldJob.Spec.RunPolicy, &newJob.Spec.RunPolicy)...)
Expand Down
8 changes: 4 additions & 4 deletions pkg/webhooks/tensorflow/tfjob_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ package tensorflow
import (
"context"
"fmt"
"strings"

apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/klog/v2"
Expand All @@ -31,6 +29,7 @@ import (

trainingoperator "github.com/kubeflow/training-operator/pkg/apis/kubeflow.org/v1"
"github.com/kubeflow/training-operator/pkg/common/util"
"github.com/kubeflow/training-operator/pkg/webhooks/utils"
)

var (
Expand Down Expand Up @@ -72,8 +71,9 @@ func (w *Webhook) ValidateDelete(context.Context, runtime.Object) (admission.War

func validateTFJob(oldJob, newJob *trainingoperator.TFJob) field.ErrorList {
var allErrs field.ErrorList
if errors := apimachineryvalidation.NameIsDNS1035Label(newJob.Name, false); len(errors) != 0 {
allErrs = append(allErrs, field.Invalid(field.NewPath("metadata").Child("name"), newJob.Name, fmt.Sprintf("should match: %v", strings.Join(errors, ","))))
err := utils.ValidateJobName(newJob.Name)
if err != nil {
allErrs = append(allErrs, err)
}
if oldJob != nil {
allErrs = append(allErrs, util.ValidateRunPolicyUpdate(&oldJob.Spec.RunPolicy, &newJob.Spec.RunPolicy)...)
Expand Down
16 changes: 16 additions & 0 deletions pkg/webhooks/utils/utils.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package utils

import (
"fmt"
"strings"

apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation"
"k8s.io/apimachinery/pkg/util/validation/field"
)

func ValidateJobName(name string) *field.Error {
if errors := apimachineryvalidation.NameIsDNS1035Label(name, false); len(errors) != 0 {
return field.Invalid(field.NewPath("metadata").Child("name"), name, fmt.Sprintf("should match: %v", strings.Join(errors, ",")))
}
return nil
}

0 comments on commit 9094503

Please sign in to comment.