Commit 60d4f2fe authored by k8s-merge-robot's avatar k8s-merge-robot Committed by GitHub

Merge pull request #27432 from jsafrane/pv-events-log

Automatic merge from submit-queue Allow emitting PersistentVolume events. Similarly to Nodes, PersistentVolumes are not in any namespace and we should not block events on them. Currently, these events are rejected with `Event "nfs.145841cf9c8cfaf0" is invalid: involvedObject.namespace: Invalid value: "": does not match involvedObject`
parents a055c4e8 4ab91066
...@@ -25,15 +25,16 @@ import ( ...@@ -25,15 +25,16 @@ import (
// ValidateEvent makes sure that the event makes sense. // ValidateEvent makes sure that the event makes sense.
func ValidateEvent(event *api.Event) field.ErrorList { func ValidateEvent(event *api.Event) field.ErrorList {
allErrs := field.ErrorList{} allErrs := field.ErrorList{}
// There is no namespace required for node. // There is no namespace required for node or persistent volume.
// However, older client code accidentally sets event.Namespace // However, older client code accidentally sets event.Namespace
// to api.NamespaceDefault, so we accept that too, but "" is preferred. // to api.NamespaceDefault, so we accept that too, but "" is preferred.
if event.InvolvedObject.Kind == "Node" && if (event.InvolvedObject.Kind == "Node" || event.InvolvedObject.Kind == "PersistentVolume") &&
event.Namespace != api.NamespaceDefault && event.Namespace != api.NamespaceDefault &&
event.Namespace != "" { event.Namespace != "" {
allErrs = append(allErrs, field.Invalid(field.NewPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "not allowed for node")) allErrs = append(allErrs, field.Invalid(field.NewPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "not allowed for node"))
} }
if event.InvolvedObject.Kind != "Node" && if event.InvolvedObject.Kind != "Node" &&
event.InvolvedObject.Kind != "PersistentVolume" &&
event.Namespace != event.InvolvedObject.Namespace { event.Namespace != event.InvolvedObject.Namespace {
allErrs = append(allErrs, field.Invalid(field.NewPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "does not match involvedObject")) allErrs = append(allErrs, field.Invalid(field.NewPath("involvedObject", "namespace"), event.InvolvedObject.Namespace, "does not match involvedObject"))
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment