mirror of
https://github.com/kubernetes/sample-controller.git
synced 2026-02-26 00:00:08 +08:00
117 lines
5.3 KiB
Go
117 lines
5.3 KiB
Go
/*
|
|
Copyright 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.
|
|
*/
|
|
|
|
// Code generated by informer-gen. DO NOT EDIT.
|
|
|
|
package v1alpha1
|
|
|
|
import (
|
|
context "context"
|
|
time "time"
|
|
|
|
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
runtime "k8s.io/apimachinery/pkg/runtime"
|
|
schema "k8s.io/apimachinery/pkg/runtime/schema"
|
|
watch "k8s.io/apimachinery/pkg/watch"
|
|
cache "k8s.io/client-go/tools/cache"
|
|
apissamplecontrollerv1alpha1 "k8s.io/sample-controller/pkg/apis/samplecontroller/v1alpha1"
|
|
versioned "k8s.io/sample-controller/pkg/generated/clientset/versioned"
|
|
internalinterfaces "k8s.io/sample-controller/pkg/generated/informers/externalversions/internalinterfaces"
|
|
samplecontrollerv1alpha1 "k8s.io/sample-controller/pkg/generated/listers/samplecontroller/v1alpha1"
|
|
)
|
|
|
|
// FooInformer provides access to a shared informer and lister for
|
|
// Foos.
|
|
type FooInformer interface {
|
|
Informer() cache.SharedIndexInformer
|
|
Lister() samplecontrollerv1alpha1.FooLister
|
|
}
|
|
|
|
type fooInformer struct {
|
|
factory internalinterfaces.SharedInformerFactory
|
|
tweakListOptions internalinterfaces.TweakListOptionsFunc
|
|
namespace string
|
|
}
|
|
|
|
// NewFooInformer constructs a new informer for Foo type.
|
|
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
// one. This reduces memory footprint and number of connections to the server.
|
|
func NewFooInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
|
|
return NewFooInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers})
|
|
}
|
|
|
|
// NewFilteredFooInformer constructs a new informer for Foo type.
|
|
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
// one. This reduces memory footprint and number of connections to the server.
|
|
func NewFilteredFooInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
|
|
return NewFooInformerWithOptions(client, namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions})
|
|
}
|
|
|
|
// NewFooInformerWithOptions constructs a new informer for Foo type with additional options.
|
|
// Always prefer using an informer factory to get a shared informer instead of getting an independent
|
|
// one. This reduces memory footprint and number of connections to the server.
|
|
func NewFooInformerWithOptions(client versioned.Interface, namespace string, options internalinterfaces.InformerOptions) cache.SharedIndexInformer {
|
|
gvr := schema.GroupVersionResource{Group: "samplecontroller.k8s.io", Version: "v1alpha1", Resource: "foos"}
|
|
identifier := options.InformerName.WithResource(gvr)
|
|
tweakListOptions := options.TweakListOptions
|
|
return cache.NewSharedIndexInformerWithOptions(
|
|
cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{
|
|
ListFunc: func(opts v1.ListOptions) (runtime.Object, error) {
|
|
if tweakListOptions != nil {
|
|
tweakListOptions(&opts)
|
|
}
|
|
return client.SamplecontrollerV1alpha1().Foos(namespace).List(context.Background(), opts)
|
|
},
|
|
WatchFunc: func(opts v1.ListOptions) (watch.Interface, error) {
|
|
if tweakListOptions != nil {
|
|
tweakListOptions(&opts)
|
|
}
|
|
return client.SamplecontrollerV1alpha1().Foos(namespace).Watch(context.Background(), opts)
|
|
},
|
|
ListWithContextFunc: func(ctx context.Context, opts v1.ListOptions) (runtime.Object, error) {
|
|
if tweakListOptions != nil {
|
|
tweakListOptions(&opts)
|
|
}
|
|
return client.SamplecontrollerV1alpha1().Foos(namespace).List(ctx, opts)
|
|
},
|
|
WatchFuncWithContext: func(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
|
|
if tweakListOptions != nil {
|
|
tweakListOptions(&opts)
|
|
}
|
|
return client.SamplecontrollerV1alpha1().Foos(namespace).Watch(ctx, opts)
|
|
},
|
|
}, client),
|
|
&apissamplecontrollerv1alpha1.Foo{},
|
|
cache.SharedIndexInformerOptions{
|
|
ResyncPeriod: options.ResyncPeriod,
|
|
Indexers: options.Indexers,
|
|
Identifier: identifier,
|
|
},
|
|
)
|
|
}
|
|
|
|
func (f *fooInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
|
|
return NewFooInformerWithOptions(client, f.namespace, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions})
|
|
}
|
|
|
|
func (f *fooInformer) Informer() cache.SharedIndexInformer {
|
|
return f.factory.InformerFor(&apissamplecontrollerv1alpha1.Foo{}, f.defaultInformer)
|
|
}
|
|
|
|
func (f *fooInformer) Lister() samplecontrollerv1alpha1.FooLister {
|
|
return samplecontrollerv1alpha1.NewFooLister(f.Informer().GetIndexer())
|
|
}
|