-
Notifications
You must be signed in to change notification settings - Fork 332
/
types.go
78 lines (64 loc) · 3.24 KB
/
types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package factory
import (
adminpolicybasedrouteinformer "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/adminpolicybasedroute/v1/apis/informers/externalversions/adminpolicybasedroute/v1"
egressipinformer "github.com/ovn-org/ovn-kubernetes/go-controller/pkg/crd/egressip/v1/apis/informers/externalversions/egressip/v1"
kapi "k8s.io/api/core/v1"
discovery "k8s.io/api/discovery/v1"
"k8s.io/apimachinery/pkg/labels"
coreinformers "k8s.io/client-go/informers/core/v1"
"k8s.io/client-go/tools/cache"
)
// ObjectCacheInterface represents the exported methods for getting
// kubernetes resources from the informer cache
type ObjectCacheInterface interface {
GetPod(namespace, name string) (*kapi.Pod, error)
GetAllPods() ([]*kapi.Pod, error)
GetPods(namespace string) ([]*kapi.Pod, error)
GetNodes() ([]*kapi.Node, error)
GetNode(name string) (*kapi.Node, error)
GetService(namespace, name string) (*kapi.Service, error)
GetEndpointSlices(namespace, svcName string) ([]*discovery.EndpointSlice, error)
GetNamespace(name string) (*kapi.Namespace, error)
GetNamespaces() ([]*kapi.Namespace, error)
}
// NodeWatchFactory is an interface that ensures node components only use informers available in a
// node context; under the hood, it's all the same watchFactory.
//
// If you add a new method here, make sure the underlying informer is started
// in factory.go NewNodeWatchFactory
//
//go:generate mockery --name NodeWatchFactory
type NodeWatchFactory interface {
Shutdownable
Start() error
AddServiceHandler(handlerFuncs cache.ResourceEventHandler, processExisting func([]interface{}) error) (*Handler, error)
AddFilteredServiceHandler(namespace string, handlerFuncs cache.ResourceEventHandler, processExisting func([]interface{}) error) (*Handler, error)
RemoveServiceHandler(handler *Handler)
AddEndpointSliceHandler(handlerFuncs cache.ResourceEventHandler, processExisting func([]interface{}) error) (*Handler, error)
RemoveEndpointSliceHandler(handler *Handler)
AddPodHandler(handlerFuncs cache.ResourceEventHandler, processExisting func([]interface{}) error) (*Handler, error)
RemovePodHandler(handler *Handler)
AddNamespaceHandler(handlerFuncs cache.ResourceEventHandler, processExisting func([]interface{}) error) (*Handler, error)
RemoveNamespaceHandler(handler *Handler)
NodeInformer() cache.SharedIndexInformer
LocalPodInformer() cache.SharedIndexInformer
NamespaceInformer() coreinformers.NamespaceInformer
PodCoreInformer() coreinformers.PodInformer
APBRouteInformer() adminpolicybasedrouteinformer.AdminPolicyBasedExternalRouteInformer
EgressIPInformer() egressipinformer.EgressIPInformer
GetPods(namespace string) ([]*kapi.Pod, error)
GetPod(namespace, name string) (*kapi.Pod, error)
GetAllPods() ([]*kapi.Pod, error)
GetNamespaces() ([]*kapi.Namespace, error)
GetNode(name string) (*kapi.Node, error)
GetNodes() ([]*kapi.Node, error)
ListNodes(selector labels.Selector) ([]*kapi.Node, error)
GetService(namespace, name string) (*kapi.Service, error)
GetServices() ([]*kapi.Service, error)
GetEndpointSlices(namespace, svcName string) ([]*discovery.EndpointSlice, error)
GetEndpointSlice(namespace, name string) (*discovery.EndpointSlice, error)
GetNamespace(name string) (*kapi.Namespace, error)
}
type Shutdownable interface {
Shutdown()
}