diff --git a/pkg/controller.v1/mpi/mpijob_controller.go b/pkg/controller.v1/mpi/mpijob_controller.go index 30ee1abe5b..cec7637c73 100644 --- a/pkg/controller.v1/mpi/mpijob_controller.go +++ b/pkg/controller.v1/mpi/mpijob_controller.go @@ -133,7 +133,8 @@ func (jc *MPIJobReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct } if err = kubeflowv1.ValidateV1MpiJobSpec(&mpijob.Spec); err != nil { - logger.Info(err.Error(), "MPIJob failed validation", req.NamespacedName.String()) + logger.Error(err, "MPIJob failed validation") + jc.Recorder.Eventf(mpijob, corev1.EventTypeWarning, "JobFailedValidation", "MPIJob failed validation because %s", err) return ctrl.Result{}, err } diff --git a/pkg/controller.v1/mxnet/mxjob_controller.go b/pkg/controller.v1/mxnet/mxjob_controller.go index 9eb0584b88..35caf19d16 100644 --- a/pkg/controller.v1/mxnet/mxjob_controller.go +++ b/pkg/controller.v1/mxnet/mxjob_controller.go @@ -130,7 +130,9 @@ func (r *MXJobReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl } if err = kubeflowv1.ValidateV1MXJobSpec(&mxjob.Spec); err != nil { - logger.Info(err.Error(), "MXJob failed validation", req.NamespacedName.String()) + logger.Error(err, "MXJob failed validation") + r.Recorder.Eventf(mxjob, corev1.EventTypeWarning, "JobFailedValidation", "MXJob failed validation because %s", err) + return ctrl.Result{}, err } // Check if reconciliation is needed diff --git a/pkg/controller.v1/paddlepaddle/paddlepaddle_controller.go b/pkg/controller.v1/paddlepaddle/paddlepaddle_controller.go index 4d76e5c187..f5af2f9b48 100644 --- a/pkg/controller.v1/paddlepaddle/paddlepaddle_controller.go +++ b/pkg/controller.v1/paddlepaddle/paddlepaddle_controller.go @@ -131,7 +131,9 @@ func (r *PaddleJobReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( } if err = kubeflowv1.ValidateV1PaddleJobSpec(&paddlejob.Spec); err != nil { - logger.Info(err.Error(), "PaddleJob failed validation", req.NamespacedName.String()) + logger.Error(err, "PaddleJob failed validation") + r.Recorder.Eventf(paddlejob, corev1.EventTypeWarning, "JobFailedValidation", "PaddleJob failed validation because %s", err) + return ctrl.Result{}, err } // Check if reconciliation is needed diff --git a/pkg/controller.v1/pytorch/pytorchjob_controller.go b/pkg/controller.v1/pytorch/pytorchjob_controller.go index aacd75e36a..5ce55aec4e 100644 --- a/pkg/controller.v1/pytorch/pytorchjob_controller.go +++ b/pkg/controller.v1/pytorch/pytorchjob_controller.go @@ -131,7 +131,9 @@ func (r *PyTorchJobReconciler) Reconcile(ctx context.Context, req ctrl.Request) } if err = kubeflowv1.ValidateV1PyTorchJobSpec(&pytorchjob.Spec); err != nil { - logger.Info(err.Error(), "PyTorchJob failed validation", req.NamespacedName.String()) + logger.Error(err, "PyTorchJob failed validation") + r.Recorder.Eventf(pytorchjob, corev1.EventTypeWarning, "JobFailedValidation", "PyTorchJob failed validation because %s", err) + return ctrl.Result{}, err } // Check if reconciliation is needed diff --git a/pkg/controller.v1/tensorflow/tfjob_controller.go b/pkg/controller.v1/tensorflow/tfjob_controller.go index 6079a4e846..cd278a8044 100644 --- a/pkg/controller.v1/tensorflow/tfjob_controller.go +++ b/pkg/controller.v1/tensorflow/tfjob_controller.go @@ -153,7 +153,9 @@ func (r *TFJobReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl } if err = kubeflowv1.ValidateV1TFJobSpec(&tfjob.Spec); err != nil { - logger.Info(err.Error(), "TFJob failed validation", req.NamespacedName.String()) + logger.Error(err, "TFJob failed validation") + r.Recorder.Eventf(tfjob, corev1.EventTypeWarning, "JobFailedValidation", "TFJob failed validation because %s", err) + return ctrl.Result{}, err } // Check if reconciliation is needed diff --git a/pkg/controller.v1/xgboost/xgboostjob_controller.go b/pkg/controller.v1/xgboost/xgboostjob_controller.go index 7be8ff2c7a..79d210e214 100644 --- a/pkg/controller.v1/xgboost/xgboostjob_controller.go +++ b/pkg/controller.v1/xgboost/xgboostjob_controller.go @@ -142,7 +142,9 @@ func (r *XGBoostJobReconciler) Reconcile(ctx context.Context, req ctrl.Request) } if err = kubeflowv1.ValidateXGBoostJobSpec(&xgboostjob.Spec); err != nil { - logger.Info(err.Error(), "XGBoostJob failed validation", req.NamespacedName.String()) + logger.Error(err, "XGBoostJob failed validation") + r.Recorder.Eventf(xgboostjob, corev1.EventTypeWarning, "JobFailedValidation", "XGBoostJob failed validation because %s", err) + return ctrl.Result{}, err } // Check reconcile is required.