1
16
17 package managedfields
18
19 import (
20 "fmt"
21
22 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
23 "k8s.io/apimachinery/pkg/runtime"
24 "k8s.io/apimachinery/pkg/runtime/schema"
25 "k8s.io/apimachinery/pkg/util/managedfields/internal"
26 "sigs.k8s.io/structured-merge-diff/v4/fieldpath"
27 )
28
29
30
31 type FieldManager = internal.FieldManager
32
33
34
35 func NewDefaultFieldManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, hub schema.GroupVersion, subresource string, resetFields map[fieldpath.APIVersion]*fieldpath.Set) (*FieldManager, error) {
36 f, err := internal.NewStructuredMergeManager(typeConverter, objectConverter, objectDefaulter, kind.GroupVersion(), hub, resetFields)
37 if err != nil {
38 return nil, fmt.Errorf("failed to create field manager: %v", err)
39 }
40 return internal.NewDefaultFieldManager(f, typeConverter, objectConverter, objectCreater, kind, subresource), nil
41 }
42
43
44
45
46 func NewDefaultCRDFieldManager(typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectDefaulter runtime.ObjectDefaulter, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, hub schema.GroupVersion, subresource string, resetFields map[fieldpath.APIVersion]*fieldpath.Set) (_ *FieldManager, err error) {
47 f, err := internal.NewCRDStructuredMergeManager(typeConverter, objectConverter, objectDefaulter, kind.GroupVersion(), hub, resetFields)
48 if err != nil {
49 return nil, fmt.Errorf("failed to create field manager: %v", err)
50 }
51 return internal.NewDefaultFieldManager(f, typeConverter, objectConverter, objectCreater, kind, subresource), nil
52 }
53
54 func ValidateManagedFields(encodedManagedFields []metav1.ManagedFieldsEntry) error {
55 _, err := internal.DecodeManagedFields(encodedManagedFields)
56 return err
57 }
58
View as plain text