k8s.io/client-go@v0.22.2/informers/generic.go (about)

     1  /*
     2  Copyright The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  // Code generated by informer-gen. DO NOT EDIT.
    18  
    19  package informers
    20  
    21  import (
    22  	"fmt"
    23  
    24  	v1 "k8s.io/api/admissionregistration/v1"
    25  	v1beta1 "k8s.io/api/admissionregistration/v1beta1"
    26  	apiserverinternalv1alpha1 "k8s.io/api/apiserverinternal/v1alpha1"
    27  	appsv1 "k8s.io/api/apps/v1"
    28  	appsv1beta1 "k8s.io/api/apps/v1beta1"
    29  	v1beta2 "k8s.io/api/apps/v1beta2"
    30  	autoscalingv1 "k8s.io/api/autoscaling/v1"
    31  	v2beta1 "k8s.io/api/autoscaling/v2beta1"
    32  	v2beta2 "k8s.io/api/autoscaling/v2beta2"
    33  	batchv1 "k8s.io/api/batch/v1"
    34  	batchv1beta1 "k8s.io/api/batch/v1beta1"
    35  	certificatesv1 "k8s.io/api/certificates/v1"
    36  	certificatesv1beta1 "k8s.io/api/certificates/v1beta1"
    37  	coordinationv1 "k8s.io/api/coordination/v1"
    38  	coordinationv1beta1 "k8s.io/api/coordination/v1beta1"
    39  	corev1 "k8s.io/api/core/v1"
    40  	discoveryv1 "k8s.io/api/discovery/v1"
    41  	discoveryv1beta1 "k8s.io/api/discovery/v1beta1"
    42  	eventsv1 "k8s.io/api/events/v1"
    43  	eventsv1beta1 "k8s.io/api/events/v1beta1"
    44  	extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
    45  	v1alpha1 "k8s.io/api/flowcontrol/v1alpha1"
    46  	flowcontrolv1beta1 "k8s.io/api/flowcontrol/v1beta1"
    47  	networkingv1 "k8s.io/api/networking/v1"
    48  	networkingv1beta1 "k8s.io/api/networking/v1beta1"
    49  	nodev1 "k8s.io/api/node/v1"
    50  	nodev1alpha1 "k8s.io/api/node/v1alpha1"
    51  	nodev1beta1 "k8s.io/api/node/v1beta1"
    52  	policyv1 "k8s.io/api/policy/v1"
    53  	policyv1beta1 "k8s.io/api/policy/v1beta1"
    54  	rbacv1 "k8s.io/api/rbac/v1"
    55  	rbacv1alpha1 "k8s.io/api/rbac/v1alpha1"
    56  	rbacv1beta1 "k8s.io/api/rbac/v1beta1"
    57  	schedulingv1 "k8s.io/api/scheduling/v1"
    58  	schedulingv1alpha1 "k8s.io/api/scheduling/v1alpha1"
    59  	schedulingv1beta1 "k8s.io/api/scheduling/v1beta1"
    60  	storagev1 "k8s.io/api/storage/v1"
    61  	storagev1alpha1 "k8s.io/api/storage/v1alpha1"
    62  	storagev1beta1 "k8s.io/api/storage/v1beta1"
    63  	schema "k8s.io/apimachinery/pkg/runtime/schema"
    64  	cache "k8s.io/client-go/tools/cache"
    65  )
    66  
    67  // GenericInformer is type of SharedIndexInformer which will locate and delegate to other
    68  // sharedInformers based on type
    69  type GenericInformer interface {
    70  	Informer() cache.SharedIndexInformer
    71  	Lister() cache.GenericLister
    72  }
    73  
    74  type genericInformer struct {
    75  	informer cache.SharedIndexInformer
    76  	resource schema.GroupResource
    77  }
    78  
    79  // Informer returns the SharedIndexInformer.
    80  func (f *genericInformer) Informer() cache.SharedIndexInformer {
    81  	return f.informer
    82  }
    83  
    84  // Lister returns the GenericLister.
    85  func (f *genericInformer) Lister() cache.GenericLister {
    86  	return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource)
    87  }
    88  
    89  // ForResource gives generic access to a shared informer of the matching type
    90  // TODO extend this to unknown resources with a client pool
    91  func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) {
    92  	switch resource {
    93  	// Group=admissionregistration.k8s.io, Version=v1
    94  	case v1.SchemeGroupVersion.WithResource("mutatingwebhookconfigurations"):
    95  		return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1().MutatingWebhookConfigurations().Informer()}, nil
    96  	case v1.SchemeGroupVersion.WithResource("validatingwebhookconfigurations"):
    97  		return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1().ValidatingWebhookConfigurations().Informer()}, nil
    98  
    99  		// Group=admissionregistration.k8s.io, Version=v1beta1
   100  	case v1beta1.SchemeGroupVersion.WithResource("mutatingwebhookconfigurations"):
   101  		return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1beta1().MutatingWebhookConfigurations().Informer()}, nil
   102  	case v1beta1.SchemeGroupVersion.WithResource("validatingwebhookconfigurations"):
   103  		return &genericInformer{resource: resource.GroupResource(), informer: f.Admissionregistration().V1beta1().ValidatingWebhookConfigurations().Informer()}, nil
   104  
   105  		// Group=apps, Version=v1
   106  	case appsv1.SchemeGroupVersion.WithResource("controllerrevisions"):
   107  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().ControllerRevisions().Informer()}, nil
   108  	case appsv1.SchemeGroupVersion.WithResource("daemonsets"):
   109  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().DaemonSets().Informer()}, nil
   110  	case appsv1.SchemeGroupVersion.WithResource("deployments"):
   111  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().Deployments().Informer()}, nil
   112  	case appsv1.SchemeGroupVersion.WithResource("replicasets"):
   113  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().ReplicaSets().Informer()}, nil
   114  	case appsv1.SchemeGroupVersion.WithResource("statefulsets"):
   115  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1().StatefulSets().Informer()}, nil
   116  
   117  		// Group=apps, Version=v1beta1
   118  	case appsv1beta1.SchemeGroupVersion.WithResource("controllerrevisions"):
   119  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().ControllerRevisions().Informer()}, nil
   120  	case appsv1beta1.SchemeGroupVersion.WithResource("deployments"):
   121  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().Deployments().Informer()}, nil
   122  	case appsv1beta1.SchemeGroupVersion.WithResource("statefulsets"):
   123  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta1().StatefulSets().Informer()}, nil
   124  
   125  		// Group=apps, Version=v1beta2
   126  	case v1beta2.SchemeGroupVersion.WithResource("controllerrevisions"):
   127  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().ControllerRevisions().Informer()}, nil
   128  	case v1beta2.SchemeGroupVersion.WithResource("daemonsets"):
   129  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().DaemonSets().Informer()}, nil
   130  	case v1beta2.SchemeGroupVersion.WithResource("deployments"):
   131  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().Deployments().Informer()}, nil
   132  	case v1beta2.SchemeGroupVersion.WithResource("replicasets"):
   133  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().ReplicaSets().Informer()}, nil
   134  	case v1beta2.SchemeGroupVersion.WithResource("statefulsets"):
   135  		return &genericInformer{resource: resource.GroupResource(), informer: f.Apps().V1beta2().StatefulSets().Informer()}, nil
   136  
   137  		// Group=autoscaling, Version=v1
   138  	case autoscalingv1.SchemeGroupVersion.WithResource("horizontalpodautoscalers"):
   139  		return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V1().HorizontalPodAutoscalers().Informer()}, nil
   140  
   141  		// Group=autoscaling, Version=v2beta1
   142  	case v2beta1.SchemeGroupVersion.WithResource("horizontalpodautoscalers"):
   143  		return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2beta1().HorizontalPodAutoscalers().Informer()}, nil
   144  
   145  		// Group=autoscaling, Version=v2beta2
   146  	case v2beta2.SchemeGroupVersion.WithResource("horizontalpodautoscalers"):
   147  		return &genericInformer{resource: resource.GroupResource(), informer: f.Autoscaling().V2beta2().HorizontalPodAutoscalers().Informer()}, nil
   148  
   149  		// Group=batch, Version=v1
   150  	case batchv1.SchemeGroupVersion.WithResource("cronjobs"):
   151  		return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1().CronJobs().Informer()}, nil
   152  	case batchv1.SchemeGroupVersion.WithResource("jobs"):
   153  		return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1().Jobs().Informer()}, nil
   154  
   155  		// Group=batch, Version=v1beta1
   156  	case batchv1beta1.SchemeGroupVersion.WithResource("cronjobs"):
   157  		return &genericInformer{resource: resource.GroupResource(), informer: f.Batch().V1beta1().CronJobs().Informer()}, nil
   158  
   159  		// Group=certificates.k8s.io, Version=v1
   160  	case certificatesv1.SchemeGroupVersion.WithResource("certificatesigningrequests"):
   161  		return &genericInformer{resource: resource.GroupResource(), informer: f.Certificates().V1().CertificateSigningRequests().Informer()}, nil
   162  
   163  		// Group=certificates.k8s.io, Version=v1beta1
   164  	case certificatesv1beta1.SchemeGroupVersion.WithResource("certificatesigningrequests"):
   165  		return &genericInformer{resource: resource.GroupResource(), informer: f.Certificates().V1beta1().CertificateSigningRequests().Informer()}, nil
   166  
   167  		// Group=coordination.k8s.io, Version=v1
   168  	case coordinationv1.SchemeGroupVersion.WithResource("leases"):
   169  		return &genericInformer{resource: resource.GroupResource(), informer: f.Coordination().V1().Leases().Informer()}, nil
   170  
   171  		// Group=coordination.k8s.io, Version=v1beta1
   172  	case coordinationv1beta1.SchemeGroupVersion.WithResource("leases"):
   173  		return &genericInformer{resource: resource.GroupResource(), informer: f.Coordination().V1beta1().Leases().Informer()}, nil
   174  
   175  		// Group=core, Version=v1
   176  	case corev1.SchemeGroupVersion.WithResource("componentstatuses"):
   177  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ComponentStatuses().Informer()}, nil
   178  	case corev1.SchemeGroupVersion.WithResource("configmaps"):
   179  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ConfigMaps().Informer()}, nil
   180  	case corev1.SchemeGroupVersion.WithResource("endpoints"):
   181  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Endpoints().Informer()}, nil
   182  	case corev1.SchemeGroupVersion.WithResource("events"):
   183  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Events().Informer()}, nil
   184  	case corev1.SchemeGroupVersion.WithResource("limitranges"):
   185  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().LimitRanges().Informer()}, nil
   186  	case corev1.SchemeGroupVersion.WithResource("namespaces"):
   187  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Namespaces().Informer()}, nil
   188  	case corev1.SchemeGroupVersion.WithResource("nodes"):
   189  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Nodes().Informer()}, nil
   190  	case corev1.SchemeGroupVersion.WithResource("persistentvolumes"):
   191  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().PersistentVolumes().Informer()}, nil
   192  	case corev1.SchemeGroupVersion.WithResource("persistentvolumeclaims"):
   193  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().PersistentVolumeClaims().Informer()}, nil
   194  	case corev1.SchemeGroupVersion.WithResource("pods"):
   195  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Pods().Informer()}, nil
   196  	case corev1.SchemeGroupVersion.WithResource("podtemplates"):
   197  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().PodTemplates().Informer()}, nil
   198  	case corev1.SchemeGroupVersion.WithResource("replicationcontrollers"):
   199  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ReplicationControllers().Informer()}, nil
   200  	case corev1.SchemeGroupVersion.WithResource("resourcequotas"):
   201  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ResourceQuotas().Informer()}, nil
   202  	case corev1.SchemeGroupVersion.WithResource("secrets"):
   203  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Secrets().Informer()}, nil
   204  	case corev1.SchemeGroupVersion.WithResource("services"):
   205  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().Services().Informer()}, nil
   206  	case corev1.SchemeGroupVersion.WithResource("serviceaccounts"):
   207  		return &genericInformer{resource: resource.GroupResource(), informer: f.Core().V1().ServiceAccounts().Informer()}, nil
   208  
   209  		// Group=discovery.k8s.io, Version=v1
   210  	case discoveryv1.SchemeGroupVersion.WithResource("endpointslices"):
   211  		return &genericInformer{resource: resource.GroupResource(), informer: f.Discovery().V1().EndpointSlices().Informer()}, nil
   212  
   213  		// Group=discovery.k8s.io, Version=v1beta1
   214  	case discoveryv1beta1.SchemeGroupVersion.WithResource("endpointslices"):
   215  		return &genericInformer{resource: resource.GroupResource(), informer: f.Discovery().V1beta1().EndpointSlices().Informer()}, nil
   216  
   217  		// Group=events.k8s.io, Version=v1
   218  	case eventsv1.SchemeGroupVersion.WithResource("events"):
   219  		return &genericInformer{resource: resource.GroupResource(), informer: f.Events().V1().Events().Informer()}, nil
   220  
   221  		// Group=events.k8s.io, Version=v1beta1
   222  	case eventsv1beta1.SchemeGroupVersion.WithResource("events"):
   223  		return &genericInformer{resource: resource.GroupResource(), informer: f.Events().V1beta1().Events().Informer()}, nil
   224  
   225  		// Group=extensions, Version=v1beta1
   226  	case extensionsv1beta1.SchemeGroupVersion.WithResource("daemonsets"):
   227  		return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().DaemonSets().Informer()}, nil
   228  	case extensionsv1beta1.SchemeGroupVersion.WithResource("deployments"):
   229  		return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().Deployments().Informer()}, nil
   230  	case extensionsv1beta1.SchemeGroupVersion.WithResource("ingresses"):
   231  		return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().Ingresses().Informer()}, nil
   232  	case extensionsv1beta1.SchemeGroupVersion.WithResource("networkpolicies"):
   233  		return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().NetworkPolicies().Informer()}, nil
   234  	case extensionsv1beta1.SchemeGroupVersion.WithResource("podsecuritypolicies"):
   235  		return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().PodSecurityPolicies().Informer()}, nil
   236  	case extensionsv1beta1.SchemeGroupVersion.WithResource("replicasets"):
   237  		return &genericInformer{resource: resource.GroupResource(), informer: f.Extensions().V1beta1().ReplicaSets().Informer()}, nil
   238  
   239  		// Group=flowcontrol.apiserver.k8s.io, Version=v1alpha1
   240  	case v1alpha1.SchemeGroupVersion.WithResource("flowschemas"):
   241  		return &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1alpha1().FlowSchemas().Informer()}, nil
   242  	case v1alpha1.SchemeGroupVersion.WithResource("prioritylevelconfigurations"):
   243  		return &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1alpha1().PriorityLevelConfigurations().Informer()}, nil
   244  
   245  		// Group=flowcontrol.apiserver.k8s.io, Version=v1beta1
   246  	case flowcontrolv1beta1.SchemeGroupVersion.WithResource("flowschemas"):
   247  		return &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1beta1().FlowSchemas().Informer()}, nil
   248  	case flowcontrolv1beta1.SchemeGroupVersion.WithResource("prioritylevelconfigurations"):
   249  		return &genericInformer{resource: resource.GroupResource(), informer: f.Flowcontrol().V1beta1().PriorityLevelConfigurations().Informer()}, nil
   250  
   251  		// Group=internal.apiserver.k8s.io, Version=v1alpha1
   252  	case apiserverinternalv1alpha1.SchemeGroupVersion.WithResource("storageversions"):
   253  		return &genericInformer{resource: resource.GroupResource(), informer: f.Internal().V1alpha1().StorageVersions().Informer()}, nil
   254  
   255  		// Group=networking.k8s.io, Version=v1
   256  	case networkingv1.SchemeGroupVersion.WithResource("ingresses"):
   257  		return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1().Ingresses().Informer()}, nil
   258  	case networkingv1.SchemeGroupVersion.WithResource("ingressclasses"):
   259  		return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1().IngressClasses().Informer()}, nil
   260  	case networkingv1.SchemeGroupVersion.WithResource("networkpolicies"):
   261  		return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1().NetworkPolicies().Informer()}, nil
   262  
   263  		// Group=networking.k8s.io, Version=v1beta1
   264  	case networkingv1beta1.SchemeGroupVersion.WithResource("ingresses"):
   265  		return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1beta1().Ingresses().Informer()}, nil
   266  	case networkingv1beta1.SchemeGroupVersion.WithResource("ingressclasses"):
   267  		return &genericInformer{resource: resource.GroupResource(), informer: f.Networking().V1beta1().IngressClasses().Informer()}, nil
   268  
   269  		// Group=node.k8s.io, Version=v1
   270  	case nodev1.SchemeGroupVersion.WithResource("runtimeclasses"):
   271  		return &genericInformer{resource: resource.GroupResource(), informer: f.Node().V1().RuntimeClasses().Informer()}, nil
   272  
   273  		// Group=node.k8s.io, Version=v1alpha1
   274  	case nodev1alpha1.SchemeGroupVersion.WithResource("runtimeclasses"):
   275  		return &genericInformer{resource: resource.GroupResource(), informer: f.Node().V1alpha1().RuntimeClasses().Informer()}, nil
   276  
   277  		// Group=node.k8s.io, Version=v1beta1
   278  	case nodev1beta1.SchemeGroupVersion.WithResource("runtimeclasses"):
   279  		return &genericInformer{resource: resource.GroupResource(), informer: f.Node().V1beta1().RuntimeClasses().Informer()}, nil
   280  
   281  		// Group=policy, Version=v1
   282  	case policyv1.SchemeGroupVersion.WithResource("poddisruptionbudgets"):
   283  		return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1().PodDisruptionBudgets().Informer()}, nil
   284  
   285  		// Group=policy, Version=v1beta1
   286  	case policyv1beta1.SchemeGroupVersion.WithResource("poddisruptionbudgets"):
   287  		return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodDisruptionBudgets().Informer()}, nil
   288  	case policyv1beta1.SchemeGroupVersion.WithResource("podsecuritypolicies"):
   289  		return &genericInformer{resource: resource.GroupResource(), informer: f.Policy().V1beta1().PodSecurityPolicies().Informer()}, nil
   290  
   291  		// Group=rbac.authorization.k8s.io, Version=v1
   292  	case rbacv1.SchemeGroupVersion.WithResource("clusterroles"):
   293  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().ClusterRoles().Informer()}, nil
   294  	case rbacv1.SchemeGroupVersion.WithResource("clusterrolebindings"):
   295  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().ClusterRoleBindings().Informer()}, nil
   296  	case rbacv1.SchemeGroupVersion.WithResource("roles"):
   297  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().Roles().Informer()}, nil
   298  	case rbacv1.SchemeGroupVersion.WithResource("rolebindings"):
   299  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1().RoleBindings().Informer()}, nil
   300  
   301  		// Group=rbac.authorization.k8s.io, Version=v1alpha1
   302  	case rbacv1alpha1.SchemeGroupVersion.WithResource("clusterroles"):
   303  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().ClusterRoles().Informer()}, nil
   304  	case rbacv1alpha1.SchemeGroupVersion.WithResource("clusterrolebindings"):
   305  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().ClusterRoleBindings().Informer()}, nil
   306  	case rbacv1alpha1.SchemeGroupVersion.WithResource("roles"):
   307  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().Roles().Informer()}, nil
   308  	case rbacv1alpha1.SchemeGroupVersion.WithResource("rolebindings"):
   309  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1alpha1().RoleBindings().Informer()}, nil
   310  
   311  		// Group=rbac.authorization.k8s.io, Version=v1beta1
   312  	case rbacv1beta1.SchemeGroupVersion.WithResource("clusterroles"):
   313  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().ClusterRoles().Informer()}, nil
   314  	case rbacv1beta1.SchemeGroupVersion.WithResource("clusterrolebindings"):
   315  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().ClusterRoleBindings().Informer()}, nil
   316  	case rbacv1beta1.SchemeGroupVersion.WithResource("roles"):
   317  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().Roles().Informer()}, nil
   318  	case rbacv1beta1.SchemeGroupVersion.WithResource("rolebindings"):
   319  		return &genericInformer{resource: resource.GroupResource(), informer: f.Rbac().V1beta1().RoleBindings().Informer()}, nil
   320  
   321  		// Group=scheduling.k8s.io, Version=v1
   322  	case schedulingv1.SchemeGroupVersion.WithResource("priorityclasses"):
   323  		return &genericInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1().PriorityClasses().Informer()}, nil
   324  
   325  		// Group=scheduling.k8s.io, Version=v1alpha1
   326  	case schedulingv1alpha1.SchemeGroupVersion.WithResource("priorityclasses"):
   327  		return &genericInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1alpha1().PriorityClasses().Informer()}, nil
   328  
   329  		// Group=scheduling.k8s.io, Version=v1beta1
   330  	case schedulingv1beta1.SchemeGroupVersion.WithResource("priorityclasses"):
   331  		return &genericInformer{resource: resource.GroupResource(), informer: f.Scheduling().V1beta1().PriorityClasses().Informer()}, nil
   332  
   333  		// Group=storage.k8s.io, Version=v1
   334  	case storagev1.SchemeGroupVersion.WithResource("csidrivers"):
   335  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().CSIDrivers().Informer()}, nil
   336  	case storagev1.SchemeGroupVersion.WithResource("csinodes"):
   337  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().CSINodes().Informer()}, nil
   338  	case storagev1.SchemeGroupVersion.WithResource("storageclasses"):
   339  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().StorageClasses().Informer()}, nil
   340  	case storagev1.SchemeGroupVersion.WithResource("volumeattachments"):
   341  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().VolumeAttachments().Informer()}, nil
   342  
   343  		// Group=storage.k8s.io, Version=v1alpha1
   344  	case storagev1alpha1.SchemeGroupVersion.WithResource("csistoragecapacities"):
   345  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1alpha1().CSIStorageCapacities().Informer()}, nil
   346  	case storagev1alpha1.SchemeGroupVersion.WithResource("volumeattachments"):
   347  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1alpha1().VolumeAttachments().Informer()}, nil
   348  
   349  		// Group=storage.k8s.io, Version=v1beta1
   350  	case storagev1beta1.SchemeGroupVersion.WithResource("csidrivers"):
   351  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().CSIDrivers().Informer()}, nil
   352  	case storagev1beta1.SchemeGroupVersion.WithResource("csinodes"):
   353  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().CSINodes().Informer()}, nil
   354  	case storagev1beta1.SchemeGroupVersion.WithResource("csistoragecapacities"):
   355  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().CSIStorageCapacities().Informer()}, nil
   356  	case storagev1beta1.SchemeGroupVersion.WithResource("storageclasses"):
   357  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().StorageClasses().Informer()}, nil
   358  	case storagev1beta1.SchemeGroupVersion.WithResource("volumeattachments"):
   359  		return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1beta1().VolumeAttachments().Informer()}, nil
   360  
   361  	}
   362  
   363  	return nil, fmt.Errorf("no informer found for %v", resource)
   364  }