Skip to content

Commit bdfb723

Browse files
authored
merge meta (labels and annotations) instead of overwriting them; avoid setting managed-component annotation for non managed resources (#27)
1 parent 1d8a803 commit bdfb723

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

pkg/reconciler/resource.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import (
3636
"sigs.k8s.io/controller-runtime/pkg/reconcile"
3737

3838
"github.com/banzaicloud/k8s-objectmatcher/patch"
39+
"github.com/banzaicloud/operator-tools/pkg/types"
3940
)
4041

4142
const (
@@ -222,6 +223,30 @@ func (r *GenericResourceReconciler) ReconcileResource(desired runtime.Object, de
222223
log.Info(fmt.Sprintf("object %s is being deleted, backing off", metaObject.GetSelfLink()))
223224
return &reconcile.Result{RequeueAfter: time.Second * 2}, nil
224225
}
226+
if !created {
227+
if desiredMetaObject, ok := desired.(metav1.Object); ok {
228+
base := types.MetaBase{
229+
Annotations: desiredMetaObject.GetAnnotations(),
230+
Labels: desiredMetaObject.GetLabels(),
231+
}
232+
if metaObject, ok := current.DeepCopyObject().(metav1.Object); ok {
233+
merged := base.Merge(metav1.ObjectMeta{
234+
Labels: metaObject.GetLabels(),
235+
Annotations: metaObject.GetAnnotations(),
236+
})
237+
desiredMetaObject.SetAnnotations(merged.Annotations)
238+
desiredMetaObject.SetLabels(merged.Labels)
239+
}
240+
}
241+
242+
if _, ok := metaObject.GetAnnotations()[types.BanzaiCloudManagedComponent]; !ok {
243+
if desiredMetaObject, ok := desired.(metav1.Object); ok {
244+
a := desiredMetaObject.GetAnnotations()
245+
delete(a, types.BanzaiCloudManagedComponent)
246+
desiredMetaObject.SetAnnotations(a)
247+
}
248+
}
249+
}
225250
}
226251

227252
if ds, ok := desiredState.(DesiredStateShouldUpdate); ok {

0 commit comments

Comments
 (0)