@@ -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
4142const (
@@ -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