Skip to content

Commit b903231

Browse files
committed
subscription owned by operator
1 parent 94370c4 commit b903231

File tree

3 files changed

+24
-2
lines changed

3 files changed

+24
-2
lines changed

internal/controller/pattern_controller.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,19 @@ func (r *PatternReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
162162

163163
// -- GitOps Subscription
164164
targetSub, _ := newSubscriptionFromConfigMap(r.fullClient)
165+
if operatorConfigMap, err := GetOperatorConfigmap(); err == nil {
166+
if err := controllerutil.SetOwnerReference(operatorConfigMap, targetSub, r.Scheme); err != nil {
167+
return r.actionPerformed(qualifiedInstance, "error setting owner of gitops subscription", err)
168+
}
169+
} else {
170+
return r.actionPerformed(qualifiedInstance, "error getting operator configmap", err)
171+
}
172+
165173
sub, _ := getSubscription(r.olmClient, targetSub.Name)
166174
if sub == nil {
167175
err = createSubscription(r.olmClient, targetSub)
168176
return r.actionPerformed(qualifiedInstance, "create gitops subscription", err)
169-
} else if owner, ok := sub.Labels["app.kubernetes.io/managed-by"]; ok && owner == "patterns-operator" {
177+
} else if ownedBySame(targetSub, sub) {
170178
// Check version/channel etc
171179
// Dangerous if multiple patterns do not agree, or automatic upgrades are in place...
172180
changed, errSub := updateSubscription(r.olmClient, targetSub, sub)

internal/controller/subscription.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ func newSubscriptionFromConfigMap(r kubernetes.Interface) (*operatorv1alpha1.Sub
7373
ObjectMeta: metav1.ObjectMeta{
7474
Name: GitOpsDefaultPackageName,
7575
Namespace: SubscriptionNamespace,
76-
Labels: map[string]string{"app.kubernetes.io/managed-by": "patterns-operator"},
7776
},
7877
Spec: spec,
7978
}

internal/controller/utils.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import (
4040
kerrors "k8s.io/apimachinery/pkg/api/errors"
4141
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
4242
"k8s.io/client-go/kubernetes"
43+
ctrl "sigs.k8s.io/controller-runtime"
4344

4445
configv1 "github.com/openshift/api/config/v1"
4546
)
@@ -404,3 +405,17 @@ func IsCommonSlimmed(patternPath string) bool {
404405
}
405406
return true
406407
}
408+
409+
// Gets the configmap for the Patterns Operator. (Used as an owner reference for the operator itself.)
410+
func GetOperatorConfigmap() (*corev1.ConfigMap, error) {
411+
config, err := ctrl.GetConfig()
412+
if err != nil {
413+
return nil, fmt.Errorf("failed to get config: %s", err)
414+
}
415+
clientset, err := kubernetes.NewForConfig(config)
416+
if err != nil {
417+
return nil, fmt.Errorf("failed to call NewForConfig: %s", err)
418+
}
419+
420+
return clientset.CoreV1().ConfigMaps(OperatorNamespace).Get(context.Background(), OperatorConfigMap, metav1.GetOptions{})
421+
}

0 commit comments

Comments
 (0)