/
scope.go
80 lines (65 loc) · 2.45 KB
/
scope.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package scope
import (
"k8s.io/apiextensions-apiserver/pkg/crdserverscheme"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured/unstructuredscheme"
"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/apiserver/pkg/registry/rest"
"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 {
typeConverter, err := managedfields.NewTypeConverter(make(map[string]*spec.Schema), false)
if err != nil {
klog.Errorf("Failed to create TypeConverter: %v\n", err)
return nil
}
fieldManager, err := managedfields.NewDefaultFieldManager(
typeConverter,
fakers.NewFakeObjectConvertor(),
fakers.NewFakeObjectDefaulter(),
unstructuredscheme.NewUnstructuredCreator(),
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(),
ClusterScoped: false,
},
Serializer: serializer.NewNegotiatedSerializer(),
ParameterCodec: scheme.ParameterCodec,
StandardSerializers: make([]runtime.SerializerInfo, 0),
Creater: unstructuredscheme.NewUnstructuredCreator(),
Convertor: fakers.NewFakeObjectConvertor(),
Defaulter: fakers.NewFakeObjectDefaulter(),
Typer: crdserverscheme.NewUnstructuredObjectTyper(),
UnsafeConvertor: fakers.NewFakeObjectConvertor(),
Authorizer: fakers.NewAlwaysAllowAuthorizer(),
EquivalentResourceMapper: runtime.NewEquivalentResourceRegistry(),
TableConvertor: rest.NewDefaultTableConvertor(schema.GroupResource{}),
FieldManager: fieldManager,
Resource: schema.GroupVersionResource{},
Kind: schema.GroupVersionKind{},
AcceptsGroupVersionDelegate: nil,
Subresource: "",
MetaGroupVersion: metav1.SchemeGroupVersion,
HubGroupVersion: schema.GroupVersion{},
MaxRequestBodyBytes: int64(3 * 1024 * 1024),
}
return &requestScope
}