mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
Do not attempt to convert nil object during DELETE webhook admission
This commit is contained in:
parent
795b7da8b0
commit
aad0e2e15f
@ -74,7 +74,10 @@ func (a *mutatingDispatcher) Dispatch(ctx context.Context, attr *generic.Version
|
|||||||
}
|
}
|
||||||
|
|
||||||
// convert attr.VersionedObject to the internal version in the underlying admission.Attributes
|
// convert attr.VersionedObject to the internal version in the underlying admission.Attributes
|
||||||
|
if attr.VersionedObject != nil {
|
||||||
return a.plugin.scheme.Convert(attr.VersionedObject, attr.Attributes.GetObject(), nil)
|
return a.plugin.scheme.Convert(attr.VersionedObject, attr.Attributes.GetObject(), nil)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// note that callAttrMutatingHook updates attr
|
// note that callAttrMutatingHook updates attr
|
||||||
@ -106,6 +109,15 @@ func (a *mutatingDispatcher) callAttrMutatingHook(ctx context.Context, h *v1beta
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return apierrors.NewInternalError(err)
|
return apierrors.NewInternalError(err)
|
||||||
}
|
}
|
||||||
|
if len(patchObj) == 0 {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// if a non-empty patch was provided, and we have no object we can apply it to (e.g. a DELETE admission operation), error
|
||||||
|
if attr.VersionedObject == nil {
|
||||||
|
return apierrors.NewInternalError(fmt.Errorf("admission webhook %q attempted to modify the object, which is not supported for this operation", h.Name))
|
||||||
|
}
|
||||||
|
|
||||||
objJS, err := runtime.Encode(a.plugin.jsonSerializer, attr.VersionedObject)
|
objJS, err := runtime.Encode(a.plugin.jsonSerializer, attr.VersionedObject)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return apierrors.NewInternalError(err)
|
return apierrors.NewInternalError(err)
|
||||||
|
Loading…
Reference in New Issue
Block a user