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 GetEventHandlerFuncs(shouldObserve observeFilter, eventTypes EventTypes, ...) cache.ResourceEventHandlerFuncs
- func GetFSMControllerPods(clientSet kubernetes.Interface, ns string) *corev1.PodList
- func GetFSMInjectorPods(clientSet kubernetes.Interface, ns string) *corev1.PodList
- func GetHostnamesForService(svc service.MeshService, san *configv1alpha3.ServiceAccessNames, ...) (hostnames []string)
- func GetKubernetesServerVersionNumber(kubeClient kubernetes.Interface) ([]int, error)
- func GetServiceFromHostname(c Controller, host string) string
- func GetSubdomainFromHostname(c Controller, host string) string
- func GetTargetPortFromEndpoints(endpointName string, endpoints corev1.Endpoints) (endpointPort uint16)
- func IsHeadlessService(svc *corev1.Service) bool
- func IsMetricsEnabled(pod *corev1.Pod) bool
- func NamespacedNameFrom(name string) (types.NamespacedName, error)
- func ServiceToMeshServices(c Controller, svc *corev1.Service) []service.MeshService
- func WatchAndUpdateLogLevel(msgBroker *messaging.Broker, stop <-chan struct{})
- func WatchAndUpdateProxyBootstrapSecret(kubeClient kubernetes.Interface, msgBroker *messaging.Broker, ...)
- type Controller
- type EventType
- type EventTypes
- type InformerKey
- type MockController
- func (m *MockController) EXPECT() *MockControllerMockRecorder
- func (m *MockController) GetEndpoints(arg0 service.MeshService) (*v1.Endpoints, error)
- func (m *MockController) GetK8sNamespace(arg0 string) *v1.Namespace
- func (m *MockController) GetNamespace(arg0 string) *v1.Namespace
- func (m *MockController) GetPodForProxy(arg0 models.Proxy) (*v1.Pod, error)
- func (m *MockController) GetService(arg0 service.MeshService) *v1.Service
- func (m *MockController) GetTargetPortForServicePort(arg0 types.NamespacedName, arg1 uint16) (uint16, error)
- func (m *MockController) GetVmForProxy(arg0 models.Proxy) (*v1alpha1.VirtualMachine, error)
- 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) ListVms() []*v1alpha1.VirtualMachine
- func (m *MockController) UpdateStatus(arg0 interface{}) (v10.Object, error)
- type MockControllerMockRecorder
- func (mr *MockControllerMockRecorder) GetEndpoints(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) GetK8sNamespace(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) GetNamespace(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) GetPodForProxy(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) GetService(arg0 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) GetTargetPortForServicePort(arg0, arg1 interface{}) *gomock.Call
- func (mr *MockControllerMockRecorder) GetVmForProxy(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) ListVms() *gomock.Call
- func (mr *MockControllerMockRecorder) UpdateStatus(arg0 interface{}) *gomock.Call
- type PortForwarder
Constants ¶
const ( // DefaultKubeEventResyncInterval is the default resync interval for k8s events // This is set to 0 because we do not need resyncs from k8s client, and have our // own Ticker to turn on periodic resyncs. DefaultKubeEventResyncInterval = 0 * time.Second )
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 GetEventHandlerFuncs ¶
func GetEventHandlerFuncs(shouldObserve observeFilter, eventTypes EventTypes, msgBroker *messaging.Broker) cache.ResourceEventHandlerFuncs
GetEventHandlerFuncs returns the ResourceEventHandlerFuncs object used to receive events when a k8s object is added/updated/deleted.
func GetFSMControllerPods ¶
func GetFSMControllerPods(clientSet kubernetes.Interface, ns string) *corev1.PodList
GetFSMControllerPods returns a list of fsm-controller pods in the namespace
func GetFSMInjectorPods ¶
func GetFSMInjectorPods(clientSet kubernetes.Interface, ns string) *corev1.PodList
GetFSMInjectorPods returns a list of fsm-injector pods in the namespace
func GetHostnamesForService ¶
func GetHostnamesForService(svc service.MeshService, san *configv1alpha3.ServiceAccessNames, localNamespace bool) (hostnames []string)
GetHostnamesForService returns the hostnames over which the service is accessible
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 ¶
func GetServiceFromHostname(c Controller, host string) string
GetServiceFromHostname returns the service name from its hostname This assumes the default k8s trustDomain: cluster.local
func GetSubdomainFromHostname ¶
func GetSubdomainFromHostname(c Controller, host string) string
GetSubdomainFromHostname returns the service subdomain from its hostname This assumes the default k8s trustDomain: cluster.local
func GetTargetPortFromEndpoints ¶
func GetTargetPortFromEndpoints(endpointName string, endpoints corev1.Endpoints) (endpointPort uint16)
GetTargetPortFromEndpoints returns the endpoint port corresponding to the given endpoint name and endpoints
func IsHeadlessService ¶
IsHeadlessService determines whether or not a corev1.Service is a headless service
func IsMetricsEnabled ¶
IsMetricsEnabled returns true if the pod in the mesh is correctly annotated for prometheus scrapping
func NamespacedNameFrom ¶
func NamespacedNameFrom(name string) (types.NamespacedName, error)
NamespacedNameFrom returns the namespaced name for the given name if possible, otherwise an error
func ServiceToMeshServices ¶
func ServiceToMeshServices(c Controller, svc *corev1.Service) []service.MeshService
ServiceToMeshServices translates a k8s service with one or more ports to one or more MeshService objects per port.
func WatchAndUpdateLogLevel ¶
WatchAndUpdateLogLevel watches for log level changes and updates the global log level
func WatchAndUpdateProxyBootstrapSecret ¶
func WatchAndUpdateProxyBootstrapSecret(kubeClient kubernetes.Interface, msgBroker *messaging.Broker, stop <-chan struct{})
WatchAndUpdateProxyBootstrapSecret watches for new pods being added to the mesh and updates their corresponding proxy bootstrap config Secret's OwnerReferences to point to the associated pod.
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(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(string) *corev1.Namespace // GetK8sNamespace returns k8s namespace present in cache GetK8sNamespace(string) *corev1.Namespace // ListPods returns a list of pods part of the mesh ListPods() []*corev1.Pod // ListVms returns a list of vms part of the mesh ListVms() []*machinev1alpha1.VirtualMachine // ListServiceIdentitiesForService lists ServiceAccounts associated with the given service ListServiceIdentitiesForService(service.MeshService) ([]identity.K8sServiceAccount, error) // GetEndpoints returns the endpoints for a given service, if found GetEndpoints(service.MeshService) (*corev1.Endpoints, error) // 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) // GetPodForProxy returns the pod for the given proxy GetPodForProxy(models.Proxy) (*v1.Pod, error) // GetVmForProxy returns the VM for the given proxy GetVmForProxy(models.Proxy) (*machinev1alpha1.VirtualMachine, error) GetTargetPortForServicePort(types.NamespacedName, uint16) (uint16, error) }
Controller is the controller interface for K8s services
func NewKubernetesController ¶
func NewKubernetesController(informerCollection *fsminformers.InformerCollection, policyClient policyv1alpha1Client.Interface, pluginClient pluginv1alpha1Client.Interface, msgBroker *messaging.Broker, selectInformers ...InformerKey) Controller
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 announcements.Kind Update announcements.Kind Delete announcements.Kind }
EventTypes is a struct helping pass the correct types to GetEventHandlerFuncs()
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" // EndpointSlices lookup identifier EndpointSlices InformerKey = "EndpointSlices" )
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) GetK8sNamespace ¶ added in v1.4.12
func (m *MockController) GetK8sNamespace(arg0 string) *v1.Namespace
GetK8sNamespace mocks base method.
func (*MockController) GetNamespace ¶
func (m *MockController) GetNamespace(arg0 string) *v1.Namespace
GetNamespace mocks base method.
func (*MockController) GetPodForProxy ¶
GetPodForProxy mocks base method.
func (*MockController) GetService ¶
func (m *MockController) GetService(arg0 service.MeshService) *v1.Service
GetService mocks base method.
func (*MockController) GetTargetPortForServicePort ¶
func (m *MockController) GetTargetPortForServicePort(arg0 types.NamespacedName, arg1 uint16) (uint16, error)
GetTargetPortForServicePort mocks base method.
func (*MockController) GetVmForProxy ¶ added in v1.2.0
func (m *MockController) GetVmForProxy(arg0 models.Proxy) (*v1alpha1.VirtualMachine, error)
GetVmForProxy 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) ListVms ¶ added in v1.2.0
func (m *MockController) ListVms() []*v1alpha1.VirtualMachine
ListVms 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) GetK8sNamespace ¶ added in v1.4.12
func (mr *MockControllerMockRecorder) GetK8sNamespace(arg0 interface{}) *gomock.Call
GetK8sNamespace indicates an expected call of GetK8sNamespace.
func (*MockControllerMockRecorder) GetNamespace ¶
func (mr *MockControllerMockRecorder) GetNamespace(arg0 interface{}) *gomock.Call
GetNamespace indicates an expected call of GetNamespace.
func (*MockControllerMockRecorder) GetPodForProxy ¶
func (mr *MockControllerMockRecorder) GetPodForProxy(arg0 interface{}) *gomock.Call
GetPodForProxy indicates an expected call of GetPodForProxy.
func (*MockControllerMockRecorder) GetService ¶
func (mr *MockControllerMockRecorder) GetService(arg0 interface{}) *gomock.Call
GetService indicates an expected call of GetService.
func (*MockControllerMockRecorder) GetTargetPortForServicePort ¶
func (mr *MockControllerMockRecorder) GetTargetPortForServicePort(arg0, arg1 interface{}) *gomock.Call
GetTargetPortForServicePort indicates an expected call of GetTargetPortForServicePort.
func (*MockControllerMockRecorder) GetVmForProxy ¶ added in v1.2.0
func (mr *MockControllerMockRecorder) GetVmForProxy(arg0 interface{}) *gomock.Call
GetVmForProxy indicates an expected call of GetVmForProxy.
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) ListVms ¶ added in v1.2.0
func (mr *MockControllerMockRecorder) ListVms() *gomock.Call
ListVms indicates an expected call of ListVms.
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. |
Package fake implements Fake's methods.
|
Package fake implements Fake's methods. |
Package informers centralize informers by creating a single object that runs a set of informers, instead of creating different objects that each manage their own informer collections.
|
Package informers centralize informers by creating a single object that runs a set of informers, instead of creating different objects that each manage their own informer collections. |