Skip to content

Commit 3473f04

Browse files
committed
Extract StorageListers
1 parent a8e8c50 commit 3473f04

File tree

24 files changed

+116
-113
lines changed

24 files changed

+116
-113
lines changed

pkg/client/fake/fixtures.go

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -221,19 +221,21 @@ func (f *FixturesBuilder) Build() *Fixtures {
221221
// BuildListers creates an in-memory instance of client.Listers
222222
func (f *FixturesBuilder) BuildListers() *client.Listers {
223223
listers := &client.Listers{
224-
Deployments: appsv1listers.NewDeploymentLister(f.deploymentIndexer).Deployments("openshift-image-registry"),
225-
Services: corev1listers.NewServiceLister(f.servicesIndexer).Services("openshift-image-registry"),
226-
Secrets: corev1listers.NewSecretLister(f.secretsIndexer).Secrets("openshift-image-registry"),
227-
ConfigMaps: corev1listers.NewConfigMapLister(f.configMapsIndexer).ConfigMaps("openshift-image-registry"),
228-
ServiceAccounts: corev1listers.NewServiceAccountLister(f.serviceAcctIndexer).ServiceAccounts("openshift-image-registry"),
229-
Routes: routev1listers.NewRouteLister(f.routesIndexer).Routes("openshift-image-registry"),
230-
ClusterRoles: rbacv1listers.NewClusterRoleLister(f.clusterRolesIndexer),
231-
ClusterRoleBindings: rbacv1listers.NewClusterRoleBindingLister(f.clusterRoleBindingsIndexer),
232-
OpenShiftConfig: corev1listers.NewConfigMapLister(f.configMapsIndexer).ConfigMaps("openshift-config"),
233-
OpenShiftConfigManaged: corev1listers.NewConfigMapLister(f.configMapsIndexer).ConfigMaps("openshift-config-managed"),
234-
RegistryConfigs: regopv1listers.NewConfigLister(f.registryConfigsIndexer),
235-
ProxyConfigs: configv1listers.NewProxyLister(f.proxyConfigsIndexer),
236-
Infrastructures: configv1listers.NewInfrastructureLister(f.infraIndexer),
224+
StorageListers: client.StorageListers{
225+
Infrastructures: configv1listers.NewInfrastructureLister(f.infraIndexer),
226+
OpenShiftConfig: corev1listers.NewConfigMapLister(f.configMapsIndexer).ConfigMaps("openshift-config"),
227+
OpenShiftConfigManaged: corev1listers.NewConfigMapLister(f.configMapsIndexer).ConfigMaps("openshift-config-managed"),
228+
Secrets: corev1listers.NewSecretLister(f.secretsIndexer).Secrets("openshift-image-registry"),
229+
},
230+
Deployments: appsv1listers.NewDeploymentLister(f.deploymentIndexer).Deployments("openshift-image-registry"),
231+
Services: corev1listers.NewServiceLister(f.servicesIndexer).Services("openshift-image-registry"),
232+
ConfigMaps: corev1listers.NewConfigMapLister(f.configMapsIndexer).ConfigMaps("openshift-image-registry"),
233+
ServiceAccounts: corev1listers.NewServiceAccountLister(f.serviceAcctIndexer).ServiceAccounts("openshift-image-registry"),
234+
Routes: routev1listers.NewRouteLister(f.routesIndexer).Routes("openshift-image-registry"),
235+
ClusterRoles: rbacv1listers.NewClusterRoleLister(f.clusterRolesIndexer),
236+
ClusterRoleBindings: rbacv1listers.NewClusterRoleBindingLister(f.clusterRoleBindingsIndexer),
237+
RegistryConfigs: regopv1listers.NewConfigLister(f.registryConfigsIndexer),
238+
ProxyConfigs: configv1listers.NewProxyLister(f.proxyConfigsIndexer),
237239
}
238240
return listers
239241
}

pkg/client/listers.go

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,26 @@ import (
1313
routelisters "github.com/openshift/client-go/route/listers/route/v1"
1414
)
1515

16-
type Listers struct {
17-
Deployments kappslisters.DeploymentNamespaceLister
18-
Services kcorelisters.ServiceNamespaceLister
19-
Secrets kcorelisters.SecretNamespaceLister
20-
ConfigMaps kcorelisters.ConfigMapNamespaceLister
21-
ServiceAccounts kcorelisters.ServiceAccountNamespaceLister
22-
PodDisruptionBudgets kpolicylisters.PodDisruptionBudgetNamespaceLister
23-
Routes routelisters.RouteNamespaceLister
24-
ClusterRoles krbaclisters.ClusterRoleLister
25-
ClusterRoleBindings krbaclisters.ClusterRoleBindingLister
16+
// StorageListers is a set of listers that can be used by storage drivers.
17+
type StorageListers struct {
18+
Infrastructures configlisters.InfrastructureLister
2619
OpenShiftConfig kcorelisters.ConfigMapNamespaceLister
2720
OpenShiftConfigManaged kcorelisters.ConfigMapNamespaceLister
28-
RegistryConfigs regoplisters.ConfigLister
29-
ProxyConfigs configlisters.ProxyLister
30-
Infrastructures configlisters.InfrastructureLister
21+
Secrets kcorelisters.SecretNamespaceLister
22+
}
23+
24+
type Listers struct {
25+
StorageListers
26+
Deployments kappslisters.DeploymentNamespaceLister
27+
Services kcorelisters.ServiceNamespaceLister
28+
ConfigMaps kcorelisters.ConfigMapNamespaceLister
29+
ServiceAccounts kcorelisters.ServiceAccountNamespaceLister
30+
PodDisruptionBudgets kpolicylisters.PodDisruptionBudgetNamespaceLister
31+
Routes routelisters.RouteNamespaceLister
32+
ClusterRoles krbaclisters.ClusterRoleLister
33+
ClusterRoleBindings krbaclisters.ClusterRoleBindingLister
34+
RegistryConfigs regoplisters.ConfigLister
35+
ProxyConfigs configlisters.ProxyLister
3136
}
3237

3338
type ImagePrunerControllerListers struct {

pkg/operator/bootstrap.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,12 @@ func (c *Controller) Bootstrap() error {
3838
// If no registry resource exists, let's create one with sane defaults
3939
klog.Infof("generating registry custom resource")
4040

41-
platformStorage, replicas, err := storage.GetPlatformStorage(c.listers)
41+
platformStorage, replicas, err := storage.GetPlatformStorage(&c.listers.StorageListers)
4242
if err != nil {
4343
return err
4444
}
4545

46-
infra, err := util.GetInfrastructure(c.listers)
46+
infra, err := util.GetInfrastructure(&c.listers.StorageListers)
4747
if err != nil {
4848
return fmt.Errorf("unable to get infrastructure resource: %w", err)
4949
}
@@ -112,7 +112,7 @@ func (c *Controller) createPVC(accessMode corev1.PersistentVolumeAccessMode, cla
112112
storageClassName := "standard-csi"
113113

114114
// This is a Workaround for Bug#1862991 Tracker for removel on Bug#1866240
115-
if infra, err := util.GetInfrastructure(c.listers); err != nil {
115+
if infra, err := util.GetInfrastructure(&c.listers.StorageListers); err != nil {
116116
return err
117117
} else if infra.Status.PlatformStatus.Type == configapiv1.OvirtPlatformType {
118118
storageClassName = "ovirt-csi-sc"

pkg/operator/bootstrap_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ func TestBootstrapAWS(t *testing.T) {
4646

4747
c := &Controller{
4848
listers: &client.Listers{
49-
Infrastructures: configInformerFactory.Config().V1().Infrastructures().Lister(),
49+
StorageListers: client.StorageListers{
50+
Infrastructures: configInformerFactory.Config().V1().Infrastructures().Lister(),
51+
},
5052
RegistryConfigs: imageregistryInformerFactory.Imageregistry().V1().Configs().Lister(),
5153
},
5254
clients: &client.Clients{

pkg/resource/generator.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func (g *Generator) listRoutes(cr *imageregistryv1.Config) []Mutator {
9191
}
9292

9393
func (g *Generator) List(cr *imageregistryv1.Config) ([]Mutator, error) {
94-
driver, err := storage.NewDriver(&cr.Spec.Storage, g.kubeconfig, g.listers)
94+
driver, err := storage.NewDriver(&cr.Spec.Storage, g.kubeconfig, &g.listers.StorageListers)
9595
if err != nil && err != storage.ErrStorageNotConfigured {
9696
return nil, err
9797
} else if err == storage.ErrStorageNotConfigured {
@@ -120,13 +120,13 @@ func (g *Generator) List(cr *imageregistryv1.Config) ([]Mutator, error) {
120120
func (g *Generator) syncStorage(cr *imageregistryv1.Config) error {
121121
var runCreate bool
122122
// Create a driver with the current configuration
123-
driver, err := storage.NewDriver(&cr.Spec.Storage, g.kubeconfig, g.listers)
123+
driver, err := storage.NewDriver(&cr.Spec.Storage, g.kubeconfig, &g.listers.StorageListers)
124124
if err == storage.ErrStorageNotConfigured {
125-
cr.Spec.Storage, _, err = storage.GetPlatformStorage(g.listers)
125+
cr.Spec.Storage, _, err = storage.GetPlatformStorage(&g.listers.StorageListers)
126126
if err != nil {
127127
return fmt.Errorf("unable to get storage configuration from cluster install config: %s", err)
128128
}
129-
driver, err = storage.NewDriver(&cr.Spec.Storage, g.kubeconfig, g.listers)
129+
driver, err = storage.NewDriver(&cr.Spec.Storage, g.kubeconfig, &g.listers.StorageListers)
130130
}
131131
if err != nil {
132132
return err
@@ -164,11 +164,11 @@ func (g *Generator) storageReconfigured(
164164
restCfg *rest.Config,
165165
listers *client.Listers,
166166
) bool {
167-
prev, err := storage.NewDriver(&regCfg.Status.Storage, restCfg, listers)
167+
prev, err := storage.NewDriver(&regCfg.Status.Storage, restCfg, &listers.StorageListers)
168168
if err != nil {
169169
return false
170170
}
171-
cur, err := storage.NewDriver(&regCfg.Spec.Storage, restCfg, listers)
171+
cur, err := storage.NewDriver(&regCfg.Spec.Storage, restCfg, &listers.StorageListers)
172172
if err != nil {
173173
return false
174174
}
@@ -284,7 +284,7 @@ func (g *Generator) Remove(cr *imageregistryv1.Config) error {
284284
klog.Infof("object %s deleted", Name(gen))
285285
}
286286

287-
driver, err := storage.NewDriver(&cr.Status.Storage, g.kubeconfig, g.listers)
287+
driver, err := storage.NewDriver(&cr.Status.Storage, g.kubeconfig, &g.listers.StorageListers)
288288
if err == storage.ErrStorageNotConfigured {
289289
return nil
290290
} else if err != nil {

pkg/resource/podtemplatespec_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ func TestMakePodTemplateSpecWithTopologySpread(t *testing.T) {
203203
Spec: tc.spec,
204204
}
205205
fixture := buildFakeClient(config, tc.nodes)
206-
emptyDirStorage := emptydir.NewDriver(&v1.ImageRegistryConfigStorageEmptyDir{}, fixture.Listers)
206+
emptyDirStorage := emptydir.NewDriver(&v1.ImageRegistryConfigStorageEmptyDir{})
207207
pod, _, err := makePodTemplateSpec(
208208
fixture.KubeClient.CoreV1(),
209209
fixture.Listers.ProxyConfigs,
@@ -268,7 +268,7 @@ func TestMakePodTemplateSpecWithVolumeMounts(t *testing.T) {
268268
testBuilder.AddNamespaces(imageRegNs)
269269

270270
fixture := testBuilder.Build()
271-
emptyDirStorage := emptydir.NewDriver(config.Spec.Storage.EmptyDir, fixture.Listers)
271+
emptyDirStorage := emptydir.NewDriver(config.Spec.Storage.EmptyDir)
272272
pod, deps, err := makePodTemplateSpec(fixture.KubeClient.CoreV1(), fixture.Listers.ProxyConfigs, emptyDirStorage, config)
273273
if err != nil {
274274
t.Fatalf("error creating pod template: %v", err)

pkg/storage/azure/azure.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ type driver struct {
267267

268268
// Listers is a collection of listers that the driver can use to obtain
269269
// additional objects from the cluster.
270-
Listers *regopclient.Listers
270+
Listers *regopclient.StorageListers
271271

272272
// authorizer is for Azure autorest generated clients.
273273
// Added as a member to the struct to allow injection for testing.
@@ -283,7 +283,7 @@ type driver struct {
283283
}
284284

285285
// NewDriver creates a new storage driver for Azure Blob Storage.
286-
func NewDriver(ctx context.Context, c *imageregistryv1.ImageRegistryConfigStorageAzure, listers *regopclient.Listers) *driver {
286+
func NewDriver(ctx context.Context, c *imageregistryv1.ImageRegistryConfigStorageAzure, listers *regopclient.StorageListers) *driver {
287287
return &driver{
288288
Context: ctx,
289289
Config: c,

pkg/storage/azure/azure_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ func TestConfigEnv(t *testing.T) {
254254
}
255255
})
256256

257-
d := NewDriver(ctx, config, listers)
257+
d := NewDriver(ctx, config, &listers.StorageListers)
258258
d.authorizer = authorizer
259259
d.sender = sender
260260
d.httpSender = httpSender
@@ -305,7 +305,7 @@ func TestConfigEnvWithUserKey(t *testing.T) {
305305

306306
listers := testBuilder.BuildListers()
307307

308-
d := NewDriver(ctx, config, listers)
308+
d := NewDriver(ctx, config, &listers.StorageListers)
309309
envvars, err := d.ConfigEnv()
310310
if err != nil {
311311
t.Fatal(err)
@@ -719,7 +719,7 @@ func Test_assureContainer(t *testing.T) {
719719
storageConfig = tt.storageConfig
720720
}
721721

722-
drv := NewDriver(context.Background(), storageConfig, listers)
722+
drv := NewDriver(context.Background(), storageConfig, &listers.StorageListers)
723723
drv.authorizer = autorest.NullAuthorizer{}
724724
drv.sender = sender
725725
primaryKey = cachedKey{}
@@ -1091,7 +1091,7 @@ func Test_storageManagementState(t *testing.T) {
10911091
drv := NewDriver(
10921092
context.Background(),
10931093
storageConfig,
1094-
listers,
1094+
&listers.StorageListers,
10951095
)
10961096
drv.authorizer = autorest.NullAuthorizer{}
10971097
drv.sender = sender

pkg/storage/emptydir/emptydir.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import (
88
imageregistryv1 "github.com/openshift/api/imageregistry/v1"
99
operatorapi "github.com/openshift/api/operator/v1"
1010

11-
regopclient "github.com/openshift/cluster-image-registry-operator/pkg/client"
1211
"github.com/openshift/cluster-image-registry-operator/pkg/defaults"
1312
"github.com/openshift/cluster-image-registry-operator/pkg/envvar"
1413
"github.com/openshift/cluster-image-registry-operator/pkg/storage/util"
@@ -19,14 +18,12 @@ const (
1918
)
2019

2120
type driver struct {
22-
Config *imageregistryv1.ImageRegistryConfigStorageEmptyDir
23-
Listers *regopclient.Listers
21+
Config *imageregistryv1.ImageRegistryConfigStorageEmptyDir
2422
}
2523

26-
func NewDriver(c *imageregistryv1.ImageRegistryConfigStorageEmptyDir, listers *regopclient.Listers) *driver {
24+
func NewDriver(c *imageregistryv1.ImageRegistryConfigStorageEmptyDir) *driver {
2725
return &driver{
28-
Config: c,
29-
Listers: listers,
26+
Config: c,
3027
}
3128
}
3229

pkg/storage/gcs/gcs.go

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

1616
corev1 "k8s.io/api/core/v1"
1717
"k8s.io/apimachinery/pkg/api/errors"
18-
"k8s.io/client-go/rest"
1918
"k8s.io/klog/v2"
2019

2120
configapiv1 "github.com/openshift/api/config/v1"
@@ -35,21 +34,19 @@ type GCS struct {
3534
}
3635

3736
type driver struct {
38-
Context context.Context
39-
Config *imageregistryv1.ImageRegistryConfigStorageGCS
40-
KubeConfig *rest.Config
41-
Listers *regopclient.Listers
37+
Context context.Context
38+
Config *imageregistryv1.ImageRegistryConfigStorageGCS
39+
Listers *regopclient.StorageListers
4240

4341
// httpClient is used only during tests.
4442
httpClient *http.Client
4543
}
4644

47-
func NewDriver(ctx context.Context, c *imageregistryv1.ImageRegistryConfigStorageGCS, kubeconfig *rest.Config, listers *regopclient.Listers) *driver {
45+
func NewDriver(ctx context.Context, c *imageregistryv1.ImageRegistryConfigStorageGCS, listers *regopclient.StorageListers) *driver {
4846
return &driver{
49-
Context: ctx,
50-
Config: c,
51-
KubeConfig: kubeconfig,
52-
Listers: listers,
47+
Context: ctx,
48+
Config: c,
49+
Listers: listers,
5350
}
5451
}
5552

@@ -85,7 +82,7 @@ func (d *driver) getGCSClient() (*gstorage.Client, error) {
8582
}
8683

8784
// GetConfig reads configuration for the GCS cloud platform services.
88-
func GetConfig(listers *regopclient.Listers) (*GCS, error) {
85+
func GetConfig(listers *regopclient.StorageListers) (*GCS, error) {
8986
gcsConfig := &GCS{}
9087

9188
infra, err := util.GetInfrastructure(listers)

0 commit comments

Comments
 (0)