...
1 package patch
2
3 import (
4 "context"
5
6 "sigs.k8s.io/controller-runtime/pkg/client"
7 )
8
9
10
11
12 type SerialPatcher struct {
13 client client.Client
14 beforeObject client.Object
15 }
16
17
18
19 func NewSerialPatcher(obj client.Object, c client.Client) *SerialPatcher {
20 return &SerialPatcher{
21 client: c,
22 beforeObject: obj.DeepCopyObject().(client.Object),
23 }
24 }
25
26
27
28 func (sp *SerialPatcher) Patch(ctx context.Context, obj client.Object, options ...Option) error {
29
30 patcher, err := NewHelper(sp.beforeObject, sp.client)
31 if err != nil {
32 return err
33 }
34
35
36 if err := patcher.Patch(ctx, obj, options...); err != nil {
37 return err
38 }
39
40
41 sp.beforeObject = obj.DeepCopyObject().(client.Object)
42
43 return nil
44 }
45
View as plain text