mirror of
https://github.com/kubernetes/client-go.git
synced 2025-07-19 17:39:56 +00:00
Merge pull request #132004 from alvaroaleman/fix-fasf
ManagedFieldsObjectTracker: Reload scheme Kubernetes-commit: c5c87bde8f0ff405f89ead5aff9f609b42e29b55
This commit is contained in:
commit
e9ca982cec
@ -631,7 +631,7 @@ type managedFieldObjectTracker struct {
|
||||
ObjectTracker
|
||||
scheme ObjectScheme
|
||||
objectConverter runtime.ObjectConvertor
|
||||
mapper meta.RESTMapper
|
||||
mapper func() meta.RESTMapper
|
||||
typeConverter managedfields.TypeConverter
|
||||
}
|
||||
|
||||
@ -644,8 +644,10 @@ func NewFieldManagedObjectTracker(scheme *runtime.Scheme, decoder runtime.Decode
|
||||
ObjectTracker: NewObjectTracker(scheme, decoder),
|
||||
scheme: scheme,
|
||||
objectConverter: scheme,
|
||||
mapper: testrestmapper.TestOnlyStaticRESTMapper(scheme),
|
||||
typeConverter: typeConverter,
|
||||
mapper: func() meta.RESTMapper {
|
||||
return testrestmapper.TestOnlyStaticRESTMapper(scheme)
|
||||
},
|
||||
typeConverter: typeConverter,
|
||||
}
|
||||
}
|
||||
|
||||
@ -654,7 +656,7 @@ func (t *managedFieldObjectTracker) Create(gvr schema.GroupVersionResource, obj
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
gvk, err := t.mapper.KindFor(gvr)
|
||||
gvk, err := t.mapper().KindFor(gvr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -698,8 +700,9 @@ func (t *managedFieldObjectTracker) Update(gvr schema.GroupVersionResource, obj
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
gvk, err := t.mapper.KindFor(gvr)
|
||||
gvk, err := t.mapper().KindFor(gvr)
|
||||
if err != nil {
|
||||
println("kindfor")
|
||||
return err
|
||||
}
|
||||
mgr, err := t.fieldManagerFor(gvk)
|
||||
@ -728,7 +731,7 @@ func (t *managedFieldObjectTracker) Patch(gvr schema.GroupVersionResource, patch
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
gvk, err := t.mapper.KindFor(gvr)
|
||||
gvk, err := t.mapper().KindFor(gvr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -757,7 +760,7 @@ func (t *managedFieldObjectTracker) Apply(gvr schema.GroupVersionResource, apply
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
gvk, err := t.mapper.KindFor(gvr)
|
||||
gvk, err := t.mapper().KindFor(gvr)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -661,3 +661,25 @@ var configMapTypedSchema = typed.YAMLObject(`types:
|
||||
namedType: __untyped_deduced_
|
||||
elementRelationship: separable
|
||||
`)
|
||||
|
||||
func TestManagedFieldsObjectTrackerReloadsScheme(t *testing.T) {
|
||||
cmResource := schema.GroupVersionResource{Version: "v1", Resource: "configmaps"}
|
||||
scheme := runtime.NewScheme()
|
||||
codecs := serializer.NewCodecFactory(scheme)
|
||||
|
||||
// Create tracker without registered ConfigMap type
|
||||
tracker := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), configMapTypeConverter(scheme))
|
||||
|
||||
cm := &v1.ConfigMap{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: "test-cm",
|
||||
},
|
||||
Data: map[string]string{"key": "value"},
|
||||
}
|
||||
|
||||
// Register the type in scheme
|
||||
scheme.AddKnownTypes(cmResource.GroupVersion(), &v1.ConfigMap{})
|
||||
|
||||
err := tracker.Create(cmResource, cm, "default", metav1.CreateOptions{FieldManager: "test-manager"})
|
||||
assert.NoError(t, err, "Create should succeed after registering type")
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user