github.com/cilium/cilium@v1.16.2/pkg/k8s/client/informers/externalversions/generic.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright Authors of Cilium 3 4 // Code generated by informer-gen. DO NOT EDIT. 5 6 package externalversions 7 8 import ( 9 "fmt" 10 11 v2 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2" 12 v2alpha1 "github.com/cilium/cilium/pkg/k8s/apis/cilium.io/v2alpha1" 13 schema "k8s.io/apimachinery/pkg/runtime/schema" 14 cache "k8s.io/client-go/tools/cache" 15 ) 16 17 // GenericInformer is type of SharedIndexInformer which will locate and delegate to other 18 // sharedInformers based on type 19 type GenericInformer interface { 20 Informer() cache.SharedIndexInformer 21 Lister() cache.GenericLister 22 } 23 24 type genericInformer struct { 25 informer cache.SharedIndexInformer 26 resource schema.GroupResource 27 } 28 29 // Informer returns the SharedIndexInformer. 30 func (f *genericInformer) Informer() cache.SharedIndexInformer { 31 return f.informer 32 } 33 34 // Lister returns the GenericLister. 35 func (f *genericInformer) Lister() cache.GenericLister { 36 return cache.NewGenericLister(f.Informer().GetIndexer(), f.resource) 37 } 38 39 // ForResource gives generic access to a shared informer of the matching type 40 // TODO extend this to unknown resources with a client pool 41 func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource) (GenericInformer, error) { 42 switch resource { 43 // Group=cilium.io, Version=v2 44 case v2.SchemeGroupVersion.WithResource("ciliumclusterwideenvoyconfigs"): 45 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumClusterwideEnvoyConfigs().Informer()}, nil 46 case v2.SchemeGroupVersion.WithResource("ciliumclusterwidenetworkpolicies"): 47 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumClusterwideNetworkPolicies().Informer()}, nil 48 case v2.SchemeGroupVersion.WithResource("ciliumegressgatewaypolicies"): 49 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumEgressGatewayPolicies().Informer()}, nil 50 case v2.SchemeGroupVersion.WithResource("ciliumendpoints"): 51 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumEndpoints().Informer()}, nil 52 case v2.SchemeGroupVersion.WithResource("ciliumenvoyconfigs"): 53 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumEnvoyConfigs().Informer()}, nil 54 case v2.SchemeGroupVersion.WithResource("ciliumexternalworkloads"): 55 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumExternalWorkloads().Informer()}, nil 56 case v2.SchemeGroupVersion.WithResource("ciliumidentities"): 57 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumIdentities().Informer()}, nil 58 case v2.SchemeGroupVersion.WithResource("ciliumlocalredirectpolicies"): 59 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumLocalRedirectPolicies().Informer()}, nil 60 case v2.SchemeGroupVersion.WithResource("ciliumnetworkpolicies"): 61 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumNetworkPolicies().Informer()}, nil 62 case v2.SchemeGroupVersion.WithResource("ciliumnodes"): 63 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumNodes().Informer()}, nil 64 case v2.SchemeGroupVersion.WithResource("ciliumnodeconfigs"): 65 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2().CiliumNodeConfigs().Informer()}, nil 66 67 // Group=cilium.io, Version=v2alpha1 68 case v2alpha1.SchemeGroupVersion.WithResource("ciliumbgpadvertisements"): 69 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumBGPAdvertisements().Informer()}, nil 70 case v2alpha1.SchemeGroupVersion.WithResource("ciliumbgpclusterconfigs"): 71 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumBGPClusterConfigs().Informer()}, nil 72 case v2alpha1.SchemeGroupVersion.WithResource("ciliumbgpnodeconfigs"): 73 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumBGPNodeConfigs().Informer()}, nil 74 case v2alpha1.SchemeGroupVersion.WithResource("ciliumbgpnodeconfigoverrides"): 75 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumBGPNodeConfigOverrides().Informer()}, nil 76 case v2alpha1.SchemeGroupVersion.WithResource("ciliumbgppeerconfigs"): 77 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumBGPPeerConfigs().Informer()}, nil 78 case v2alpha1.SchemeGroupVersion.WithResource("ciliumbgppeeringpolicies"): 79 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumBGPPeeringPolicies().Informer()}, nil 80 case v2alpha1.SchemeGroupVersion.WithResource("ciliumcidrgroups"): 81 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumCIDRGroups().Informer()}, nil 82 case v2alpha1.SchemeGroupVersion.WithResource("ciliumendpointslices"): 83 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumEndpointSlices().Informer()}, nil 84 case v2alpha1.SchemeGroupVersion.WithResource("ciliuml2announcementpolicies"): 85 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumL2AnnouncementPolicies().Informer()}, nil 86 case v2alpha1.SchemeGroupVersion.WithResource("ciliumloadbalancerippools"): 87 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumLoadBalancerIPPools().Informer()}, nil 88 case v2alpha1.SchemeGroupVersion.WithResource("ciliumnodeconfigs"): 89 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumNodeConfigs().Informer()}, nil 90 case v2alpha1.SchemeGroupVersion.WithResource("ciliumpodippools"): 91 return &genericInformer{resource: resource.GroupResource(), informer: f.Cilium().V2alpha1().CiliumPodIPPools().Informer()}, nil 92 93 } 94 95 return nil, fmt.Errorf("no informer found for %v", resource) 96 }