- staging/src/k8s.io/apiserver/pkg/server/options/admission.go:143
genericInitializer := initializer.New(clientset, informers, c.Authorization.Authorizer, scheme)
- vendor/k8s.io/apiserver/pkg/admission/initializer/initializer.go:65
if wants, ok := plugin.(WantsScheme); ok {
wants.SetScheme(i.scheme)
}
- vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/generic/webhook.go:37
type Webhook struct {
*admission.Handler
sourceFactory sourceFactory
hookSource Source
clientManager *config.ClientManager
convertor *convertor
namespaceMatcher *namespace.Matcher
dispatcher Dispatcher
}
- vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/generic/webhook.go:76
return &Webhook{
Handler: handler,
sourceFactory: sourceFactory,
clientManager: &cm,
convertor: &convertor{},
namespaceMatcher: &namespace.Matcher{},
dispatcher: dispatcherFactory(&cm),
}, nil
- vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/generic/webhook.go:188
if oldObj := attr.GetOldObject(); oldObj != nil {
out, err := a.convertor.ConvertToGVK(oldObj, attr.GetKind())
if err != nil {
return apierrors.NewInternalError(err)
}
versionedAttr.VersionedOldObject = out
}
- vendor/k8s.io/apiserver/pkg/admission/plugin/webhook/generic/conversion.go:32
// ConvertToGVK converts object to the desired gvk.
func (c *convertor) ConvertToGVK(obj runtime.Object, gvk schema.GroupVersionKind) (runtime.Object, error) {
// Unlike other resources, custom resources do not have internal version, so
// if obj is a custom resource, it should not need conversion.
if obj.GetObjectKind().GroupVersionKind() == gvk {
return obj, nil
}
out, err := c.Scheme.New(gvk)
if err != nil {
return nil, err
}
err = c.Scheme.Convert(obj, out, nil)
if err != nil {
return nil, err
}
return out, nil
}
- vendor/k8s.io/apimachinery/pkg/runtime/scheme.go:288
func (s *Scheme) New(kind schema.GroupVersionKind) (Object, error) {
if t, exists := s.gvkToType[kind]; exists {
return reflect.New(t).Interface().(Object), nil
}
if t, exists := s.unversionedKinds[kind.Kind]; exists {
return reflect.New(t).Interface().(Object), nil
}
return nil, NewNotRegisteredErrForKind(kind)
}