Skip to content

Commit f7655a7

Browse files
committed
Set Pattern Operator config ConfigMap ownership to Pattern CR
1 parent d610822 commit f7655a7

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

internal/controller/pattern_controller.go

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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+
13631385
func 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

Comments
 (0)