Skip to content

Commit e1fd0d3

Browse files
Merge pull request #900 from ecordell/fix-owner
bug:1691546 fix(catalog): do not add owner references to clusterroles or crbs
2 parents d504b47 + 3ffb6d1 commit e1fd0d3

File tree

2 files changed

+9
-23
lines changed

2 files changed

+9
-23
lines changed

pkg/controller/operators/catalog/operator.go

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1146,16 +1146,11 @@ func (o *Operator) ExecutePlan(plan *v1alpha1.InstallPlan) error {
11461146
return errorwrap.Wrapf(err, "error parsing step manifest: %s", step.Resource.Name)
11471147
}
11481148

1149-
// Update UIDs on all CSV OwnerReferences
1150-
updated, err := o.getUpdatedOwnerReferences(cr.OwnerReferences, plan.Namespace)
1151-
if err != nil {
1152-
return errorwrap.Wrapf(err, "error generating ownerrefs for clusterrole %s", cr.GetName())
1153-
}
1154-
cr.OwnerReferences = updated
1155-
11561149
// Attempt to create the ClusterRole.
11571150
_, err = o.opClient.KubernetesInterface().RbacV1().ClusterRoles().Create(&cr)
11581151
if k8serrors.IsAlreadyExists(err) {
1152+
// if we're updating, point owner to the newest csv
1153+
cr.Labels[ownerutil.OwnerKey] = step.Resolving
11591154
_, err = o.opClient.UpdateClusterRole(&cr)
11601155
if err != nil {
11611156
return errorwrap.Wrapf(err, "error updating clusterrole %s", cr.GetName())
@@ -1176,17 +1171,11 @@ func (o *Operator) ExecutePlan(plan *v1alpha1.InstallPlan) error {
11761171
return errorwrap.Wrapf(err, "error parsing step manifest: %s", step.Resource.Name)
11771172
}
11781173

1179-
// Update UIDs on all CSV OwnerReferences
1180-
updated, err := o.getUpdatedOwnerReferences(rb.OwnerReferences, plan.Namespace)
1181-
if err != nil {
1182-
return errorwrap.Wrapf(err, "error generating ownerrefs for clusterrolebinding %s", rb.GetName())
1183-
}
1184-
rb.OwnerReferences = updated
1185-
11861174
// Attempt to create the ClusterRoleBinding.
11871175
_, err = o.opClient.KubernetesInterface().RbacV1().ClusterRoleBindings().Create(&rb)
11881176
if k8serrors.IsAlreadyExists(err) {
1189-
rb.SetNamespace(plan.Namespace)
1177+
// if we're updating, point owner to the newest csv
1178+
rb.Labels[ownerutil.OwnerKey] = step.Resolving
11901179
_, err = o.opClient.UpdateClusterRoleBinding(&rb)
11911180
if err != nil {
11921181
return errorwrap.Wrapf(err, "error updating clusterrolebinding %s", rb.GetName())

pkg/controller/registry/resolver/rbac.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,17 +118,15 @@ func RBACForClusterServiceVersion(csv *v1alpha1.ClusterServiceVersion) (map[stri
118118
if _, ok := permissions[permission.ServiceAccountName]; !ok {
119119
serviceAccount := &corev1.ServiceAccount{}
120120
serviceAccount.SetName(permission.ServiceAccountName)
121-
ownerutil.AddNonBlockingOwner(serviceAccount, csv)
122121

123122
permissions[permission.ServiceAccountName] = NewOperatorPermissions(serviceAccount)
124123
}
125124

126125
// Create ClusterRole
127126
role := &rbacv1.ClusterRole{
128127
ObjectMeta: metav1.ObjectMeta{
129-
Name: generateName(csv.GetName()),
130-
OwnerReferences: []metav1.OwnerReference{ownerutil.NonBlockingOwner(csv)},
131-
Labels: ownerutil.OwnerLabel(csv, v1alpha1.ClusterServiceVersionKind),
128+
Name: generateName(csv.GetName()),
129+
Labels: ownerutil.OwnerLabel(csv, v1alpha1.ClusterServiceVersionKind),
132130
},
133131
Rules: permission.Rules,
134132
}
@@ -137,10 +135,9 @@ func RBACForClusterServiceVersion(csv *v1alpha1.ClusterServiceVersion) (map[stri
137135
// Create ClusterRoleBinding
138136
roleBinding := &rbacv1.ClusterRoleBinding{
139137
ObjectMeta: metav1.ObjectMeta{
140-
Name: generateName(fmt.Sprintf("%s-%s", role.GetName(), permission.ServiceAccountName)),
141-
Namespace: csv.GetNamespace(),
142-
OwnerReferences: []metav1.OwnerReference{ownerutil.NonBlockingOwner(csv)},
143-
Labels: ownerutil.OwnerLabel(csv, v1alpha1.ClusterServiceVersionKind),
138+
Name: generateName(fmt.Sprintf("%s-%s", role.GetName(), permission.ServiceAccountName)),
139+
Namespace: csv.GetNamespace(),
140+
Labels: ownerutil.OwnerLabel(csv, v1alpha1.ClusterServiceVersionKind),
144141
},
145142
RoleRef: rbacv1.RoleRef{
146143
Kind: "ClusterRole",

0 commit comments

Comments
 (0)