mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-10-09 00:26:58 +00:00
162 lines
6.6 KiB
Go
162 lines
6.6 KiB
Go
/*
|
|
Copyright 2016 The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
// This file was automatically generated by informer-gen with arguments: --input-dirs=[k8s.io/kubernetes/pkg/api,k8s.io/kubernetes/pkg/api/v1,k8s.io/kubernetes/pkg/apis/abac,k8s.io/kubernetes/pkg/apis/abac/v0,k8s.io/kubernetes/pkg/apis/abac/v1beta1,k8s.io/kubernetes/pkg/apis/apps,k8s.io/kubernetes/pkg/apis/apps/v1beta1,k8s.io/kubernetes/pkg/apis/authentication,k8s.io/kubernetes/pkg/apis/authentication/v1beta1,k8s.io/kubernetes/pkg/apis/authorization,k8s.io/kubernetes/pkg/apis/authorization/v1beta1,k8s.io/kubernetes/pkg/apis/autoscaling,k8s.io/kubernetes/pkg/apis/autoscaling/v1,k8s.io/kubernetes/pkg/apis/batch,k8s.io/kubernetes/pkg/apis/batch/v1,k8s.io/kubernetes/pkg/apis/batch/v2alpha1,k8s.io/kubernetes/pkg/apis/certificates,k8s.io/kubernetes/pkg/apis/certificates/v1alpha1,k8s.io/kubernetes/pkg/apis/componentconfig,k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1,k8s.io/kubernetes/pkg/apis/extensions,k8s.io/kubernetes/pkg/apis/extensions/v1beta1,k8s.io/kubernetes/pkg/apis/imagepolicy,k8s.io/kubernetes/pkg/apis/imagepolicy/v1alpha1,k8s.io/kubernetes/pkg/apis/meta/v1,k8s.io/kubernetes/pkg/apis/policy,k8s.io/kubernetes/pkg/apis/policy/v1beta1,k8s.io/kubernetes/pkg/apis/rbac,k8s.io/kubernetes/pkg/apis/rbac/v1alpha1,k8s.io/kubernetes/pkg/apis/storage,k8s.io/kubernetes/pkg/apis/storage/v1beta1] --internal-clientset-package=k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset --listers-package=k8s.io/kubernetes/pkg/client/listers --versioned-clientset-package=k8s.io/kubernetes/pkg/client/clientset_generated/clientset
|
|
|
|
package informers_generated
|
|
|
|
import (
|
|
cache "k8s.io/kubernetes/pkg/client/cache"
|
|
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
|
internalclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
|
apps "k8s.io/kubernetes/pkg/client/informers/informers_generated/apps"
|
|
autoscaling "k8s.io/kubernetes/pkg/client/informers/informers_generated/autoscaling"
|
|
batch "k8s.io/kubernetes/pkg/client/informers/informers_generated/batch"
|
|
certificates "k8s.io/kubernetes/pkg/client/informers/informers_generated/certificates"
|
|
core "k8s.io/kubernetes/pkg/client/informers/informers_generated/core"
|
|
extensions "k8s.io/kubernetes/pkg/client/informers/informers_generated/extensions"
|
|
internalinterfaces "k8s.io/kubernetes/pkg/client/informers/informers_generated/internalinterfaces"
|
|
policy "k8s.io/kubernetes/pkg/client/informers/informers_generated/policy"
|
|
rbac "k8s.io/kubernetes/pkg/client/informers/informers_generated/rbac"
|
|
storage "k8s.io/kubernetes/pkg/client/informers/informers_generated/storage"
|
|
runtime "k8s.io/kubernetes/pkg/runtime"
|
|
reflect "reflect"
|
|
sync "sync"
|
|
time "time"
|
|
)
|
|
|
|
type sharedInformerFactory struct {
|
|
internalClient internalclientset.Interface
|
|
versionedClient clientset.Interface
|
|
lock sync.Mutex
|
|
defaultResync time.Duration
|
|
|
|
informers map[reflect.Type]cache.SharedIndexInformer
|
|
// startedInformers is used for tracking which informers have been started.
|
|
// This allows Start() to be called multiple times safely.
|
|
startedInformers map[reflect.Type]bool
|
|
}
|
|
|
|
// NewSharedInformerFactory constructs a new instance of sharedInformerFactory
|
|
func NewSharedInformerFactory(internalClient internalclientset.Interface, versionedClient clientset.Interface, defaultResync time.Duration) SharedInformerFactory {
|
|
return &sharedInformerFactory{
|
|
internalClient: internalClient,
|
|
versionedClient: versionedClient,
|
|
defaultResync: defaultResync,
|
|
informers: make(map[reflect.Type]cache.SharedIndexInformer),
|
|
startedInformers: make(map[reflect.Type]bool),
|
|
}
|
|
}
|
|
|
|
// Start initializes all requested informers.
|
|
func (f *sharedInformerFactory) Start(stopCh <-chan struct{}) {
|
|
f.lock.Lock()
|
|
defer f.lock.Unlock()
|
|
|
|
for informerType, informer := range f.informers {
|
|
if !f.startedInformers[informerType] {
|
|
go informer.Run(stopCh)
|
|
f.startedInformers[informerType] = true
|
|
}
|
|
}
|
|
}
|
|
|
|
// InternalInformerFor returns the SharedIndexInformer for obj using an internal
|
|
// client.
|
|
func (f *sharedInformerFactory) InternalInformerFor(obj runtime.Object, newFunc internalinterfaces.NewInternalInformerFunc) cache.SharedIndexInformer {
|
|
f.lock.Lock()
|
|
defer f.lock.Unlock()
|
|
|
|
informerType := reflect.TypeOf(obj)
|
|
informer, exists := f.informers[informerType]
|
|
if exists {
|
|
return informer
|
|
}
|
|
informer = newFunc(f.internalClient, f.defaultResync)
|
|
f.informers[informerType] = informer
|
|
|
|
return informer
|
|
}
|
|
|
|
// VersionedInformerFor returns the SharedIndexInformer for obj using a
|
|
// versioned client.
|
|
func (f *sharedInformerFactory) VersionedInformerFor(obj runtime.Object, newFunc internalinterfaces.NewVersionedInformerFunc) cache.SharedIndexInformer {
|
|
f.lock.Lock()
|
|
defer f.lock.Unlock()
|
|
|
|
informerType := reflect.TypeOf(obj)
|
|
informer, exists := f.informers[informerType]
|
|
if exists {
|
|
return informer
|
|
}
|
|
informer = newFunc(f.versionedClient, f.defaultResync)
|
|
f.informers[informerType] = informer
|
|
|
|
return informer
|
|
}
|
|
|
|
// SharedInformerFactory provides shared informers for resources in all known
|
|
// API group versions.
|
|
type SharedInformerFactory interface {
|
|
internalinterfaces.SharedInformerFactory
|
|
|
|
Apps() apps.Interface
|
|
Autoscaling() autoscaling.Interface
|
|
Batch() batch.Interface
|
|
Certificates() certificates.Interface
|
|
Core() core.Interface
|
|
Extensions() extensions.Interface
|
|
Policy() policy.Interface
|
|
Rbac() rbac.Interface
|
|
Storage() storage.Interface
|
|
}
|
|
|
|
func (f *sharedInformerFactory) Apps() apps.Interface {
|
|
return apps.New(f)
|
|
}
|
|
|
|
func (f *sharedInformerFactory) Autoscaling() autoscaling.Interface {
|
|
return autoscaling.New(f)
|
|
}
|
|
|
|
func (f *sharedInformerFactory) Batch() batch.Interface {
|
|
return batch.New(f)
|
|
}
|
|
|
|
func (f *sharedInformerFactory) Certificates() certificates.Interface {
|
|
return certificates.New(f)
|
|
}
|
|
|
|
func (f *sharedInformerFactory) Core() core.Interface {
|
|
return core.New(f)
|
|
}
|
|
|
|
func (f *sharedInformerFactory) Extensions() extensions.Interface {
|
|
return extensions.New(f)
|
|
}
|
|
|
|
func (f *sharedInformerFactory) Policy() policy.Interface {
|
|
return policy.New(f)
|
|
}
|
|
|
|
func (f *sharedInformerFactory) Rbac() rbac.Interface {
|
|
return rbac.New(f)
|
|
}
|
|
|
|
func (f *sharedInformerFactory) Storage() storage.Interface {
|
|
return storage.New(f)
|
|
}
|