Skip to content

Commit

Permalink
do not setup ownerrefs for clusterscoped/cross-namespace objects
Browse files Browse the repository at this point in the history
  • Loading branch information
bparees committed Feb 25, 2019
1 parent 0780074 commit c838502
Show file tree
Hide file tree
Showing 12 changed files with 48 additions and 39 deletions.
9 changes: 4 additions & 5 deletions pkg/resource/caconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (
configlisters "github.com/openshift/client-go/config/listers/config/v1"
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
"github.com/openshift/cluster-image-registry-operator/pkg/util"
)

var _ Mutator = &generatorCAConfig{}
Expand All @@ -24,7 +23,6 @@ type generatorCAConfig struct {
imageConfigName string
name string
namespace string
owner metav1.OwnerReference
}

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

Expand Down Expand Up @@ -82,8 +79,6 @@ func (gcac *generatorCAConfig) expected() (runtime.Object, error) {
}
}

util.AddOwnerRefToObject(cm, gcac.owner)

return cm, nil
}

Expand All @@ -106,3 +101,7 @@ func (gcac *generatorCAConfig) Update(o runtime.Object) (bool, error) {
func (gcac *generatorCAConfig) Delete(opts *metav1.DeleteOptions) error {
return gcac.client.ConfigMaps(gcac.GetNamespace()).Delete(gcac.GetName(), opts)
}

func (g *generatorCAConfig) Owned() bool {
return true
}
9 changes: 4 additions & 5 deletions pkg/resource/clusterrole.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,19 @@ import (
rbaclisters "k8s.io/client-go/listers/rbac/v1"

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

var _ Mutator = &generatorClusterRole{}

type generatorClusterRole struct {
lister rbaclisters.ClusterRoleLister
client rbacset.RbacV1Interface
owner metav1.OwnerReference
}

func newGeneratorClusterRole(lister rbaclisters.ClusterRoleLister, client rbacset.RbacV1Interface, cr *imageregistryv1.Config) *generatorClusterRole {
return &generatorClusterRole{
lister: lister,
client: client,
owner: util.AsOwner(cr),
}
}

Expand Down Expand Up @@ -94,8 +91,6 @@ func (gcr *generatorClusterRole) expected() (runtime.Object, error) {
},
}

util.AddOwnerRefToObject(role, gcr.owner)

return role, nil
}

Expand All @@ -118,3 +113,7 @@ func (gcr *generatorClusterRole) Update(o runtime.Object) (bool, error) {
func (gcr *generatorClusterRole) Delete(opts *metav1.DeleteOptions) error {
return gcr.client.ClusterRoles().Delete(gcr.GetName(), opts)
}

func (g *generatorClusterRole) Owned() bool {
return true
}
9 changes: 4 additions & 5 deletions pkg/resource/clusterrolebinding.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (

imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
"github.com/openshift/cluster-image-registry-operator/pkg/util"
)

var _ Mutator = &generatorClusterRoleBinding{}
Expand All @@ -19,7 +18,6 @@ type generatorClusterRoleBinding struct {
client rbacset.RbacV1Interface
saName string
saNamespace string
owner metav1.OwnerReference
}

func newGeneratorClusterRoleBinding(lister rbaclisters.ClusterRoleBindingLister, client rbacset.RbacV1Interface, params *parameters.Globals, cr *imageregistryv1.Config) *generatorClusterRoleBinding {
Expand All @@ -28,7 +26,6 @@ func newGeneratorClusterRoleBinding(lister rbaclisters.ClusterRoleBindingLister,
client: client,
saName: params.Pod.ServiceAccount,
saNamespace: params.Deployment.Namespace,
owner: util.AsOwner(cr),
}
}

Expand Down Expand Up @@ -66,8 +63,6 @@ func (gcrb *generatorClusterRoleBinding) expected() (runtime.Object, error) {
},
}

util.AddOwnerRefToObject(crb, gcrb.owner)

return crb, nil
}

Expand All @@ -90,3 +85,7 @@ func (gcrb *generatorClusterRoleBinding) Update(o runtime.Object) (bool, error)
func (gcrb *generatorClusterRoleBinding) Delete(opts *metav1.DeleteOptions) error {
return gcrb.client.ClusterRoleBindings().Delete(gcrb.GetName(), opts)
}

func (g *generatorClusterRoleBinding) Owned() bool {
return true
}
7 changes: 4 additions & 3 deletions pkg/resource/deployment.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
"github.com/openshift/cluster-image-registry-operator/pkg/storage"
"github.com/openshift/cluster-image-registry-operator/pkg/util"
)

var _ Mutator = &generatorDeployment{}
Expand Down Expand Up @@ -84,8 +83,6 @@ func (gd *generatorDeployment) expected() (runtime.Object, error) {
},
}

util.AddOwnerRefToObject(deploy, util.AsOwner(gd.cr))

return deploy, nil
}

Expand All @@ -108,3 +105,7 @@ func (gd *generatorDeployment) Update(o runtime.Object) (bool, error) {
func (gd *generatorDeployment) Delete(opts *metav1.DeleteOptions) error {
return gd.client.Deployments(gd.GetNamespace()).Delete(gd.GetName(), opts)
}

func (g *generatorDeployment) Owned() bool {
return true
}
3 changes: 3 additions & 0 deletions pkg/resource/generator.go
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,9 @@ func (g *Generator) Remove(cr *imageregistryv1.Config) error {
PropagationPolicy: &propagationPolicy,
}
for _, gen := range generators {
if !gen.Owned() {
continue
}
if err := gen.Delete(opts); err != nil {
if errors.IsNotFound(err) {
continue
Expand Down
5 changes: 5 additions & 0 deletions pkg/resource/imageconfig.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,11 @@ func (gic *generatorImageConfig) Delete(opts *metav1.DeleteOptions) error {
return gic.configClient.Images().Delete(gic.GetName(), opts)
}

func (g *generatorImageConfig) Owned() bool {
// the registry operator can create and contribute to the imageconfig, but it doesn't own it.
return false
}

func (gic *generatorImageConfig) getRouteHostnames() ([]string, error) {
var externalHostnames []string

Expand Down
5 changes: 5 additions & 0 deletions pkg/resource/nodecadaemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -211,3 +211,8 @@ func (ds *generatorNodeCADaemonSet) Update(o runtime.Object) (bool, error) {
func (ds *generatorNodeCADaemonSet) Delete(opts *metav1.DeleteOptions) error {
return ds.client.DaemonSets(ds.GetNamespace()).Delete(ds.GetName(), opts)
}

func (ds *generatorNodeCADaemonSet) Owned() bool {
// the nodeca daemon's lifecycle is not tied to the lifecycle of the registry
return false
}
3 changes: 3 additions & 0 deletions pkg/resource/resource.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ type Mutator interface {
Create() error
Update(o runtime.Object) (bool, error)
Delete(opts *metaapi.DeleteOptions) error
// Owned indicates whether this resource is explicitly owned by the registry operator
// and therefore should be removed when the registry config resource is removed.
Owned() bool
}

func Name(o Getter) string {
Expand Down
10 changes: 4 additions & 6 deletions pkg/resource/route.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (

imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
"github.com/openshift/cluster-image-registry-operator/pkg/util"
)

var _ Mutator = &generatorRoute{}
Expand All @@ -22,7 +21,6 @@ type generatorRoute struct {
client routeset.RouteV1Interface
namespace string
serviceName string
owner metav1.OwnerReference
route imageregistryv1.ImageRegistryConfigRoute
}

Expand All @@ -33,7 +31,6 @@ func newGeneratorRoute(lister routelisters.RouteNamespaceLister, secretLister co
client: client,
namespace: params.Deployment.Namespace,
serviceName: params.Service.Name,
owner: util.AsOwner(cr),
route: route,
}
}
Expand Down Expand Up @@ -83,9 +80,6 @@ func (gr *generatorRoute) expected() (runtime.Object, error) {
r.Spec.TLS.CACertificate = v
}
}

util.AddOwnerRefToObject(r, gr.owner)

return r, nil
}

Expand All @@ -108,3 +102,7 @@ func (gr *generatorRoute) Update(o runtime.Object) (bool, error) {
func (gr *generatorRoute) Delete(opts *metav1.DeleteOptions) error {
return gr.client.Routes(gr.GetNamespace()).Delete(gr.GetName(), opts)
}

func (g *generatorRoute) Owned() bool {
return true
}
9 changes: 4 additions & 5 deletions pkg/resource/secret.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import (
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
"github.com/openshift/cluster-image-registry-operator/pkg/storage"
"github.com/openshift/cluster-image-registry-operator/pkg/util"
)

var _ Mutator = &generatorSecret{}
Expand All @@ -21,7 +20,6 @@ type generatorSecret struct {
driver storage.Driver
name string
namespace string
owner metav1.OwnerReference
}

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

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

sec.StringData = data

util.AddOwnerRefToObject(sec, gs.owner)

return sec, nil
}

Expand All @@ -86,3 +81,7 @@ func (gs *generatorSecret) Update(o runtime.Object) (bool, error) {
func (gs *generatorSecret) Delete(opts *metav1.DeleteOptions) error {
return gs.client.Secrets(gs.GetNamespace()).Delete(gs.GetName(), opts)
}

func (g *generatorSecret) Owned() bool {
return true
}
9 changes: 4 additions & 5 deletions pkg/resource/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import (
imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
"github.com/openshift/cluster-image-registry-operator/pkg/resource/strategy"
"github.com/openshift/cluster-image-registry-operator/pkg/util"
)

var _ Mutator = &generatorService{}
Expand All @@ -26,7 +25,6 @@ type generatorService struct {
labels map[string]string
port int
secretName string
owner metav1.OwnerReference
}

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

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

util.AddOwnerRefToObject(svc, gs.owner)

return svc
}

Expand Down Expand Up @@ -116,3 +111,7 @@ func (gs *generatorService) Update(o runtime.Object) (bool, error) {
func (gs *generatorService) Delete(opts *metav1.DeleteOptions) error {
return gs.client.Services(gs.GetNamespace()).Delete(gs.GetName(), opts)
}

func (g *generatorService) Owned() bool {
return true
}
9 changes: 4 additions & 5 deletions pkg/resource/serviceaccount.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (

imageregistryv1 "github.com/openshift/cluster-image-registry-operator/pkg/apis/imageregistry/v1"
"github.com/openshift/cluster-image-registry-operator/pkg/parameters"
"github.com/openshift/cluster-image-registry-operator/pkg/util"
)

var _ Mutator = &generatorServiceAccount{}
Expand All @@ -19,7 +18,6 @@ type generatorServiceAccount struct {
client coreset.CoreV1Interface
name string
namespace string
owner metav1.OwnerReference
}

func newGeneratorServiceAccount(lister corelisters.ServiceAccountNamespaceLister, client coreset.CoreV1Interface, params *parameters.Globals, cr *imageregistryv1.Config) *generatorServiceAccount {
Expand All @@ -28,7 +26,6 @@ func newGeneratorServiceAccount(lister corelisters.ServiceAccountNamespaceLister
client: client,
name: params.Pod.ServiceAccount,
namespace: params.Deployment.Namespace,
owner: util.AsOwner(cr),
}
}

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

util.AddOwnerRefToObject(sa, gsa.owner)

return sa, nil
}

Expand All @@ -76,3 +71,7 @@ func (gsa *generatorServiceAccount) Update(o runtime.Object) (bool, error) {
func (gsa *generatorServiceAccount) Delete(opts *metav1.DeleteOptions) error {
return gsa.client.ServiceAccounts(gsa.GetNamespace()).Delete(gsa.GetName(), opts)
}

func (g *generatorServiceAccount) Owned() bool {
return true
}

0 comments on commit c838502

Please sign in to comment.