generated from kyma-project/template-repository
-
Notifications
You must be signed in to change notification settings - Fork 12
/
addFinalizer.go
29 lines (24 loc) · 941 Bytes
/
addFinalizer.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package nfsinstance
import (
"context"
cloudcontrolv1beta1 "github.com/kyma-project/cloud-manager/api/cloud-control/v1beta1"
"github.com/kyma-project/cloud-manager/pkg/composed"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
)
func addFinalizer(ctx context.Context, state composed.State) (error, context.Context) {
// Object is being deleted, don't add finalizer
if composed.MarkedForDeletionPredicate(ctx, state) {
return nil, nil
}
// If finalizer already present, don't add it again.
if controllerutil.ContainsFinalizer(state.Obj(), cloudcontrolv1beta1.FinalizerName) {
return nil, nil
}
// Add finalizer
controllerutil.AddFinalizer(state.Obj(), cloudcontrolv1beta1.FinalizerName)
if err := state.UpdateObj(ctx); err != nil {
return composed.LogErrorAndReturn(err, "Error adding Finalizer", composed.StopWithRequeue, ctx)
}
// Requeue to reload the object
return composed.StopWithRequeue, nil
}