istio.io/istio@v0.0.0-20240520182934-d79c90f27776/pkg/config/schema/kubeclient/resources.gen.go (about) 1 // Code generated by pkg/config/schema/codegen/tools/collections.main.go. DO NOT EDIT. 2 3 package kubeclient 4 5 import ( 6 "context" 7 "fmt" 8 9 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 10 "k8s.io/apimachinery/pkg/runtime" 11 "k8s.io/apimachinery/pkg/runtime/schema" 12 "k8s.io/apimachinery/pkg/watch" 13 "k8s.io/client-go/tools/cache" 14 15 "istio.io/istio/pkg/config/schema/gvr" 16 "istio.io/istio/pkg/kube/informerfactory" 17 ktypes "istio.io/istio/pkg/kube/kubetypes" 18 "istio.io/istio/pkg/ptr" 19 20 k8sioapiadmissionregistrationv1 "k8s.io/api/admissionregistration/v1" 21 k8sioapiappsv1 "k8s.io/api/apps/v1" 22 k8sioapicertificatesv1 "k8s.io/api/certificates/v1" 23 k8sioapicoordinationv1 "k8s.io/api/coordination/v1" 24 k8sioapicorev1 "k8s.io/api/core/v1" 25 k8sioapidiscoveryv1 "k8s.io/api/discovery/v1" 26 k8sioapinetworkingv1 "k8s.io/api/networking/v1" 27 k8sioapiextensionsapiserverpkgapisapiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1" 28 sigsk8siogatewayapiapisv1 "sigs.k8s.io/gateway-api/apis/v1" 29 sigsk8siogatewayapiapisv1alpha2 "sigs.k8s.io/gateway-api/apis/v1alpha2" 30 sigsk8siogatewayapiapisv1beta1 "sigs.k8s.io/gateway-api/apis/v1beta1" 31 32 apiistioioapiextensionsv1alpha1 "istio.io/client-go/pkg/apis/extensions/v1alpha1" 33 apiistioioapinetworkingv1alpha3 "istio.io/client-go/pkg/apis/networking/v1alpha3" 34 apiistioioapinetworkingv1beta1 "istio.io/client-go/pkg/apis/networking/v1beta1" 35 apiistioioapisecurityv1beta1 "istio.io/client-go/pkg/apis/security/v1beta1" 36 apiistioioapitelemetryv1alpha1 "istio.io/client-go/pkg/apis/telemetry/v1alpha1" 37 ) 38 39 func GetWriteClient[T runtime.Object](c ClientGetter, namespace string) ktypes.WriteAPI[T] { 40 switch any(ptr.Empty[T]()).(type) { 41 case *apiistioioapisecurityv1beta1.AuthorizationPolicy: 42 return c.Istio().SecurityV1beta1().AuthorizationPolicies(namespace).(ktypes.WriteAPI[T]) 43 case *k8sioapicertificatesv1.CertificateSigningRequest: 44 return c.Kube().CertificatesV1().CertificateSigningRequests().(ktypes.WriteAPI[T]) 45 case *k8sioapicorev1.ConfigMap: 46 return c.Kube().CoreV1().ConfigMaps(namespace).(ktypes.WriteAPI[T]) 47 case *k8sioapiextensionsapiserverpkgapisapiextensionsv1.CustomResourceDefinition: 48 return c.Ext().ApiextensionsV1().CustomResourceDefinitions().(ktypes.WriteAPI[T]) 49 case *k8sioapiappsv1.DaemonSet: 50 return c.Kube().AppsV1().DaemonSets(namespace).(ktypes.WriteAPI[T]) 51 case *k8sioapiappsv1.Deployment: 52 return c.Kube().AppsV1().Deployments(namespace).(ktypes.WriteAPI[T]) 53 case *apiistioioapinetworkingv1alpha3.DestinationRule: 54 return c.Istio().NetworkingV1alpha3().DestinationRules(namespace).(ktypes.WriteAPI[T]) 55 case *k8sioapidiscoveryv1.EndpointSlice: 56 return c.Kube().DiscoveryV1().EndpointSlices(namespace).(ktypes.WriteAPI[T]) 57 case *k8sioapicorev1.Endpoints: 58 return c.Kube().CoreV1().Endpoints(namespace).(ktypes.WriteAPI[T]) 59 case *apiistioioapinetworkingv1alpha3.EnvoyFilter: 60 return c.Istio().NetworkingV1alpha3().EnvoyFilters(namespace).(ktypes.WriteAPI[T]) 61 case *sigsk8siogatewayapiapisv1.GRPCRoute: 62 return c.GatewayAPI().GatewayV1().GRPCRoutes(namespace).(ktypes.WriteAPI[T]) 63 case *apiistioioapinetworkingv1alpha3.Gateway: 64 return c.Istio().NetworkingV1alpha3().Gateways(namespace).(ktypes.WriteAPI[T]) 65 case *sigsk8siogatewayapiapisv1beta1.GatewayClass: 66 return c.GatewayAPI().GatewayV1beta1().GatewayClasses().(ktypes.WriteAPI[T]) 67 case *sigsk8siogatewayapiapisv1beta1.HTTPRoute: 68 return c.GatewayAPI().GatewayV1beta1().HTTPRoutes(namespace).(ktypes.WriteAPI[T]) 69 case *k8sioapinetworkingv1.Ingress: 70 return c.Kube().NetworkingV1().Ingresses(namespace).(ktypes.WriteAPI[T]) 71 case *k8sioapinetworkingv1.IngressClass: 72 return c.Kube().NetworkingV1().IngressClasses().(ktypes.WriteAPI[T]) 73 case *sigsk8siogatewayapiapisv1beta1.Gateway: 74 return c.GatewayAPI().GatewayV1beta1().Gateways(namespace).(ktypes.WriteAPI[T]) 75 case *k8sioapicoordinationv1.Lease: 76 return c.Kube().CoordinationV1().Leases(namespace).(ktypes.WriteAPI[T]) 77 case *k8sioapiadmissionregistrationv1.MutatingWebhookConfiguration: 78 return c.Kube().AdmissionregistrationV1().MutatingWebhookConfigurations().(ktypes.WriteAPI[T]) 79 case *k8sioapicorev1.Namespace: 80 return c.Kube().CoreV1().Namespaces().(ktypes.WriteAPI[T]) 81 case *k8sioapicorev1.Node: 82 return c.Kube().CoreV1().Nodes().(ktypes.WriteAPI[T]) 83 case *apiistioioapisecurityv1beta1.PeerAuthentication: 84 return c.Istio().SecurityV1beta1().PeerAuthentications(namespace).(ktypes.WriteAPI[T]) 85 case *k8sioapicorev1.Pod: 86 return c.Kube().CoreV1().Pods(namespace).(ktypes.WriteAPI[T]) 87 case *apiistioioapinetworkingv1beta1.ProxyConfig: 88 return c.Istio().NetworkingV1beta1().ProxyConfigs(namespace).(ktypes.WriteAPI[T]) 89 case *sigsk8siogatewayapiapisv1beta1.ReferenceGrant: 90 return c.GatewayAPI().GatewayV1beta1().ReferenceGrants(namespace).(ktypes.WriteAPI[T]) 91 case *apiistioioapisecurityv1beta1.RequestAuthentication: 92 return c.Istio().SecurityV1beta1().RequestAuthentications(namespace).(ktypes.WriteAPI[T]) 93 case *k8sioapicorev1.Secret: 94 return c.Kube().CoreV1().Secrets(namespace).(ktypes.WriteAPI[T]) 95 case *k8sioapicorev1.Service: 96 return c.Kube().CoreV1().Services(namespace).(ktypes.WriteAPI[T]) 97 case *k8sioapicorev1.ServiceAccount: 98 return c.Kube().CoreV1().ServiceAccounts(namespace).(ktypes.WriteAPI[T]) 99 case *apiistioioapinetworkingv1alpha3.ServiceEntry: 100 return c.Istio().NetworkingV1alpha3().ServiceEntries(namespace).(ktypes.WriteAPI[T]) 101 case *apiistioioapinetworkingv1alpha3.Sidecar: 102 return c.Istio().NetworkingV1alpha3().Sidecars(namespace).(ktypes.WriteAPI[T]) 103 case *k8sioapiappsv1.StatefulSet: 104 return c.Kube().AppsV1().StatefulSets(namespace).(ktypes.WriteAPI[T]) 105 case *sigsk8siogatewayapiapisv1alpha2.TCPRoute: 106 return c.GatewayAPI().GatewayV1alpha2().TCPRoutes(namespace).(ktypes.WriteAPI[T]) 107 case *sigsk8siogatewayapiapisv1alpha2.TLSRoute: 108 return c.GatewayAPI().GatewayV1alpha2().TLSRoutes(namespace).(ktypes.WriteAPI[T]) 109 case *apiistioioapitelemetryv1alpha1.Telemetry: 110 return c.Istio().TelemetryV1alpha1().Telemetries(namespace).(ktypes.WriteAPI[T]) 111 case *sigsk8siogatewayapiapisv1alpha2.UDPRoute: 112 return c.GatewayAPI().GatewayV1alpha2().UDPRoutes(namespace).(ktypes.WriteAPI[T]) 113 case *k8sioapiadmissionregistrationv1.ValidatingWebhookConfiguration: 114 return c.Kube().AdmissionregistrationV1().ValidatingWebhookConfigurations().(ktypes.WriteAPI[T]) 115 case *apiistioioapinetworkingv1alpha3.VirtualService: 116 return c.Istio().NetworkingV1alpha3().VirtualServices(namespace).(ktypes.WriteAPI[T]) 117 case *apiistioioapiextensionsv1alpha1.WasmPlugin: 118 return c.Istio().ExtensionsV1alpha1().WasmPlugins(namespace).(ktypes.WriteAPI[T]) 119 case *apiistioioapinetworkingv1alpha3.WorkloadEntry: 120 return c.Istio().NetworkingV1alpha3().WorkloadEntries(namespace).(ktypes.WriteAPI[T]) 121 case *apiistioioapinetworkingv1alpha3.WorkloadGroup: 122 return c.Istio().NetworkingV1alpha3().WorkloadGroups(namespace).(ktypes.WriteAPI[T]) 123 default: 124 panic(fmt.Sprintf("Unknown type %T", ptr.Empty[T]())) 125 } 126 } 127 128 func GetClient[T, TL runtime.Object](c ClientGetter, namespace string) ktypes.ReadWriteAPI[T, TL] { 129 switch any(ptr.Empty[T]()).(type) { 130 case *apiistioioapisecurityv1beta1.AuthorizationPolicy: 131 return c.Istio().SecurityV1beta1().AuthorizationPolicies(namespace).(ktypes.ReadWriteAPI[T, TL]) 132 case *k8sioapicertificatesv1.CertificateSigningRequest: 133 return c.Kube().CertificatesV1().CertificateSigningRequests().(ktypes.ReadWriteAPI[T, TL]) 134 case *k8sioapicorev1.ConfigMap: 135 return c.Kube().CoreV1().ConfigMaps(namespace).(ktypes.ReadWriteAPI[T, TL]) 136 case *k8sioapiextensionsapiserverpkgapisapiextensionsv1.CustomResourceDefinition: 137 return c.Ext().ApiextensionsV1().CustomResourceDefinitions().(ktypes.ReadWriteAPI[T, TL]) 138 case *k8sioapiappsv1.DaemonSet: 139 return c.Kube().AppsV1().DaemonSets(namespace).(ktypes.ReadWriteAPI[T, TL]) 140 case *k8sioapiappsv1.Deployment: 141 return c.Kube().AppsV1().Deployments(namespace).(ktypes.ReadWriteAPI[T, TL]) 142 case *apiistioioapinetworkingv1alpha3.DestinationRule: 143 return c.Istio().NetworkingV1alpha3().DestinationRules(namespace).(ktypes.ReadWriteAPI[T, TL]) 144 case *k8sioapidiscoveryv1.EndpointSlice: 145 return c.Kube().DiscoveryV1().EndpointSlices(namespace).(ktypes.ReadWriteAPI[T, TL]) 146 case *k8sioapicorev1.Endpoints: 147 return c.Kube().CoreV1().Endpoints(namespace).(ktypes.ReadWriteAPI[T, TL]) 148 case *apiistioioapinetworkingv1alpha3.EnvoyFilter: 149 return c.Istio().NetworkingV1alpha3().EnvoyFilters(namespace).(ktypes.ReadWriteAPI[T, TL]) 150 case *sigsk8siogatewayapiapisv1.GRPCRoute: 151 return c.GatewayAPI().GatewayV1().GRPCRoutes(namespace).(ktypes.ReadWriteAPI[T, TL]) 152 case *apiistioioapinetworkingv1alpha3.Gateway: 153 return c.Istio().NetworkingV1alpha3().Gateways(namespace).(ktypes.ReadWriteAPI[T, TL]) 154 case *sigsk8siogatewayapiapisv1beta1.GatewayClass: 155 return c.GatewayAPI().GatewayV1beta1().GatewayClasses().(ktypes.ReadWriteAPI[T, TL]) 156 case *sigsk8siogatewayapiapisv1beta1.HTTPRoute: 157 return c.GatewayAPI().GatewayV1beta1().HTTPRoutes(namespace).(ktypes.ReadWriteAPI[T, TL]) 158 case *k8sioapinetworkingv1.Ingress: 159 return c.Kube().NetworkingV1().Ingresses(namespace).(ktypes.ReadWriteAPI[T, TL]) 160 case *k8sioapinetworkingv1.IngressClass: 161 return c.Kube().NetworkingV1().IngressClasses().(ktypes.ReadWriteAPI[T, TL]) 162 case *sigsk8siogatewayapiapisv1beta1.Gateway: 163 return c.GatewayAPI().GatewayV1beta1().Gateways(namespace).(ktypes.ReadWriteAPI[T, TL]) 164 case *k8sioapicoordinationv1.Lease: 165 return c.Kube().CoordinationV1().Leases(namespace).(ktypes.ReadWriteAPI[T, TL]) 166 case *k8sioapiadmissionregistrationv1.MutatingWebhookConfiguration: 167 return c.Kube().AdmissionregistrationV1().MutatingWebhookConfigurations().(ktypes.ReadWriteAPI[T, TL]) 168 case *k8sioapicorev1.Namespace: 169 return c.Kube().CoreV1().Namespaces().(ktypes.ReadWriteAPI[T, TL]) 170 case *k8sioapicorev1.Node: 171 return c.Kube().CoreV1().Nodes().(ktypes.ReadWriteAPI[T, TL]) 172 case *apiistioioapisecurityv1beta1.PeerAuthentication: 173 return c.Istio().SecurityV1beta1().PeerAuthentications(namespace).(ktypes.ReadWriteAPI[T, TL]) 174 case *k8sioapicorev1.Pod: 175 return c.Kube().CoreV1().Pods(namespace).(ktypes.ReadWriteAPI[T, TL]) 176 case *apiistioioapinetworkingv1beta1.ProxyConfig: 177 return c.Istio().NetworkingV1beta1().ProxyConfigs(namespace).(ktypes.ReadWriteAPI[T, TL]) 178 case *sigsk8siogatewayapiapisv1beta1.ReferenceGrant: 179 return c.GatewayAPI().GatewayV1beta1().ReferenceGrants(namespace).(ktypes.ReadWriteAPI[T, TL]) 180 case *apiistioioapisecurityv1beta1.RequestAuthentication: 181 return c.Istio().SecurityV1beta1().RequestAuthentications(namespace).(ktypes.ReadWriteAPI[T, TL]) 182 case *k8sioapicorev1.Secret: 183 return c.Kube().CoreV1().Secrets(namespace).(ktypes.ReadWriteAPI[T, TL]) 184 case *k8sioapicorev1.Service: 185 return c.Kube().CoreV1().Services(namespace).(ktypes.ReadWriteAPI[T, TL]) 186 case *k8sioapicorev1.ServiceAccount: 187 return c.Kube().CoreV1().ServiceAccounts(namespace).(ktypes.ReadWriteAPI[T, TL]) 188 case *apiistioioapinetworkingv1alpha3.ServiceEntry: 189 return c.Istio().NetworkingV1alpha3().ServiceEntries(namespace).(ktypes.ReadWriteAPI[T, TL]) 190 case *apiistioioapinetworkingv1alpha3.Sidecar: 191 return c.Istio().NetworkingV1alpha3().Sidecars(namespace).(ktypes.ReadWriteAPI[T, TL]) 192 case *k8sioapiappsv1.StatefulSet: 193 return c.Kube().AppsV1().StatefulSets(namespace).(ktypes.ReadWriteAPI[T, TL]) 194 case *sigsk8siogatewayapiapisv1alpha2.TCPRoute: 195 return c.GatewayAPI().GatewayV1alpha2().TCPRoutes(namespace).(ktypes.ReadWriteAPI[T, TL]) 196 case *sigsk8siogatewayapiapisv1alpha2.TLSRoute: 197 return c.GatewayAPI().GatewayV1alpha2().TLSRoutes(namespace).(ktypes.ReadWriteAPI[T, TL]) 198 case *apiistioioapitelemetryv1alpha1.Telemetry: 199 return c.Istio().TelemetryV1alpha1().Telemetries(namespace).(ktypes.ReadWriteAPI[T, TL]) 200 case *sigsk8siogatewayapiapisv1alpha2.UDPRoute: 201 return c.GatewayAPI().GatewayV1alpha2().UDPRoutes(namespace).(ktypes.ReadWriteAPI[T, TL]) 202 case *k8sioapiadmissionregistrationv1.ValidatingWebhookConfiguration: 203 return c.Kube().AdmissionregistrationV1().ValidatingWebhookConfigurations().(ktypes.ReadWriteAPI[T, TL]) 204 case *apiistioioapinetworkingv1alpha3.VirtualService: 205 return c.Istio().NetworkingV1alpha3().VirtualServices(namespace).(ktypes.ReadWriteAPI[T, TL]) 206 case *apiistioioapiextensionsv1alpha1.WasmPlugin: 207 return c.Istio().ExtensionsV1alpha1().WasmPlugins(namespace).(ktypes.ReadWriteAPI[T, TL]) 208 case *apiistioioapinetworkingv1alpha3.WorkloadEntry: 209 return c.Istio().NetworkingV1alpha3().WorkloadEntries(namespace).(ktypes.ReadWriteAPI[T, TL]) 210 case *apiistioioapinetworkingv1alpha3.WorkloadGroup: 211 return c.Istio().NetworkingV1alpha3().WorkloadGroups(namespace).(ktypes.ReadWriteAPI[T, TL]) 212 default: 213 panic(fmt.Sprintf("Unknown type %T", ptr.Empty[T]())) 214 } 215 } 216 217 func gvrToObject(g schema.GroupVersionResource) runtime.Object { 218 switch g { 219 case gvr.AuthorizationPolicy: 220 return &apiistioioapisecurityv1beta1.AuthorizationPolicy{} 221 case gvr.CertificateSigningRequest: 222 return &k8sioapicertificatesv1.CertificateSigningRequest{} 223 case gvr.ConfigMap: 224 return &k8sioapicorev1.ConfigMap{} 225 case gvr.CustomResourceDefinition: 226 return &k8sioapiextensionsapiserverpkgapisapiextensionsv1.CustomResourceDefinition{} 227 case gvr.DaemonSet: 228 return &k8sioapiappsv1.DaemonSet{} 229 case gvr.Deployment: 230 return &k8sioapiappsv1.Deployment{} 231 case gvr.DestinationRule: 232 return &apiistioioapinetworkingv1alpha3.DestinationRule{} 233 case gvr.EndpointSlice: 234 return &k8sioapidiscoveryv1.EndpointSlice{} 235 case gvr.Endpoints: 236 return &k8sioapicorev1.Endpoints{} 237 case gvr.EnvoyFilter: 238 return &apiistioioapinetworkingv1alpha3.EnvoyFilter{} 239 case gvr.GRPCRoute: 240 return &sigsk8siogatewayapiapisv1.GRPCRoute{} 241 case gvr.Gateway: 242 return &apiistioioapinetworkingv1alpha3.Gateway{} 243 case gvr.GatewayClass: 244 return &sigsk8siogatewayapiapisv1beta1.GatewayClass{} 245 case gvr.HTTPRoute: 246 return &sigsk8siogatewayapiapisv1beta1.HTTPRoute{} 247 case gvr.Ingress: 248 return &k8sioapinetworkingv1.Ingress{} 249 case gvr.IngressClass: 250 return &k8sioapinetworkingv1.IngressClass{} 251 case gvr.KubernetesGateway: 252 return &sigsk8siogatewayapiapisv1beta1.Gateway{} 253 case gvr.Lease: 254 return &k8sioapicoordinationv1.Lease{} 255 case gvr.MutatingWebhookConfiguration: 256 return &k8sioapiadmissionregistrationv1.MutatingWebhookConfiguration{} 257 case gvr.Namespace: 258 return &k8sioapicorev1.Namespace{} 259 case gvr.Node: 260 return &k8sioapicorev1.Node{} 261 case gvr.PeerAuthentication: 262 return &apiistioioapisecurityv1beta1.PeerAuthentication{} 263 case gvr.Pod: 264 return &k8sioapicorev1.Pod{} 265 case gvr.ProxyConfig: 266 return &apiistioioapinetworkingv1beta1.ProxyConfig{} 267 case gvr.ReferenceGrant: 268 return &sigsk8siogatewayapiapisv1beta1.ReferenceGrant{} 269 case gvr.RequestAuthentication: 270 return &apiistioioapisecurityv1beta1.RequestAuthentication{} 271 case gvr.Secret: 272 return &k8sioapicorev1.Secret{} 273 case gvr.Service: 274 return &k8sioapicorev1.Service{} 275 case gvr.ServiceAccount: 276 return &k8sioapicorev1.ServiceAccount{} 277 case gvr.ServiceEntry: 278 return &apiistioioapinetworkingv1alpha3.ServiceEntry{} 279 case gvr.Sidecar: 280 return &apiistioioapinetworkingv1alpha3.Sidecar{} 281 case gvr.StatefulSet: 282 return &k8sioapiappsv1.StatefulSet{} 283 case gvr.TCPRoute: 284 return &sigsk8siogatewayapiapisv1alpha2.TCPRoute{} 285 case gvr.TLSRoute: 286 return &sigsk8siogatewayapiapisv1alpha2.TLSRoute{} 287 case gvr.Telemetry: 288 return &apiistioioapitelemetryv1alpha1.Telemetry{} 289 case gvr.UDPRoute: 290 return &sigsk8siogatewayapiapisv1alpha2.UDPRoute{} 291 case gvr.ValidatingWebhookConfiguration: 292 return &k8sioapiadmissionregistrationv1.ValidatingWebhookConfiguration{} 293 case gvr.VirtualService: 294 return &apiistioioapinetworkingv1alpha3.VirtualService{} 295 case gvr.WasmPlugin: 296 return &apiistioioapiextensionsv1alpha1.WasmPlugin{} 297 case gvr.WorkloadEntry: 298 return &apiistioioapinetworkingv1alpha3.WorkloadEntry{} 299 case gvr.WorkloadGroup: 300 return &apiistioioapinetworkingv1alpha3.WorkloadGroup{} 301 default: 302 panic(fmt.Sprintf("Unknown type %v", g)) 303 } 304 } 305 306 func getInformerFiltered(c ClientGetter, opts ktypes.InformerOptions, g schema.GroupVersionResource) informerfactory.StartableInformer { 307 var l func(options metav1.ListOptions) (runtime.Object, error) 308 var w func(options metav1.ListOptions) (watch.Interface, error) 309 310 switch g { 311 case gvr.AuthorizationPolicy: 312 l = func(options metav1.ListOptions) (runtime.Object, error) { 313 return c.Istio().SecurityV1beta1().AuthorizationPolicies(opts.Namespace).List(context.Background(), options) 314 } 315 w = func(options metav1.ListOptions) (watch.Interface, error) { 316 return c.Istio().SecurityV1beta1().AuthorizationPolicies(opts.Namespace).Watch(context.Background(), options) 317 } 318 case gvr.CertificateSigningRequest: 319 l = func(options metav1.ListOptions) (runtime.Object, error) { 320 return c.Kube().CertificatesV1().CertificateSigningRequests().List(context.Background(), options) 321 } 322 w = func(options metav1.ListOptions) (watch.Interface, error) { 323 return c.Kube().CertificatesV1().CertificateSigningRequests().Watch(context.Background(), options) 324 } 325 case gvr.ConfigMap: 326 l = func(options metav1.ListOptions) (runtime.Object, error) { 327 return c.Kube().CoreV1().ConfigMaps(opts.Namespace).List(context.Background(), options) 328 } 329 w = func(options metav1.ListOptions) (watch.Interface, error) { 330 return c.Kube().CoreV1().ConfigMaps(opts.Namespace).Watch(context.Background(), options) 331 } 332 case gvr.CustomResourceDefinition: 333 l = func(options metav1.ListOptions) (runtime.Object, error) { 334 return c.Ext().ApiextensionsV1().CustomResourceDefinitions().List(context.Background(), options) 335 } 336 w = func(options metav1.ListOptions) (watch.Interface, error) { 337 return c.Ext().ApiextensionsV1().CustomResourceDefinitions().Watch(context.Background(), options) 338 } 339 case gvr.DaemonSet: 340 l = func(options metav1.ListOptions) (runtime.Object, error) { 341 return c.Kube().AppsV1().DaemonSets(opts.Namespace).List(context.Background(), options) 342 } 343 w = func(options metav1.ListOptions) (watch.Interface, error) { 344 return c.Kube().AppsV1().DaemonSets(opts.Namespace).Watch(context.Background(), options) 345 } 346 case gvr.Deployment: 347 l = func(options metav1.ListOptions) (runtime.Object, error) { 348 return c.Kube().AppsV1().Deployments(opts.Namespace).List(context.Background(), options) 349 } 350 w = func(options metav1.ListOptions) (watch.Interface, error) { 351 return c.Kube().AppsV1().Deployments(opts.Namespace).Watch(context.Background(), options) 352 } 353 case gvr.DestinationRule: 354 l = func(options metav1.ListOptions) (runtime.Object, error) { 355 return c.Istio().NetworkingV1alpha3().DestinationRules(opts.Namespace).List(context.Background(), options) 356 } 357 w = func(options metav1.ListOptions) (watch.Interface, error) { 358 return c.Istio().NetworkingV1alpha3().DestinationRules(opts.Namespace).Watch(context.Background(), options) 359 } 360 case gvr.EndpointSlice: 361 l = func(options metav1.ListOptions) (runtime.Object, error) { 362 return c.Kube().DiscoveryV1().EndpointSlices(opts.Namespace).List(context.Background(), options) 363 } 364 w = func(options metav1.ListOptions) (watch.Interface, error) { 365 return c.Kube().DiscoveryV1().EndpointSlices(opts.Namespace).Watch(context.Background(), options) 366 } 367 case gvr.Endpoints: 368 l = func(options metav1.ListOptions) (runtime.Object, error) { 369 return c.Kube().CoreV1().Endpoints(opts.Namespace).List(context.Background(), options) 370 } 371 w = func(options metav1.ListOptions) (watch.Interface, error) { 372 return c.Kube().CoreV1().Endpoints(opts.Namespace).Watch(context.Background(), options) 373 } 374 case gvr.EnvoyFilter: 375 l = func(options metav1.ListOptions) (runtime.Object, error) { 376 return c.Istio().NetworkingV1alpha3().EnvoyFilters(opts.Namespace).List(context.Background(), options) 377 } 378 w = func(options metav1.ListOptions) (watch.Interface, error) { 379 return c.Istio().NetworkingV1alpha3().EnvoyFilters(opts.Namespace).Watch(context.Background(), options) 380 } 381 case gvr.GRPCRoute: 382 l = func(options metav1.ListOptions) (runtime.Object, error) { 383 return c.GatewayAPI().GatewayV1().GRPCRoutes(opts.Namespace).List(context.Background(), options) 384 } 385 w = func(options metav1.ListOptions) (watch.Interface, error) { 386 return c.GatewayAPI().GatewayV1().GRPCRoutes(opts.Namespace).Watch(context.Background(), options) 387 } 388 case gvr.Gateway: 389 l = func(options metav1.ListOptions) (runtime.Object, error) { 390 return c.Istio().NetworkingV1alpha3().Gateways(opts.Namespace).List(context.Background(), options) 391 } 392 w = func(options metav1.ListOptions) (watch.Interface, error) { 393 return c.Istio().NetworkingV1alpha3().Gateways(opts.Namespace).Watch(context.Background(), options) 394 } 395 case gvr.GatewayClass: 396 l = func(options metav1.ListOptions) (runtime.Object, error) { 397 return c.GatewayAPI().GatewayV1beta1().GatewayClasses().List(context.Background(), options) 398 } 399 w = func(options metav1.ListOptions) (watch.Interface, error) { 400 return c.GatewayAPI().GatewayV1beta1().GatewayClasses().Watch(context.Background(), options) 401 } 402 case gvr.HTTPRoute: 403 l = func(options metav1.ListOptions) (runtime.Object, error) { 404 return c.GatewayAPI().GatewayV1beta1().HTTPRoutes(opts.Namespace).List(context.Background(), options) 405 } 406 w = func(options metav1.ListOptions) (watch.Interface, error) { 407 return c.GatewayAPI().GatewayV1beta1().HTTPRoutes(opts.Namespace).Watch(context.Background(), options) 408 } 409 case gvr.Ingress: 410 l = func(options metav1.ListOptions) (runtime.Object, error) { 411 return c.Kube().NetworkingV1().Ingresses(opts.Namespace).List(context.Background(), options) 412 } 413 w = func(options metav1.ListOptions) (watch.Interface, error) { 414 return c.Kube().NetworkingV1().Ingresses(opts.Namespace).Watch(context.Background(), options) 415 } 416 case gvr.IngressClass: 417 l = func(options metav1.ListOptions) (runtime.Object, error) { 418 return c.Kube().NetworkingV1().IngressClasses().List(context.Background(), options) 419 } 420 w = func(options metav1.ListOptions) (watch.Interface, error) { 421 return c.Kube().NetworkingV1().IngressClasses().Watch(context.Background(), options) 422 } 423 case gvr.KubernetesGateway: 424 l = func(options metav1.ListOptions) (runtime.Object, error) { 425 return c.GatewayAPI().GatewayV1beta1().Gateways(opts.Namespace).List(context.Background(), options) 426 } 427 w = func(options metav1.ListOptions) (watch.Interface, error) { 428 return c.GatewayAPI().GatewayV1beta1().Gateways(opts.Namespace).Watch(context.Background(), options) 429 } 430 case gvr.Lease: 431 l = func(options metav1.ListOptions) (runtime.Object, error) { 432 return c.Kube().CoordinationV1().Leases(opts.Namespace).List(context.Background(), options) 433 } 434 w = func(options metav1.ListOptions) (watch.Interface, error) { 435 return c.Kube().CoordinationV1().Leases(opts.Namespace).Watch(context.Background(), options) 436 } 437 case gvr.MutatingWebhookConfiguration: 438 l = func(options metav1.ListOptions) (runtime.Object, error) { 439 return c.Kube().AdmissionregistrationV1().MutatingWebhookConfigurations().List(context.Background(), options) 440 } 441 w = func(options metav1.ListOptions) (watch.Interface, error) { 442 return c.Kube().AdmissionregistrationV1().MutatingWebhookConfigurations().Watch(context.Background(), options) 443 } 444 case gvr.Namespace: 445 l = func(options metav1.ListOptions) (runtime.Object, error) { 446 return c.Kube().CoreV1().Namespaces().List(context.Background(), options) 447 } 448 w = func(options metav1.ListOptions) (watch.Interface, error) { 449 return c.Kube().CoreV1().Namespaces().Watch(context.Background(), options) 450 } 451 case gvr.Node: 452 l = func(options metav1.ListOptions) (runtime.Object, error) { 453 return c.Kube().CoreV1().Nodes().List(context.Background(), options) 454 } 455 w = func(options metav1.ListOptions) (watch.Interface, error) { 456 return c.Kube().CoreV1().Nodes().Watch(context.Background(), options) 457 } 458 case gvr.PeerAuthentication: 459 l = func(options metav1.ListOptions) (runtime.Object, error) { 460 return c.Istio().SecurityV1beta1().PeerAuthentications(opts.Namespace).List(context.Background(), options) 461 } 462 w = func(options metav1.ListOptions) (watch.Interface, error) { 463 return c.Istio().SecurityV1beta1().PeerAuthentications(opts.Namespace).Watch(context.Background(), options) 464 } 465 case gvr.Pod: 466 l = func(options metav1.ListOptions) (runtime.Object, error) { 467 return c.Kube().CoreV1().Pods(opts.Namespace).List(context.Background(), options) 468 } 469 w = func(options metav1.ListOptions) (watch.Interface, error) { 470 return c.Kube().CoreV1().Pods(opts.Namespace).Watch(context.Background(), options) 471 } 472 case gvr.ProxyConfig: 473 l = func(options metav1.ListOptions) (runtime.Object, error) { 474 return c.Istio().NetworkingV1beta1().ProxyConfigs(opts.Namespace).List(context.Background(), options) 475 } 476 w = func(options metav1.ListOptions) (watch.Interface, error) { 477 return c.Istio().NetworkingV1beta1().ProxyConfigs(opts.Namespace).Watch(context.Background(), options) 478 } 479 case gvr.ReferenceGrant: 480 l = func(options metav1.ListOptions) (runtime.Object, error) { 481 return c.GatewayAPI().GatewayV1beta1().ReferenceGrants(opts.Namespace).List(context.Background(), options) 482 } 483 w = func(options metav1.ListOptions) (watch.Interface, error) { 484 return c.GatewayAPI().GatewayV1beta1().ReferenceGrants(opts.Namespace).Watch(context.Background(), options) 485 } 486 case gvr.RequestAuthentication: 487 l = func(options metav1.ListOptions) (runtime.Object, error) { 488 return c.Istio().SecurityV1beta1().RequestAuthentications(opts.Namespace).List(context.Background(), options) 489 } 490 w = func(options metav1.ListOptions) (watch.Interface, error) { 491 return c.Istio().SecurityV1beta1().RequestAuthentications(opts.Namespace).Watch(context.Background(), options) 492 } 493 case gvr.Secret: 494 l = func(options metav1.ListOptions) (runtime.Object, error) { 495 return c.Kube().CoreV1().Secrets(opts.Namespace).List(context.Background(), options) 496 } 497 w = func(options metav1.ListOptions) (watch.Interface, error) { 498 return c.Kube().CoreV1().Secrets(opts.Namespace).Watch(context.Background(), options) 499 } 500 case gvr.Service: 501 l = func(options metav1.ListOptions) (runtime.Object, error) { 502 return c.Kube().CoreV1().Services(opts.Namespace).List(context.Background(), options) 503 } 504 w = func(options metav1.ListOptions) (watch.Interface, error) { 505 return c.Kube().CoreV1().Services(opts.Namespace).Watch(context.Background(), options) 506 } 507 case gvr.ServiceAccount: 508 l = func(options metav1.ListOptions) (runtime.Object, error) { 509 return c.Kube().CoreV1().ServiceAccounts(opts.Namespace).List(context.Background(), options) 510 } 511 w = func(options metav1.ListOptions) (watch.Interface, error) { 512 return c.Kube().CoreV1().ServiceAccounts(opts.Namespace).Watch(context.Background(), options) 513 } 514 case gvr.ServiceEntry: 515 l = func(options metav1.ListOptions) (runtime.Object, error) { 516 return c.Istio().NetworkingV1alpha3().ServiceEntries(opts.Namespace).List(context.Background(), options) 517 } 518 w = func(options metav1.ListOptions) (watch.Interface, error) { 519 return c.Istio().NetworkingV1alpha3().ServiceEntries(opts.Namespace).Watch(context.Background(), options) 520 } 521 case gvr.Sidecar: 522 l = func(options metav1.ListOptions) (runtime.Object, error) { 523 return c.Istio().NetworkingV1alpha3().Sidecars(opts.Namespace).List(context.Background(), options) 524 } 525 w = func(options metav1.ListOptions) (watch.Interface, error) { 526 return c.Istio().NetworkingV1alpha3().Sidecars(opts.Namespace).Watch(context.Background(), options) 527 } 528 case gvr.StatefulSet: 529 l = func(options metav1.ListOptions) (runtime.Object, error) { 530 return c.Kube().AppsV1().StatefulSets(opts.Namespace).List(context.Background(), options) 531 } 532 w = func(options metav1.ListOptions) (watch.Interface, error) { 533 return c.Kube().AppsV1().StatefulSets(opts.Namespace).Watch(context.Background(), options) 534 } 535 case gvr.TCPRoute: 536 l = func(options metav1.ListOptions) (runtime.Object, error) { 537 return c.GatewayAPI().GatewayV1alpha2().TCPRoutes(opts.Namespace).List(context.Background(), options) 538 } 539 w = func(options metav1.ListOptions) (watch.Interface, error) { 540 return c.GatewayAPI().GatewayV1alpha2().TCPRoutes(opts.Namespace).Watch(context.Background(), options) 541 } 542 case gvr.TLSRoute: 543 l = func(options metav1.ListOptions) (runtime.Object, error) { 544 return c.GatewayAPI().GatewayV1alpha2().TLSRoutes(opts.Namespace).List(context.Background(), options) 545 } 546 w = func(options metav1.ListOptions) (watch.Interface, error) { 547 return c.GatewayAPI().GatewayV1alpha2().TLSRoutes(opts.Namespace).Watch(context.Background(), options) 548 } 549 case gvr.Telemetry: 550 l = func(options metav1.ListOptions) (runtime.Object, error) { 551 return c.Istio().TelemetryV1alpha1().Telemetries(opts.Namespace).List(context.Background(), options) 552 } 553 w = func(options metav1.ListOptions) (watch.Interface, error) { 554 return c.Istio().TelemetryV1alpha1().Telemetries(opts.Namespace).Watch(context.Background(), options) 555 } 556 case gvr.UDPRoute: 557 l = func(options metav1.ListOptions) (runtime.Object, error) { 558 return c.GatewayAPI().GatewayV1alpha2().UDPRoutes(opts.Namespace).List(context.Background(), options) 559 } 560 w = func(options metav1.ListOptions) (watch.Interface, error) { 561 return c.GatewayAPI().GatewayV1alpha2().UDPRoutes(opts.Namespace).Watch(context.Background(), options) 562 } 563 case gvr.ValidatingWebhookConfiguration: 564 l = func(options metav1.ListOptions) (runtime.Object, error) { 565 return c.Kube().AdmissionregistrationV1().ValidatingWebhookConfigurations().List(context.Background(), options) 566 } 567 w = func(options metav1.ListOptions) (watch.Interface, error) { 568 return c.Kube().AdmissionregistrationV1().ValidatingWebhookConfigurations().Watch(context.Background(), options) 569 } 570 case gvr.VirtualService: 571 l = func(options metav1.ListOptions) (runtime.Object, error) { 572 return c.Istio().NetworkingV1alpha3().VirtualServices(opts.Namespace).List(context.Background(), options) 573 } 574 w = func(options metav1.ListOptions) (watch.Interface, error) { 575 return c.Istio().NetworkingV1alpha3().VirtualServices(opts.Namespace).Watch(context.Background(), options) 576 } 577 case gvr.WasmPlugin: 578 l = func(options metav1.ListOptions) (runtime.Object, error) { 579 return c.Istio().ExtensionsV1alpha1().WasmPlugins(opts.Namespace).List(context.Background(), options) 580 } 581 w = func(options metav1.ListOptions) (watch.Interface, error) { 582 return c.Istio().ExtensionsV1alpha1().WasmPlugins(opts.Namespace).Watch(context.Background(), options) 583 } 584 case gvr.WorkloadEntry: 585 l = func(options metav1.ListOptions) (runtime.Object, error) { 586 return c.Istio().NetworkingV1alpha3().WorkloadEntries(opts.Namespace).List(context.Background(), options) 587 } 588 w = func(options metav1.ListOptions) (watch.Interface, error) { 589 return c.Istio().NetworkingV1alpha3().WorkloadEntries(opts.Namespace).Watch(context.Background(), options) 590 } 591 case gvr.WorkloadGroup: 592 l = func(options metav1.ListOptions) (runtime.Object, error) { 593 return c.Istio().NetworkingV1alpha3().WorkloadGroups(opts.Namespace).List(context.Background(), options) 594 } 595 w = func(options metav1.ListOptions) (watch.Interface, error) { 596 return c.Istio().NetworkingV1alpha3().WorkloadGroups(opts.Namespace).Watch(context.Background(), options) 597 } 598 default: 599 panic(fmt.Sprintf("Unknown type %v", g)) 600 } 601 return c.Informers().InformerFor(g, opts, func() cache.SharedIndexInformer { 602 inf := cache.NewSharedIndexInformer( 603 &cache.ListWatch{ 604 ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { 605 options.FieldSelector = opts.FieldSelector 606 options.LabelSelector = opts.LabelSelector 607 return l(options) 608 }, 609 WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { 610 options.FieldSelector = opts.FieldSelector 611 options.LabelSelector = opts.LabelSelector 612 return w(options) 613 }, 614 }, 615 gvrToObject(g), 616 0, 617 cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, 618 ) 619 setupInformer(opts, inf) 620 return inf 621 }) 622 }