managedfields: Remove gvk from SkipNonApplied
Let's remove the dependency on the GVK in SkipNonApplied internal manager, since we can deduce the type from the given object.
This commit is contained in:
		@@ -66,7 +66,7 @@ func NewDefaultFieldManager(f Manager, typeConverter TypeConverter, objectConver
 | 
				
			|||||||
									NewStripMetaManager(f),
 | 
														NewStripMetaManager(f),
 | 
				
			||||||
								), kind.GroupVersion(), subresource,
 | 
													), kind.GroupVersion(), subresource,
 | 
				
			||||||
							), DefaultMaxUpdateManagers,
 | 
												), DefaultMaxUpdateManagers,
 | 
				
			||||||
						), objectCreater, kind, DefaultTrackOnCreateProbability,
 | 
											), objectCreater, DefaultTrackOnCreateProbability,
 | 
				
			||||||
					), typeConverter, objectConverter, kind.GroupVersion(),
 | 
										), typeConverter, objectConverter, kind.GroupVersion(),
 | 
				
			||||||
				),
 | 
									),
 | 
				
			||||||
			), kind,
 | 
								), kind,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,13 +22,11 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/api/meta"
 | 
						"k8s.io/apimachinery/pkg/api/meta"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime"
 | 
						"k8s.io/apimachinery/pkg/runtime"
 | 
				
			||||||
	"k8s.io/apimachinery/pkg/runtime/schema"
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type skipNonAppliedManager struct {
 | 
					type skipNonAppliedManager struct {
 | 
				
			||||||
	fieldManager           Manager
 | 
						fieldManager           Manager
 | 
				
			||||||
	objectCreater          runtime.ObjectCreater
 | 
						objectCreater          runtime.ObjectCreater
 | 
				
			||||||
	gvk                    schema.GroupVersionKind
 | 
					 | 
				
			||||||
	beforeApplyManagerName string
 | 
						beforeApplyManagerName string
 | 
				
			||||||
	probability            float32
 | 
						probability            float32
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -36,17 +34,16 @@ type skipNonAppliedManager struct {
 | 
				
			|||||||
var _ Manager = &skipNonAppliedManager{}
 | 
					var _ Manager = &skipNonAppliedManager{}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NewSkipNonAppliedManager creates a new wrapped FieldManager that only starts tracking managers after the first apply.
 | 
					// NewSkipNonAppliedManager creates a new wrapped FieldManager that only starts tracking managers after the first apply.
 | 
				
			||||||
func NewSkipNonAppliedManager(fieldManager Manager, objectCreater runtime.ObjectCreater, gvk schema.GroupVersionKind) Manager {
 | 
					func NewSkipNonAppliedManager(fieldManager Manager, objectCreater runtime.ObjectCreater) Manager {
 | 
				
			||||||
	return NewProbabilisticSkipNonAppliedManager(fieldManager, objectCreater, gvk, 0.0)
 | 
						return NewProbabilisticSkipNonAppliedManager(fieldManager, objectCreater, 0.0)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// NewProbabilisticSkipNonAppliedManager creates a new wrapped FieldManager that starts tracking managers after the first apply,
 | 
					// NewProbabilisticSkipNonAppliedManager creates a new wrapped FieldManager that starts tracking managers after the first apply,
 | 
				
			||||||
// or starts tracking on create with p probability.
 | 
					// or starts tracking on create with p probability.
 | 
				
			||||||
func NewProbabilisticSkipNonAppliedManager(fieldManager Manager, objectCreater runtime.ObjectCreater, gvk schema.GroupVersionKind, p float32) Manager {
 | 
					func NewProbabilisticSkipNonAppliedManager(fieldManager Manager, objectCreater runtime.ObjectCreater, p float32) Manager {
 | 
				
			||||||
	return &skipNonAppliedManager{
 | 
						return &skipNonAppliedManager{
 | 
				
			||||||
		fieldManager:           fieldManager,
 | 
							fieldManager:           fieldManager,
 | 
				
			||||||
		objectCreater:          objectCreater,
 | 
							objectCreater:          objectCreater,
 | 
				
			||||||
		gvk:                    gvk,
 | 
					 | 
				
			||||||
		beforeApplyManagerName: "before-first-apply",
 | 
							beforeApplyManagerName: "before-first-apply",
 | 
				
			||||||
		probability:            p,
 | 
							probability:            p,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -78,9 +75,10 @@ func (f *skipNonAppliedManager) Update(liveObj, newObj runtime.Object, managed M
 | 
				
			|||||||
// Apply implements Manager.
 | 
					// Apply implements Manager.
 | 
				
			||||||
func (f *skipNonAppliedManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error) {
 | 
					func (f *skipNonAppliedManager) Apply(liveObj, appliedObj runtime.Object, managed Managed, fieldManager string, force bool) (runtime.Object, Managed, error) {
 | 
				
			||||||
	if len(managed.Fields()) == 0 {
 | 
						if len(managed.Fields()) == 0 {
 | 
				
			||||||
		emptyObj, err := f.objectCreater.New(f.gvk)
 | 
							gvk := appliedObj.GetObjectKind().GroupVersionKind()
 | 
				
			||||||
 | 
							emptyObj, err := f.objectCreater.New(gvk)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
			return nil, nil, fmt.Errorf("failed to create empty object of type %v: %v", f.gvk, err)
 | 
								return nil, nil, fmt.Errorf("failed to create empty object of type %v: %v", gvk, err)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		liveObj, managed, err = f.fieldManager.Update(emptyObj, liveObj, managed, f.beforeApplyManagerName)
 | 
							liveObj, managed, err = f.fieldManager.Update(emptyObj, liveObj, managed, f.beforeApplyManagerName)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -31,11 +31,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func TestNoUpdateBeforeFirstApply(t *testing.T) {
 | 
					func TestNoUpdateBeforeFirstApply(t *testing.T) {
 | 
				
			||||||
	f := internaltesting.NewTestFieldManagerImpl(fakeTypeConverter, schema.FromAPIVersionAndKind("v1", "Pod"), "", func(m internal.Manager) internal.Manager {
 | 
						f := internaltesting.NewTestFieldManagerImpl(fakeTypeConverter, schema.FromAPIVersionAndKind("v1", "Pod"), "", func(m internal.Manager) internal.Manager {
 | 
				
			||||||
		return internal.NewSkipNonAppliedManager(
 | 
							return internal.NewSkipNonAppliedManager(m, &internaltesting.FakeObjectCreater{})
 | 
				
			||||||
			m,
 | 
					 | 
				
			||||||
			&internaltesting.FakeObjectCreater{},
 | 
					 | 
				
			||||||
			schema.FromAPIVersionAndKind("v1", "Pod"),
 | 
					 | 
				
			||||||
		)
 | 
					 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	appliedObj := &unstructured.Unstructured{Object: map[string]interface{}{}}
 | 
						appliedObj := &unstructured.Unstructured{Object: map[string]interface{}{}}
 | 
				
			||||||
@@ -71,11 +67,7 @@ func TestNoUpdateBeforeFirstApply(t *testing.T) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
func TestUpdateBeforeFirstApply(t *testing.T) {
 | 
					func TestUpdateBeforeFirstApply(t *testing.T) {
 | 
				
			||||||
	f := internaltesting.NewTestFieldManagerImpl(fakeTypeConverter, schema.FromAPIVersionAndKind("v1", "Pod"), "", func(m internal.Manager) internal.Manager {
 | 
						f := internaltesting.NewTestFieldManagerImpl(fakeTypeConverter, schema.FromAPIVersionAndKind("v1", "Pod"), "", func(m internal.Manager) internal.Manager {
 | 
				
			||||||
		return internal.NewSkipNonAppliedManager(
 | 
							return internal.NewSkipNonAppliedManager(m, &internaltesting.FakeObjectCreater{})
 | 
				
			||||||
			m,
 | 
					 | 
				
			||||||
			&internaltesting.FakeObjectCreater{},
 | 
					 | 
				
			||||||
			schema.FromAPIVersionAndKind("v1", "Pod"),
 | 
					 | 
				
			||||||
		)
 | 
					 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	updatedObj := &unstructured.Unstructured{}
 | 
						updatedObj := &unstructured.Unstructured{}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -145,7 +145,7 @@ func NewTestFieldManagerImpl(typeConverter managedfields.TypeConverter, gvk sche
 | 
				
			|||||||
						internal.NewManagedFieldsUpdater(
 | 
											internal.NewManagedFieldsUpdater(
 | 
				
			||||||
							internal.NewStripMetaManager(f),
 | 
												internal.NewStripMetaManager(f),
 | 
				
			||||||
						), gvk.GroupVersion(), subresource,
 | 
											), gvk.GroupVersion(), subresource,
 | 
				
			||||||
					), &FakeObjectCreater{}, gvk, internal.DefaultTrackOnCreateProbability,
 | 
										), &FakeObjectCreater{}, internal.DefaultTrackOnCreateProbability,
 | 
				
			||||||
				), typeConverter, &FakeObjectConvertor{}, gvk.GroupVersion(),
 | 
									), typeConverter, &FakeObjectConvertor{}, gvk.GroupVersion(),
 | 
				
			||||||
			),
 | 
								),
 | 
				
			||||||
		), gvk,
 | 
							), gvk,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user