Skip to content

Commit 05a0149

Browse files
committed
do not setup ownerrefs for clusterscoped/cross-namespace objects
1 parent 0780074 commit 05a0149

13 files changed

+49
-40
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ test-unit: verify
2121
./hack/test-go.sh ./cmd/... ./pkg/...
2222

2323
test-e2e:
24-
GOCACHE=off ./hack/test-go.sh -timeout 20m -v$${WHAT:+ -run="$$WHAT"} ./test/e2e/
24+
GOCACHE=off ./hack/test-go.sh -timeout 30m -v$${WHAT:+ -run="$$WHAT"} ./test/e2e/
2525

2626
verify:
2727
hack/verify.sh

pkg/resource/caconfig.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
configlisters "github.com/openshift/client-go/config/listers/config/v1"
1212
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
1313
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
14-
"github.com/openshift/cluster-image-registry-operator/pkg/util"
1514
)
1615

1716
var _ Mutator = &generatorCAConfig{}
@@ -24,7 +23,6 @@ type generatorCAConfig struct {
2423
imageConfigName string
2524
name string
2625
namespace string
27-
owner metav1.OwnerReference
2826
}
2927

3028
func newGeneratorCAConfig(lister corelisters.ConfigMapNamespaceLister, imageConfigLister configlisters.ImageLister, openshiftConfigLister corelisters.ConfigMapNamespaceLister, client coreset.CoreV1Interface, params *parameters.Globals, cr *imageregistryv1.Config) *generatorCAConfig {
@@ -36,7 +34,6 @@ func newGeneratorCAConfig(lister corelisters.ConfigMapNamespaceLister, imageConf
3634
imageConfigName: params.ImageConfig.Name,
3735
name: params.CAConfig.Name,
3836
namespace: params.Deployment.Namespace,
39-
owner: util.AsOwner(cr),
4037
}
4138
}
4239

@@ -82,8 +79,6 @@ func (gcac *generatorCAConfig) expected() (runtime.Object, error) {
8279
}
8380
}
8481

85-
util.AddOwnerRefToObject(cm, gcac.owner)
86-
8782
return cm, nil
8883
}
8984

@@ -106,3 +101,7 @@ func (gcac *generatorCAConfig) Update(o runtime.Object) (bool, error) {
106101
func (gcac *generatorCAConfig) Delete(opts *metav1.DeleteOptions) error {
107102
return gcac.client.ConfigMaps(gcac.GetNamespace()).Delete(gcac.GetName(), opts)
108103
}
104+
105+
func (g *generatorCAConfig) Owned() bool {
106+
return true
107+
}

pkg/resource/clusterrole.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,19 @@ import (
88
rbaclisters "k8s.io/client-go/listers/rbac/v1"
99

1010
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
11-
"github.com/openshift/cluster-image-registry-operator/pkg/util"
1211
)
1312

1413
var _ Mutator = &generatorClusterRole{}
1514

1615
type generatorClusterRole struct {
1716
lister rbaclisters.ClusterRoleLister
1817
client rbacset.RbacV1Interface
19-
owner metav1.OwnerReference
2018
}
2119

2220
func newGeneratorClusterRole(lister rbaclisters.ClusterRoleLister, client rbacset.RbacV1Interface, cr *imageregistryv1.Config) *generatorClusterRole {
2321
return &generatorClusterRole{
2422
lister: lister,
2523
client: client,
26-
owner: util.AsOwner(cr),
2724
}
2825
}
2926

@@ -94,8 +91,6 @@ func (gcr *generatorClusterRole) expected() (runtime.Object, error) {
9491
},
9592
}
9693

97-
util.AddOwnerRefToObject(role, gcr.owner)
98-
9994
return role, nil
10095
}
10196

@@ -118,3 +113,7 @@ func (gcr *generatorClusterRole) Update(o runtime.Object) (bool, error) {
118113
func (gcr *generatorClusterRole) Delete(opts *metav1.DeleteOptions) error {
119114
return gcr.client.ClusterRoles().Delete(gcr.GetName(), opts)
120115
}
116+
117+
func (g *generatorClusterRole) Owned() bool {
118+
return true
119+
}

pkg/resource/clusterrolebinding.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99

1010
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
1111
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
12-
"github.com/openshift/cluster-image-registry-operator/pkg/util"
1312
)
1413

1514
var _ Mutator = &generatorClusterRoleBinding{}
@@ -19,7 +18,6 @@ type generatorClusterRoleBinding struct {
1918
client rbacset.RbacV1Interface
2019
saName string
2120
saNamespace string
22-
owner metav1.OwnerReference
2321
}
2422

2523
func newGeneratorClusterRoleBinding(lister rbaclisters.ClusterRoleBindingLister, client rbacset.RbacV1Interface, params *parameters.Globals, cr *imageregistryv1.Config) *generatorClusterRoleBinding {
@@ -28,7 +26,6 @@ func newGeneratorClusterRoleBinding(lister rbaclisters.ClusterRoleBindingLister,
2826
client: client,
2927
saName: params.Pod.ServiceAccount,
3028
saNamespace: params.Deployment.Namespace,
31-
owner: util.AsOwner(cr),
3229
}
3330
}
3431

@@ -66,8 +63,6 @@ func (gcrb *generatorClusterRoleBinding) expected() (runtime.Object, error) {
6663
},
6764
}
6865

69-
util.AddOwnerRefToObject(crb, gcrb.owner)
70-
7166
return crb, nil
7267
}
7368

@@ -90,3 +85,7 @@ func (gcrb *generatorClusterRoleBinding) Update(o runtime.Object) (bool, error)
9085
func (gcrb *generatorClusterRoleBinding) Delete(opts *metav1.DeleteOptions) error {
9186
return gcrb.client.ClusterRoleBindings().Delete(gcrb.GetName(), opts)
9287
}
88+
89+
func (g *generatorClusterRoleBinding) Owned() bool {
90+
return true
91+
}

pkg/resource/deployment.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
1313
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
1414
"github.com/openshift/cluster-image-registry-operator/pkg/storage"
15-
"github.com/openshift/cluster-image-registry-operator/pkg/util"
1615
)
1716

1817
var _ Mutator = &generatorDeployment{}
@@ -84,8 +83,6 @@ func (gd *generatorDeployment) expected() (runtime.Object, error) {
8483
},
8584
}
8685

87-
util.AddOwnerRefToObject(deploy, util.AsOwner(gd.cr))
88-
8986
return deploy, nil
9087
}
9188

@@ -108,3 +105,7 @@ func (gd *generatorDeployment) Update(o runtime.Object) (bool, error) {
108105
func (gd *generatorDeployment) Delete(opts *metav1.DeleteOptions) error {
109106
return gd.client.Deployments(gd.GetNamespace()).Delete(gd.GetName(), opts)
110107
}
108+
109+
func (g *generatorDeployment) Owned() bool {
110+
return true
111+
}

pkg/resource/generator.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,9 @@ func (g *Generator) Remove(cr *imageregistryv1.Config) error {
235235
PropagationPolicy: &propagationPolicy,
236236
}
237237
for _, gen := range generators {
238+
if !gen.Owned() {
239+
continue
240+
}
238241
if err := gen.Delete(opts); err != nil {
239242
if errors.IsNotFound(err) {
240243
continue

pkg/resource/imageconfig.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,11 @@ func (gic *generatorImageConfig) Delete(opts *metav1.DeleteOptions) error {
133133
return gic.configClient.Images().Delete(gic.GetName(), opts)
134134
}
135135

136+
func (g *generatorImageConfig) Owned() bool {
137+
// the registry operator can create and contribute to the imageconfig, but it doesn't own it.
138+
return false
139+
}
140+
136141
func (gic *generatorImageConfig) getRouteHostnames() ([]string, error) {
137142
var externalHostnames []string
138143

pkg/resource/nodecadaemon.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,3 +211,8 @@ func (ds *generatorNodeCADaemonSet) Update(o runtime.Object) (bool, error) {
211211
func (ds *generatorNodeCADaemonSet) Delete(opts *metav1.DeleteOptions) error {
212212
return ds.client.DaemonSets(ds.GetNamespace()).Delete(ds.GetName(), opts)
213213
}
214+
215+
func (ds *generatorNodeCADaemonSet) Owned() bool {
216+
// the nodeca daemon's lifecycle is not tied to the lifecycle of the registry
217+
return false
218+
}

pkg/resource/resource.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ type Mutator interface {
2121
Create() error
2222
Update(o runtime.Object) (bool, error)
2323
Delete(opts *metaapi.DeleteOptions) error
24+
// Owned indicates whether this resource is explicitly owned by the registry operator
25+
// and therefore should be removed when the registry config resource is removed.
26+
Owned() bool
2427
}
2528

2629
func Name(o Getter) string {

pkg/resource/route.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111

1212
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
1313
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
14-
"github.com/openshift/cluster-image-registry-operator/pkg/util"
1514
)
1615

1716
var _ Mutator = &generatorRoute{}
@@ -22,7 +21,6 @@ type generatorRoute struct {
2221
client routeset.RouteV1Interface
2322
namespace string
2423
serviceName string
25-
owner metav1.OwnerReference
2624
route imageregistryv1.ImageRegistryConfigRoute
2725
}
2826

@@ -33,7 +31,6 @@ func newGeneratorRoute(lister routelisters.RouteNamespaceLister, secretLister co
3331
client: client,
3432
namespace: params.Deployment.Namespace,
3533
serviceName: params.Service.Name,
36-
owner: util.AsOwner(cr),
3734
route: route,
3835
}
3936
}
@@ -83,9 +80,6 @@ func (gr *generatorRoute) expected() (runtime.Object, error) {
8380
r.Spec.TLS.CACertificate = v
8481
}
8582
}
86-
87-
util.AddOwnerRefToObject(r, gr.owner)
88-
8983
return r, nil
9084
}
9185

@@ -108,3 +102,7 @@ func (gr *generatorRoute) Update(o runtime.Object) (bool, error) {
108102
func (gr *generatorRoute) Delete(opts *metav1.DeleteOptions) error {
109103
return gr.client.Routes(gr.GetNamespace()).Delete(gr.GetName(), opts)
110104
}
105+
106+
func (g *generatorRoute) Owned() bool {
107+
return true
108+
}

pkg/resource/secret.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
1111
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
1212
"github.com/openshift/cluster-image-registry-operator/pkg/storage"
13-
"github.com/openshift/cluster-image-registry-operator/pkg/util"
1413
)
1514

1615
var _ Mutator = &generatorSecret{}
@@ -21,7 +20,6 @@ type generatorSecret struct {
2120
driver storage.Driver
2221
name string
2322
namespace string
24-
owner metav1.OwnerReference
2523
}
2624

2725
func newGeneratorSecret(lister corelisters.SecretNamespaceLister, client coreset.CoreV1Interface, driver storage.Driver, params *parameters.Globals, cr *imageregistryv1.Config) *generatorSecret {
@@ -31,7 +29,6 @@ func newGeneratorSecret(lister corelisters.SecretNamespaceLister, client coreset
3129
driver: driver,
3230
name: imageregistryv1.ImageRegistryPrivateConfiguration,
3331
namespace: params.Deployment.Namespace,
34-
owner: util.AsOwner(cr),
3532
}
3633
}
3734

@@ -62,8 +59,6 @@ func (gs *generatorSecret) expected() (runtime.Object, error) {
6259

6360
sec.StringData = data
6461

65-
util.AddOwnerRefToObject(sec, gs.owner)
66-
6762
return sec, nil
6863
}
6964

@@ -86,3 +81,7 @@ func (gs *generatorSecret) Update(o runtime.Object) (bool, error) {
8681
func (gs *generatorSecret) Delete(opts *metav1.DeleteOptions) error {
8782
return gs.client.Secrets(gs.GetNamespace()).Delete(gs.GetName(), opts)
8883
}
84+
85+
func (g *generatorSecret) Owned() bool {
86+
return true
87+
}

pkg/resource/service.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
1414
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
1515
"github.com/openshift/cluster-image-registry-operator/pkg/resource/strategy"
16-
"github.com/openshift/cluster-image-registry-operator/pkg/util"
1716
)
1817

1918
var _ Mutator = &generatorService{}
@@ -26,7 +25,6 @@ type generatorService struct {
2625
labels map[string]string
2726
port int
2827
secretName string
29-
owner metav1.OwnerReference
3028
}
3129

3230
func newGeneratorService(lister corelisters.ServiceNamespaceLister, client coreset.CoreV1Interface, params *parameters.Globals, cr *imageregistryv1.Config) *generatorService {
@@ -38,7 +36,6 @@ func newGeneratorService(lister corelisters.ServiceNamespaceLister, client cores
3836
labels: params.Deployment.Labels,
3937
port: params.Container.Port,
4038
secretName: imageregistryv1.ImageRegistryName + "-tls",
41-
owner: util.AsOwner(cr),
4239
}
4340
}
4441

@@ -78,8 +75,6 @@ func (gs *generatorService) expected() *corev1.Service {
7875
"service.alpha.openshift.io/serving-cert-secret-name": gs.secretName,
7976
}
8077

81-
util.AddOwnerRefToObject(svc, gs.owner)
82-
8378
return svc
8479
}
8580

@@ -116,3 +111,7 @@ func (gs *generatorService) Update(o runtime.Object) (bool, error) {
116111
func (gs *generatorService) Delete(opts *metav1.DeleteOptions) error {
117112
return gs.client.Services(gs.GetNamespace()).Delete(gs.GetName(), opts)
118113
}
114+
115+
func (g *generatorService) Owned() bool {
116+
return true
117+
}

pkg/resource/serviceaccount.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99

1010
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
1111
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
12-
"github.com/openshift/cluster-image-registry-operator/pkg/util"
1312
)
1413

1514
var _ Mutator = &generatorServiceAccount{}
@@ -19,7 +18,6 @@ type generatorServiceAccount struct {
1918
client coreset.CoreV1Interface
2019
name string
2120
namespace string
22-
owner metav1.OwnerReference
2321
}
2422

2523
func newGeneratorServiceAccount(lister corelisters.ServiceAccountNamespaceLister, client coreset.CoreV1Interface, params *parameters.Globals, cr *imageregistryv1.Config) *generatorServiceAccount {
@@ -28,7 +26,6 @@ func newGeneratorServiceAccount(lister corelisters.ServiceAccountNamespaceLister
2826
client: client,
2927
name: params.Pod.ServiceAccount,
3028
namespace: params.Deployment.Namespace,
31-
owner: util.AsOwner(cr),
3229
}
3330
}
3431

@@ -52,8 +49,6 @@ func (gsa *generatorServiceAccount) expected() (runtime.Object, error) {
5249
},
5350
}
5451

55-
util.AddOwnerRefToObject(sa, gsa.owner)
56-
5752
return sa, nil
5853
}
5954

@@ -76,3 +71,7 @@ func (gsa *generatorServiceAccount) Update(o runtime.Object) (bool, error) {
7671
func (gsa *generatorServiceAccount) Delete(opts *metav1.DeleteOptions) error {
7772
return gsa.client.ServiceAccounts(gsa.GetNamespace()).Delete(gsa.GetName(), opts)
7873
}
74+
75+
func (g *generatorServiceAccount) Owned() bool {
76+
return true
77+
}

0 commit comments

Comments
 (0)