Documentation ¶
Overview ¶
Package smi is a generated GoMock package.
Package smi implements the Service Mesh Interface (SMI) kubernetes client to observe and retrieve information regarding SMI traffic resources.
Index ¶
- Constants
- func FilterTrafficSplit(trafficSplit *smiSplit.TrafficSplit, options ...TrafficSplitListOption) *smiSplit.TrafficSplit
- func FilterTrafficTarget(trafficTarget *smiAccess.TrafficTarget, options ...TrafficTargetListOption) *smiAccess.TrafficTarget
- func GetSmiClientVersionHTTPHandler() http.Handler
- type Client
- func (c *Client) GetHTTPRouteGroup(namespacedName string) *smiSpecs.HTTPRouteGroup
- func (c *Client) GetTCPRoute(namespacedName string) *smiSpecs.TCPRoute
- func (c *Client) ListHTTPTrafficSpecs() []*smiSpecs.HTTPRouteGroup
- func (c *Client) ListServiceAccounts() []identity.K8sServiceAccount
- func (c *Client) ListTCPTrafficSpecs() []*smiSpecs.TCPRoute
- func (c *Client) ListTrafficSplits(options ...TrafficSplitListOption) []*smiSplit.TrafficSplit
- func (c *Client) ListTrafficTargets(options ...TrafficTargetListOption) []*smiAccess.TrafficTarget
- type HealthChecker
- type MeshSpec
- type MockMeshSpec
- func (m *MockMeshSpec) EXPECT() *MockMeshSpecMockRecorder
- func (m *MockMeshSpec) GetHTTPRouteGroup(arg0 string) *v1alpha4.HTTPRouteGroup
- func (m *MockMeshSpec) GetTCPRoute(arg0 string) *v1alpha4.TCPRoute
- func (m *MockMeshSpec) ListHTTPTrafficSpecs() []*v1alpha4.HTTPRouteGroup
- func (m *MockMeshSpec) ListServiceAccounts() []identity.K8sServiceAccount
- func (m *MockMeshSpec) ListTCPTrafficSpecs() []*v1alpha4.TCPRoute
- func (m *MockMeshSpec) ListTrafficSplits(arg0 ...TrafficSplitListOption) []*v1alpha40.TrafficSplit
- func (m *MockMeshSpec) ListTrafficTargets(arg0 ...TrafficTargetListOption) []*v1alpha3.TrafficTarget
- type MockMeshSpecMockRecorder
- func (mr *MockMeshSpecMockRecorder) GetHTTPRouteGroup(arg0 interface{}) *gomock.Call
- func (mr *MockMeshSpecMockRecorder) GetTCPRoute(arg0 interface{}) *gomock.Call
- func (mr *MockMeshSpecMockRecorder) ListHTTPTrafficSpecs() *gomock.Call
- func (mr *MockMeshSpecMockRecorder) ListServiceAccounts() *gomock.Call
- func (mr *MockMeshSpecMockRecorder) ListTCPTrafficSpecs() *gomock.Call
- func (mr *MockMeshSpecMockRecorder) ListTrafficSplits(arg0 ...interface{}) *gomock.Call
- func (mr *MockMeshSpecMockRecorder) ListTrafficTargets(arg0 ...interface{}) *gomock.Call
- type TrafficSplitListOpt
- type TrafficSplitListOption
- type TrafficTargetListOpt
- type TrafficTargetListOption
Constants ¶
const ( // ServiceAccountKind is the kind specified for the destination and sources in an SMI TrafficTarget policy ServiceAccountKind = "ServiceAccount" // TCPRouteKind is the kind specified for the TCP route rules in an SMI Traffictarget policy TCPRouteKind = "TCPRoute" // HTTPRouteGroupKind is the kind specified for the HTTP route rules in an SMI Traffictarget policy HTTPRouteGroupKind = "HTTPRouteGroup" )
Variables ¶
This section is empty.
Functions ¶
func FilterTrafficSplit ¶
func FilterTrafficSplit(trafficSplit *smiSplit.TrafficSplit, options ...TrafficSplitListOption) *smiSplit.TrafficSplit
FilterTrafficSplit applies the given TrafficSplitListOption filter on the given TrafficSplit object
func FilterTrafficTarget ¶
func FilterTrafficTarget(trafficTarget *smiAccess.TrafficTarget, options ...TrafficTargetListOption) *smiAccess.TrafficTarget
FilterTrafficTarget applies the given TrafficTargetListOption filter on the given TrafficTarget object
func GetSmiClientVersionHTTPHandler ¶
GetSmiClientVersionHTTPHandler returns an http handler that returns supported smi version information
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a type that implements the smi.MeshSpec interface related to Kubernetes SMI resources
func NewSMIClient ¶
func NewSMIClient(informerCollection *informers.InformerCollection, fsmNamespace string, kubeController k8s.Controller, msgBroker *messaging.Broker) *Client
NewSMIClient implements mesh.MeshSpec and creates the Kubernetes client, which retrieves SMI specific CRDs.
func (*Client) GetHTTPRouteGroup ¶
func (c *Client) GetHTTPRouteGroup(namespacedName string) *smiSpecs.HTTPRouteGroup
GetHTTPRouteGroup returns an SMI HTTPRouteGroup resource given its name of the form <namespace>/<name>
func (*Client) GetTCPRoute ¶
GetTCPRoute returns an SMI TCPRoute resource given its name of the form <namespace>/<name>
func (*Client) ListHTTPTrafficSpecs ¶
func (c *Client) ListHTTPTrafficSpecs() []*smiSpecs.HTTPRouteGroup
ListHTTPTrafficSpecs lists SMI HTTPRouteGroup resources
func (*Client) ListServiceAccounts ¶
func (c *Client) ListServiceAccounts() []identity.K8sServiceAccount
ListServiceAccounts lists ServiceAccounts specified in SMI TrafficTarget resources
func (*Client) ListTCPTrafficSpecs ¶
ListTCPTrafficSpecs lists SMI TCPRoute resources
func (*Client) ListTrafficSplits ¶
func (c *Client) ListTrafficSplits(options ...TrafficSplitListOption) []*smiSplit.TrafficSplit
ListTrafficSplits implements mesh.MeshSpec by returning the list of traffic splits.
func (*Client) ListTrafficTargets ¶
func (c *Client) ListTrafficTargets(options ...TrafficTargetListOption) []*smiAccess.TrafficTarget
ListTrafficTargets implements mesh.Topology by returning the list of traffic targets.
type HealthChecker ¶
type HealthChecker struct {
DiscoveryClient discovery.ServerResourcesInterface
}
HealthChecker has SMI clientset interface to access SMI CRDS
func (HealthChecker) GetID ¶
func (c HealthChecker) GetID() string
GetID returns the ID of the probe
func (HealthChecker) Liveness ¶
func (c HealthChecker) Liveness() bool
Liveness is the Kubernetes liveness probe handler.
func (HealthChecker) Readiness ¶
func (c HealthChecker) Readiness() bool
Readiness is the Kubernetes readiness probe handler.
type MeshSpec ¶
type MeshSpec interface { // ListTrafficSplits lists SMI TrafficSplit resources ListTrafficSplits(...TrafficSplitListOption) []*split.TrafficSplit // ListServiceAccounts lists ServiceAccount resources specified in SMI TrafficTarget resources ListServiceAccounts() []identity.K8sServiceAccount // ListHTTPTrafficSpecs lists SMI HTTPRouteGroup resources ListHTTPTrafficSpecs() []*spec.HTTPRouteGroup // GetHTTPRouteGroup returns an SMI HTTPRouteGroup resource given its name of the form <namespace>/<name> GetHTTPRouteGroup(string) *spec.HTTPRouteGroup // ListTCPTrafficSpecs lists SMI TCPRoute resources ListTCPTrafficSpecs() []*spec.TCPRoute // GetTCPRoute returns an SMI TCPRoute resource given its name of the form <namespace>/<name> GetTCPRoute(string) *spec.TCPRoute // ListTrafficTargets lists SMI TrafficTarget resources. An optional filter can be applied to filter the // returned list ListTrafficTargets(...TrafficTargetListOption) []*access.TrafficTarget }
MeshSpec is an interface declaring functions, which provide the specs for a service mesh declared with SMI.
type MockMeshSpec ¶
type MockMeshSpec struct {
// contains filtered or unexported fields
}
MockMeshSpec is a mock of MeshSpec interface.
func NewMockMeshSpec ¶
func NewMockMeshSpec(ctrl *gomock.Controller) *MockMeshSpec
NewMockMeshSpec creates a new mock instance.
func (*MockMeshSpec) EXPECT ¶
func (m *MockMeshSpec) EXPECT() *MockMeshSpecMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockMeshSpec) GetHTTPRouteGroup ¶
func (m *MockMeshSpec) GetHTTPRouteGroup(arg0 string) *v1alpha4.HTTPRouteGroup
GetHTTPRouteGroup mocks base method.
func (*MockMeshSpec) GetTCPRoute ¶
func (m *MockMeshSpec) GetTCPRoute(arg0 string) *v1alpha4.TCPRoute
GetTCPRoute mocks base method.
func (*MockMeshSpec) ListHTTPTrafficSpecs ¶
func (m *MockMeshSpec) ListHTTPTrafficSpecs() []*v1alpha4.HTTPRouteGroup
ListHTTPTrafficSpecs mocks base method.
func (*MockMeshSpec) ListServiceAccounts ¶
func (m *MockMeshSpec) ListServiceAccounts() []identity.K8sServiceAccount
ListServiceAccounts mocks base method.
func (*MockMeshSpec) ListTCPTrafficSpecs ¶
func (m *MockMeshSpec) ListTCPTrafficSpecs() []*v1alpha4.TCPRoute
ListTCPTrafficSpecs mocks base method.
func (*MockMeshSpec) ListTrafficSplits ¶
func (m *MockMeshSpec) ListTrafficSplits(arg0 ...TrafficSplitListOption) []*v1alpha40.TrafficSplit
ListTrafficSplits mocks base method.
func (*MockMeshSpec) ListTrafficTargets ¶
func (m *MockMeshSpec) ListTrafficTargets(arg0 ...TrafficTargetListOption) []*v1alpha3.TrafficTarget
ListTrafficTargets mocks base method.
type MockMeshSpecMockRecorder ¶
type MockMeshSpecMockRecorder struct {
// contains filtered or unexported fields
}
MockMeshSpecMockRecorder is the mock recorder for MockMeshSpec.
func (*MockMeshSpecMockRecorder) GetHTTPRouteGroup ¶
func (mr *MockMeshSpecMockRecorder) GetHTTPRouteGroup(arg0 interface{}) *gomock.Call
GetHTTPRouteGroup indicates an expected call of GetHTTPRouteGroup.
func (*MockMeshSpecMockRecorder) GetTCPRoute ¶
func (mr *MockMeshSpecMockRecorder) GetTCPRoute(arg0 interface{}) *gomock.Call
GetTCPRoute indicates an expected call of GetTCPRoute.
func (*MockMeshSpecMockRecorder) ListHTTPTrafficSpecs ¶
func (mr *MockMeshSpecMockRecorder) ListHTTPTrafficSpecs() *gomock.Call
ListHTTPTrafficSpecs indicates an expected call of ListHTTPTrafficSpecs.
func (*MockMeshSpecMockRecorder) ListServiceAccounts ¶
func (mr *MockMeshSpecMockRecorder) ListServiceAccounts() *gomock.Call
ListServiceAccounts indicates an expected call of ListServiceAccounts.
func (*MockMeshSpecMockRecorder) ListTCPTrafficSpecs ¶
func (mr *MockMeshSpecMockRecorder) ListTCPTrafficSpecs() *gomock.Call
ListTCPTrafficSpecs indicates an expected call of ListTCPTrafficSpecs.
func (*MockMeshSpecMockRecorder) ListTrafficSplits ¶
func (mr *MockMeshSpecMockRecorder) ListTrafficSplits(arg0 ...interface{}) *gomock.Call
ListTrafficSplits indicates an expected call of ListTrafficSplits.
func (*MockMeshSpecMockRecorder) ListTrafficTargets ¶
func (mr *MockMeshSpecMockRecorder) ListTrafficTargets(arg0 ...interface{}) *gomock.Call
ListTrafficTargets indicates an expected call of ListTrafficTargets.
type TrafficSplitListOpt ¶
type TrafficSplitListOpt struct { ApexService service.MeshService BackendService service.MeshService KubeController k8s.Controller }
TrafficSplitListOpt specifies the options used to filter TrafficSplit objects as a part of its lister
type TrafficSplitListOption ¶
type TrafficSplitListOption func(o *TrafficSplitListOpt)
TrafficSplitListOption is a function type that implements filters on the TrafficSplit lister
func WithKubeController ¶
func WithKubeController(c k8s.Controller) TrafficSplitListOption
WithKubeController adds a KubeController to the TrafficSplit lister
func WithTrafficSplitApexService ¶
func WithTrafficSplitApexService(s service.MeshService) TrafficSplitListOption
WithTrafficSplitApexService applies a filter based on the apex service to the TrafficSplit lister
func WithTrafficSplitBackendService ¶
func WithTrafficSplitBackendService(s service.MeshService) TrafficSplitListOption
WithTrafficSplitBackendService applies a filter based on the backend service to the TrafficSplit lister
type TrafficTargetListOpt ¶
type TrafficTargetListOpt struct {
Destination identity.K8sServiceAccount
}
TrafficTargetListOpt specifies the options used to filter TrafficTarget objects as a part of its lister
type TrafficTargetListOption ¶
type TrafficTargetListOption func(o *TrafficTargetListOpt)
TrafficTargetListOption is a function type that implements filters on TrafficTarget lister
func WithTrafficTargetDestination ¶
func WithTrafficTargetDestination(d identity.K8sServiceAccount) TrafficTargetListOption
WithTrafficTargetDestination applies a filter based on the destination service account to the TrafficTarget lister