Documentation ¶
Overview ¶
Package k8s is a generated GoMock package.
Package k8s implements the Kubernetes Controller interface to monitor and retrieve information regarding Kubernetes resources such as Namespaces, Services, Pods, Endpoints, and ServiceAccounts.
Index ¶
- Constants
- func DialerToPod(conf *rest.Config, clientSet kubernetes.Interface, podName string, ...) (httpstream.Dialer, error)
- func GetAppProtocolFromPortName(portName string) string
- func GetHostnamesForService(svc *corev1.Service, locality service.Locality) []string
- func GetKubernetesEventHandlers(informerName, providerName string, shouldObserve observeFilter, ...) cache.ResourceEventHandlerFuncs
- func GetKubernetesServerVersionNumber(kubeClient kubernetes.Interface) ([]int, error)
- func GetServiceFromHostname(host string) string
- func NamespacedNameFrom(name string) (types.NamespacedName, error)
- func PatchSecretHandler(kubeClient kubernetes.Interface) chan struct{}
- type Controller
- type EventType
- type EventTypes
- type FakeDiscoveryClient
- type InformerKey
- type MockController
- func (m *MockController) EXPECT() *MockControllerMockRecorder
- func (m *MockController) GetEndpoints(arg0 service.MeshService) (*v1.Endpoints, error)
- func (m *MockController) GetNamespace(arg0 string) *v1.Namespace
- func (m *MockController) GetService(arg0 service.MeshService) *v1.Service
- func (m *MockController) IsMetricsEnabled(arg0 *v1.Pod) bool
- func (m *MockController) IsMonitoredNamespace(arg0 string) bool
- func (m *MockController) ListMonitoredNamespaces() ([]string, error)
- func (m *MockController) ListPods() []*v1.Pod
- func (m *MockController) ListServiceAccounts() []*v1.ServiceAccount
- func (m *MockController) ListServiceIdentitiesForService(arg0 service.MeshService) ([]identity.K8sServiceAccount, error)
- func (m *MockController) ListServices() []*v1.Service
- func (m *MockController) UpdateStatus(arg0 interface{}) (v10.Object, error)
- type MockControllerMockRecorder
- func (mr *MockControllerMockRecorder) GetEndpoints(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) GetNamespace(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) GetService(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) IsMetricsEnabled(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) IsMonitoredNamespace(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) ListMonitoredNamespaces() *gomock.Call
- func (mr *MockControllerMockRecorder) ListPods() *gomock.Call
- func (mr *MockControllerMockRecorder) ListServiceAccounts() *gomock.Call
- func (mr *MockControllerMockRecorder) ListServiceIdentitiesForService(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) ListServices() *gomock.Call
- func (mr *MockControllerMockRecorder) UpdateStatus(arg0 interface{}) *gomock.Call
- type PortForwarder
Constants ¶
const ( // DefaultKubeEventResyncInterval is the default resync interval for k8s events DefaultKubeEventResyncInterval = 5 * time.Minute )
Variables ¶
This section is empty.
Functions ¶
func DialerToPod ¶
func DialerToPod(conf *rest.Config, clientSet kubernetes.Interface, podName string, namespace string) (httpstream.Dialer, error)
DialerToPod constructs a new httpstream.Dialer to connect to a pod for use with a PortForwarder
func GetAppProtocolFromPortName ¶
GetAppProtocolFromPortName returns the port's application protocol from its name, defaults to 'http' if not specified.
func GetHostnamesForService ¶
GetHostnamesForService returns a list of hostnames over which the service can be accessed within the local cluster. If 'sameNamespace' is set to true, then the shorthand hostnames service and service:port are also returned.
func GetKubernetesEventHandlers ¶
func GetKubernetesEventHandlers(informerName, providerName string, shouldObserve observeFilter, eventTypes EventTypes) cache.ResourceEventHandlerFuncs
GetKubernetesEventHandlers creates Kubernetes events handlers.
func GetKubernetesServerVersionNumber ¶
func GetKubernetesServerVersionNumber(kubeClient kubernetes.Interface) ([]int, error)
GetKubernetesServerVersionNumber returns the Kubernetes server version number in chunks, ex. v1.19.3 => [1, 19, 3]
func GetServiceFromHostname ¶
GetServiceFromHostname returns the service name from its hostname
func NamespacedNameFrom ¶
func NamespacedNameFrom(name string) (types.NamespacedName, error)
NamespacedNameFrom returns the namespaced name for the given name if possible, otherwise an error
func PatchSecretHandler ¶
func PatchSecretHandler(kubeClient kubernetes.Interface) chan struct{}
PatchSecretHandler patches the envoy bootstrap config secrets based on the PodAdd events returns a stop channel which can be used to stop the inner handler
Types ¶
type Controller ¶
type Controller interface { // ListServices returns a list of all (monitored-namespace filtered) services in the mesh ListServices() []*corev1.Service // ListServiceAccounts returns a list of all (monitored-namespace filtered) service accounts in the mesh ListServiceAccounts() []*corev1.ServiceAccount // GetService returns a corev1 Service representation if the MeshService exists in cache, otherwise nil GetService(svc service.MeshService) *corev1.Service // IsMonitoredNamespace returns whether a namespace with the given name is being monitored // by the mesh IsMonitoredNamespace(string) bool // ListMonitoredNamespaces returns the namespaces monitored by the mesh ListMonitoredNamespaces() ([]string, error) // GetNamespace returns k8s namespace present in cache GetNamespace(ns string) *corev1.Namespace // ListPods returns a list of pods part of the mesh ListPods() []*corev1.Pod // ListServiceIdentitiesForService lists ServiceAccounts associated with the given service ListServiceIdentitiesForService(svc service.MeshService) ([]identity.K8sServiceAccount, error) // GetEndpoints returns the endpoints for a given service, if found GetEndpoints(svc service.MeshService) (*corev1.Endpoints, error) // IsMetricsEnabled returns true if the pod in the mesh is correctly annotated for prometheus scrapping IsMetricsEnabled(*corev1.Pod) bool // UpdateStatus updates the status subresource for the given resource and GroupVersionKind // The object within the 'interface{}' must be a pointer to the underlying resource UpdateStatus(interface{}) (metav1.Object, error) }
Controller is the controller interface for K8s services
func NewKubernetesController ¶
func NewKubernetesController(kubeClient kubernetes.Interface, policyClient policyv1alpha1Client.Interface, meshName string, stop chan struct{}, selectInformers ...InformerKey) (Controller, error)
NewKubernetesController returns a new kubernetes.Controller which means to provide access to locally-cached k8s resources
type EventType ¶
type EventType string
EventType is the type of event we have received from Kubernetes
type EventTypes ¶
type EventTypes struct { Add a.AnnouncementType Update a.AnnouncementType Delete a.AnnouncementType }
EventTypes is a struct helping pass the correct types to GetKubernetesEventHandlers
type FakeDiscoveryClient ¶
type FakeDiscoveryClient struct { discovery.ServerResourcesInterface Resources map[string]metav1.APIResourceList Err error }
FakeDiscoveryClient is a fake client for k8s API discovery
func (*FakeDiscoveryClient) ServerResourcesForGroupVersion ¶
func (f *FakeDiscoveryClient) ServerResourcesForGroupVersion(groupVersion string) (*metav1.APIResourceList, error)
ServerResourcesForGroupVersion returns the supported resources for a group and version.
type InformerKey ¶
type InformerKey string
InformerKey stores the different Informers we keep for K8s resources
const ( // Namespaces lookup identifier Namespaces InformerKey = "Namespaces" // Services lookup identifier Services InformerKey = "Services" // Pods lookup identifier Pods InformerKey = "Pods" // Endpoints lookup identifier Endpoints InformerKey = "Endpoints" // ServiceAccounts lookup identifier ServiceAccounts InformerKey = "ServiceAccounts" )
type MockController ¶
type MockController struct {
// contains filtered or unexported fields
}
MockController is a mock of Controller interface
func NewMockController ¶
func NewMockController(ctrl *gomock.Controller) *MockController
NewMockController creates a new mock instance
func (*MockController) EXPECT ¶
func (m *MockController) EXPECT() *MockControllerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use
func (*MockController) GetEndpoints ¶
func (m *MockController) GetEndpoints(arg0 service.MeshService) (*v1.Endpoints, error)
GetEndpoints mocks base method
func (*MockController) GetNamespace ¶
func (m *MockController) GetNamespace(arg0 string) *v1.Namespace
GetNamespace mocks base method
func (*MockController) GetService ¶
func (m *MockController) GetService(arg0 service.MeshService) *v1.Service
GetService mocks base method
func (*MockController) IsMetricsEnabled ¶
func (m *MockController) IsMetricsEnabled(arg0 *v1.Pod) bool
IsMetricsEnabled mocks base method
func (*MockController) IsMonitoredNamespace ¶
func (m *MockController) IsMonitoredNamespace(arg0 string) bool
IsMonitoredNamespace mocks base method
func (*MockController) ListMonitoredNamespaces ¶
func (m *MockController) ListMonitoredNamespaces() ([]string, error)
ListMonitoredNamespaces mocks base method
func (*MockController) ListPods ¶
func (m *MockController) ListPods() []*v1.Pod
ListPods mocks base method
func (*MockController) ListServiceAccounts ¶
func (m *MockController) ListServiceAccounts() []*v1.ServiceAccount
ListServiceAccounts mocks base method
func (*MockController) ListServiceIdentitiesForService ¶
func (m *MockController) ListServiceIdentitiesForService(arg0 service.MeshService) ([]identity.K8sServiceAccount, error)
ListServiceIdentitiesForService mocks base method
func (*MockController) ListServices ¶
func (m *MockController) ListServices() []*v1.Service
ListServices mocks base method
func (*MockController) UpdateStatus ¶
func (m *MockController) UpdateStatus(arg0 interface{}) (v10.Object, error)
UpdateStatus mocks base method
type MockControllerMockRecorder ¶
type MockControllerMockRecorder struct {
// contains filtered or unexported fields
}
MockControllerMockRecorder is the mock recorder for MockController
func (*MockControllerMockRecorder) GetEndpoints ¶
func (mr *MockControllerMockRecorder) GetEndpoints(arg0 interface{}) *gomock.Call
GetEndpoints indicates an expected call of GetEndpoints
func (*MockControllerMockRecorder) GetNamespace ¶
func (mr *MockControllerMockRecorder) GetNamespace(arg0 interface{}) *gomock.Call
GetNamespace indicates an expected call of GetNamespace
func (*MockControllerMockRecorder) GetService ¶
func (mr *MockControllerMockRecorder) GetService(arg0 interface{}) *gomock.Call
GetService indicates an expected call of GetService
func (*MockControllerMockRecorder) IsMetricsEnabled ¶
func (mr *MockControllerMockRecorder) IsMetricsEnabled(arg0 interface{}) *gomock.Call
IsMetricsEnabled indicates an expected call of IsMetricsEnabled
func (*MockControllerMockRecorder) IsMonitoredNamespace ¶
func (mr *MockControllerMockRecorder) IsMonitoredNamespace(arg0 interface{}) *gomock.Call
IsMonitoredNamespace indicates an expected call of IsMonitoredNamespace
func (*MockControllerMockRecorder) ListMonitoredNamespaces ¶
func (mr *MockControllerMockRecorder) ListMonitoredNamespaces() *gomock.Call
ListMonitoredNamespaces indicates an expected call of ListMonitoredNamespaces
func (*MockControllerMockRecorder) ListPods ¶
func (mr *MockControllerMockRecorder) ListPods() *gomock.Call
ListPods indicates an expected call of ListPods
func (*MockControllerMockRecorder) ListServiceAccounts ¶
func (mr *MockControllerMockRecorder) ListServiceAccounts() *gomock.Call
ListServiceAccounts indicates an expected call of ListServiceAccounts
func (*MockControllerMockRecorder) ListServiceIdentitiesForService ¶
func (mr *MockControllerMockRecorder) ListServiceIdentitiesForService(arg0 interface{}) *gomock.Call
ListServiceIdentitiesForService indicates an expected call of ListServiceIdentitiesForService
func (*MockControllerMockRecorder) ListServices ¶
func (mr *MockControllerMockRecorder) ListServices() *gomock.Call
ListServices indicates an expected call of ListServices
func (*MockControllerMockRecorder) UpdateStatus ¶
func (mr *MockControllerMockRecorder) UpdateStatus(arg0 interface{}) *gomock.Call
UpdateStatus indicates an expected call of UpdateStatus
type PortForwarder ¶
type PortForwarder struct {
// contains filtered or unexported fields
}
PortForwarder is a type that implements port forwarding to a pod
func NewPortForwarder ¶
func NewPortForwarder(dialer httpstream.Dialer, portSpec string) (*PortForwarder, error)
NewPortForwarder creates a new port forwarder to a pod
func (*PortForwarder) Done ¶
func (pf *PortForwarder) Done() <-chan struct{}
Done returns a channel that is closed after Stop has been called.
func (*PortForwarder) Start ¶
func (pf *PortForwarder) Start(readyFunc func(pf *PortForwarder) error) error
Start starts the port forwarding and calls the readyFunc callback function when port forwarding is ready
func (*PortForwarder) Stop ¶
func (pf *PortForwarder) Stop()
Stop stops the port forwarding if not stopped already
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package events implements the eventing framework to receive and relay kubernetes events, and a framework to publish events to the Kubernetes API server.
|
Package events implements the eventing framework to receive and relay kubernetes events, and a framework to publish events to the Kubernetes API server. |