mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-13 13:55:41 +00:00
Fix defaulting for native types
This commit is contained in:
parent
4c487b00af
commit
fd69001314
@ -27,6 +27,7 @@ import (
|
|||||||
k8serrors "k8s.io/apimachinery/pkg/api/errors"
|
k8serrors "k8s.io/apimachinery/pkg/api/errors"
|
||||||
"k8s.io/apimachinery/pkg/api/meta"
|
"k8s.io/apimachinery/pkg/api/meta"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||||
"k8s.io/apimachinery/pkg/types"
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apiserver/pkg/admission"
|
"k8s.io/apiserver/pkg/admission"
|
||||||
@ -249,9 +250,20 @@ func (d *dispatcher) dispatchOne(
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch versionedAttributes.VersionedObject.(type) {
|
||||||
|
case *unstructured.Unstructured:
|
||||||
|
// No conversion needed before defaulting for the patch object if the admitted object is unstructured.
|
||||||
|
default:
|
||||||
|
// Before defaulting, if the admitted object is a typed object, convert unstructured patch result back to a typed object.
|
||||||
|
newVersionedObject, err = o.GetObjectConvertor().ConvertToVersion(newVersionedObject, versionedAttributes.GetKind().GroupVersion())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
o.GetObjectDefaulter().Default(newVersionedObject)
|
||||||
|
|
||||||
versionedAttributes.Dirty = true
|
versionedAttributes.Dirty = true
|
||||||
versionedAttributes.VersionedObject = newVersionedObject
|
versionedAttributes.VersionedObject = newVersionedObject
|
||||||
o.GetObjectDefaulter().Default(newVersionedObject)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user