Use patch instead of update when adding finalizers

This is needed to prevent source-controller from managing all the fields under `.spec`.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
This commit is contained in:
Stefan Prodan 2022-01-13 18:18:32 +02:00
parent 29816d5f62
commit 5be33770e8
No known key found for this signature in database
GPG Key ID: 3299AEB0E4085BAF
4 changed files with 8 additions and 4 deletions

View File

@ -97,8 +97,9 @@ func (r *BucketReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctr
// Add our finalizer if it does not exist
if !controllerutil.ContainsFinalizer(&bucket, sourcev1.SourceFinalizer) {
patch := client.MergeFrom(bucket.DeepCopy())
controllerutil.AddFinalizer(&bucket, sourcev1.SourceFinalizer)
if err := r.Update(ctx, &bucket); err != nil {
if err := r.Patch(ctx, &bucket, patch); err != nil {
log.Error(err, "unable to register finalizer")
return ctrl.Result{}, err
}

View File

@ -100,8 +100,9 @@ func (r *GitRepositoryReconciler) Reconcile(ctx context.Context, req ctrl.Reques
// Add our finalizer if it does not exist
if !controllerutil.ContainsFinalizer(&repository, sourcev1.SourceFinalizer) {
patch := client.MergeFrom(repository.DeepCopy())
controllerutil.AddFinalizer(&repository, sourcev1.SourceFinalizer)
if err := r.Update(ctx, &repository); err != nil {
if err := r.Patch(ctx, &repository, patch); err != nil {
log.Error(err, "unable to register finalizer")
return ctrl.Result{}, err
}

View File

@ -126,8 +126,9 @@ func (r *HelmChartReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
// Add our finalizer if it does not exist
if !controllerutil.ContainsFinalizer(&chart, sourcev1.SourceFinalizer) {
patch := client.MergeFrom(chart.DeepCopy())
controllerutil.AddFinalizer(&chart, sourcev1.SourceFinalizer)
if err := r.Update(ctx, &chart); err != nil {
if err := r.Patch(ctx, &chart, patch); err != nil {
log.Error(err, "unable to register finalizer")
return ctrl.Result{}, err
}

View File

@ -93,8 +93,9 @@ func (r *HelmRepositoryReconciler) Reconcile(ctx context.Context, req ctrl.Reque
// Add our finalizer if it does not exist
if !controllerutil.ContainsFinalizer(&repository, sourcev1.SourceFinalizer) {
patch := client.MergeFrom(repository.DeepCopy())
controllerutil.AddFinalizer(&repository, sourcev1.SourceFinalizer)
if err := r.Update(ctx, &repository); err != nil {
if err := r.Patch(ctx, &repository, patch); err != nil {
log.Error(err, "unable to register finalizer")
return ctrl.Result{}, err
}