@@ -162,7 +162,10 @@ func (r *PatternReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
162162 if err = r .createPatternsOperatorConfigMap (instance ); err != nil {
163163 return r .actionPerformed (instance , "failed to create the configuration ConfigMap" , err )
164164 }
165- } else { // If the ConfigMap exists, we get the configuration from Data
165+ } else { // If the ConfigMap exists, we set the ownership and get the configuration from Data
166+ if err = r .setPatternsOperatorConfigMapOwnership (configCM , instance ); err != nil {
167+ return r .actionPerformed (instance , "failed to set ownership of configuration ConfigMap" , err )
168+ }
166169 patternsOperatorConfig = configCM .Data
167170 }
168171
@@ -913,6 +916,7 @@ func (r *PatternReconciler) SetupWithManager(mgr ctrl.Manager) error {
913916 var ctrlErr error
914917 r .ctrl , ctrlErr = ctrl .NewControllerManagedBy (mgr ).
915918 For (& api.Pattern {}).
919+ Owns (& corev1.ConfigMap {}).
916920 Build (r )
917921 return ctrlErr
918922}
@@ -1342,6 +1346,9 @@ func (r *PatternReconciler) createPatternsOperatorConfigMap(p *api.Pattern) erro
13421346 Namespace : DetectOperatorNamespace (),
13431347 },
13441348 }
1349+ if err := controllerutil .SetControllerReference (p , & configMap , r .Scheme ); err != nil {
1350+ return err
1351+ }
13451352 if _ , err := r .fullClient .CoreV1 ().ConfigMaps (DetectOperatorNamespace ()).Create (context .Background (), & configMap , metav1.CreateOptions {}); err != nil {
13461353 return err
13471354 }
@@ -1360,6 +1367,21 @@ func (r *PatternReconciler) getPatternsOperatorConfigMap() (*corev1.ConfigMap, e
13601367 return cm , nil
13611368}
13621369
1370+ func (r * PatternReconciler ) setPatternsOperatorConfigMapOwnership (cm * corev1.ConfigMap , p * api.Pattern ) error {
1371+ controllerRef := metav1 .GetControllerOf (cm )
1372+ if controllerRef != nil && controllerRef .UID == p .GetUID () && controllerRef .Kind == p .Kind && controllerRef .APIVersion == p .APIVersion {
1373+ return nil
1374+ }
1375+ if err := controllerutil .SetControllerReference (p , cm , r .Scheme ); err != nil {
1376+ return err
1377+ }
1378+ _ , err := r .fullClient .CoreV1 ().ConfigMaps (DetectOperatorNamespace ()).Update (context .Background (), cm , metav1.UpdateOptions {})
1379+ if err != nil {
1380+ return err
1381+ }
1382+ return nil
1383+ }
1384+
13631385func DropLocalGitPaths () error {
13641386 // If there is a completely new local folder, let's remove the old one
13651387 // User changed the target repo
0 commit comments