diff --git a/pkg/admission/admit_job.go b/pkg/admission/admit_job.go index 007c9847d4..1c4a28cfeb 100644 --- a/pkg/admission/admit_job.go +++ b/pkg/admission/admit_job.go @@ -26,12 +26,14 @@ import ( "k8s.io/api/admission/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/validation" v1alpha1 "volcano.sh/volcano/pkg/apis/batch/v1alpha1" ) // job admit. func AdmitJobs(ar v1beta1.AdmissionReview) *v1beta1.AdmissionResponse { + glog.V(3).Infof("admitting jobs -- %s", ar.Request.Operation) job, err := DecodeJob(ar.Request.Object, ar.Request.Resource) @@ -83,6 +85,11 @@ func validateJobSpec(jobSpec v1alpha1.JobSpec, reviewResponse *v1beta1.Admission // count replicas totalReplicas = totalReplicas + task.Replicas + // validate task name + if errMsgs := validation.IsDNS1123Label(task.Name); len(errMsgs) > 0 { + msg = msg + fmt.Sprintf(" %v;", errMsgs) + } + // duplicate task name if _, found := taskNames[task.Name]; found { msg = msg + fmt.Sprintf(" duplicated task name %s;", task.Name) diff --git a/pkg/admission/mutate_job.go b/pkg/admission/mutate_job.go index 00af6a0065..63d0c270a9 100644 --- a/pkg/admission/mutate_job.go +++ b/pkg/admission/mutate_job.go @@ -20,6 +20,7 @@ import ( "encoding/json" "fmt" "math/rand" + "strconv" "time" "github.com/golang/glog" @@ -83,7 +84,7 @@ func mutateSpec(tasks []v1alpha1.TaskSpec, basePath string) (patch []patchOperat // add default task name taskName := tasks[index].Name if len(taskName) == 0 { - tasks[index].Name = v1alpha1.DefaultTaskSpec + tasks[index].Name = v1alpha1.DefaultTaskSpec + strconv.Itoa(index) } } patch = append(patch, patchOperation{