diff options
| author | KubeEdge Bot <48982446+kubeedge-bot@users.noreply.github.com> | 2023-12-20 14:46:02 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-20 14:46:02 +0800 |
| commit | 86e8b34eafd34dd2e4c5d2d4689fae6f379e736d (patch) | |
| tree | d223c45013bd8419ad47792cf66dc0a708dbce3e /edge | |
| parent | Merge pull request #5299 from Shelley-BaoYue/remove-runtimetype (diff) | |
| parent | Use klog instead of Fprintf. (diff) | |
| download | kubeedge-86e8b34eafd34dd2e4c5d2d4689fae6f379e736d.tar.gz | |
Merge pull request #5313 from Windrow14/bugfix/metaserver_panic_when_handling_post_2
Fix Metaserver Panic when Handling POST 2.
Diffstat (limited to 'edge')
| -rw-r--r-- | edge/pkg/metamanager/metaserver/kubernetes/scope/scope.go | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/edge/pkg/metamanager/metaserver/kubernetes/scope/scope.go b/edge/pkg/metamanager/metaserver/kubernetes/scope/scope.go index 579f4886c..4da87f299 100644 --- a/edge/pkg/metamanager/metaserver/kubernetes/scope/scope.go +++ b/edge/pkg/metamanager/metaserver/kubernetes/scope/scope.go @@ -6,14 +6,38 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/managedfields" "k8s.io/apiserver/pkg/endpoints/handlers" "k8s.io/client-go/kubernetes/scheme" + "k8s.io/klog/v2" + "k8s.io/kube-openapi/pkg/validation/spec" + "sigs.k8s.io/structured-merge-diff/v4/fieldpath" "github.com/kubeedge/kubeedge/edge/pkg/metamanager/metaserver/kubernetes/fakers" "github.com/kubeedge/kubeedge/edge/pkg/metamanager/metaserver/kubernetes/serializer" ) func NewRequestScope() *handlers.RequestScope { + fakeTypeConverter, err := managedfields.NewTypeConverter(make(map[string]*spec.Schema), false) + if err != nil { + klog.Errorf("Failed to create TypeConverter: %v\n", err) + return nil + } + fakeFieldManager, err := managedfields.NewDefaultFieldManager( + fakeTypeConverter, + nil, + fakers.NewFakeObjectDefaulter(), + nil, + schema.GroupVersionKind{}, + schema.GroupVersion{}, + "", + make(map[fieldpath.APIVersion]*fieldpath.Set), + ) + if err != nil { + klog.Errorf("Failed to create FieldManager: %v\n", err) + return nil + } + requestScope := handlers.RequestScope{ Namer: handlers.ContextBasedNaming{ Namer: meta.NewAccessor(), @@ -32,6 +56,7 @@ func NewRequestScope() *handlers.RequestScope { EquivalentResourceMapper: runtime.NewEquivalentResourceRegistry(), TableConvertor: nil, + FieldManager: fakeFieldManager, Resource: schema.GroupVersionResource{}, Subresource: "", |
