Documentation ¶
Overview ¶
Package service is a generated GoMock package.
Package service models an instance of a service managed by FSM controller and utility routines associated with it.
Index ¶
- func AccessControlTrafficMatchName(name, namespace string, targetPort uint16, protocol string) string
- func ExportedServiceTrafficMatchName(name, namespace string, targetPort uint16, protocol string) string
- func IngressTrafficMatchName(name, namespace string, targetPort uint16, protocol string) string
- type ClusterName
- type Locality
- type MeshService
- func (ms MeshService) AccessControlTrafficMatchName() string
- func (ms MeshService) FQDN() string
- func (ms MeshService) InboundTrafficMatchName() string
- func (ms MeshService) IngressTrafficMatchName() string
- func (ms *MeshService) IsMultiClusterService() bool
- func (ms MeshService) NamespacedKey() string
- func (ms MeshService) OutboundTrafficMatchName() string
- func (ms *MeshService) ProviderKey() string
- func (ms MeshService) ServerName() string
- func (ms MeshService) SiblingTo(svc MeshService) bool
- func (ms MeshService) SidecarClusterName() string
- func (ms MeshService) SidecarLocalClusterName() string
- func (ms MeshService) String() string
- func (ms *MeshService) Subdomain() string
- type MockProvider
- func (m *MockProvider) EXPECT() *MockProviderMockRecorder
- func (m *MockProvider) GetID() string
- func (m *MockProvider) GetServicesForServiceIdentity(arg0 identity.ServiceIdentity) []MeshService
- func (m *MockProvider) ListServiceIdentitiesForService(arg0 MeshService) []identity.ServiceIdentity
- func (m *MockProvider) ListServices() []MeshService
- type MockProviderMockRecorder
- func (mr *MockProviderMockRecorder) GetID() *gomock.Call
- func (mr *MockProviderMockRecorder) GetServicesForServiceIdentity(arg0 interface{}) *gomock.Call
- func (mr *MockProviderMockRecorder) ListServiceIdentitiesForService(arg0 interface{}) *gomock.Call
- func (mr *MockProviderMockRecorder) ListServices() *gomock.Call
- type Provider
- type WeightedCluster
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AccessControlTrafficMatchName ¶
func AccessControlTrafficMatchName(name, namespace string, targetPort uint16, protocol string) string
AccessControlTrafficMatchName returns the acl traffic match name
Types ¶
type ClusterName ¶
type ClusterName string
ClusterName is a type for a service name
func (ClusterName) String ¶
func (c ClusterName) String() string
String returns the given ClusterName type as a string
type Locality ¶
type Locality int
Locality is the relative locality of a service. ie: if a service is being accessed from the same namespace or a remote cluster.
type MeshService ¶
type MeshService struct { // If the service resides on a Kubernetes service, this would be the Kubernetes namespace. Namespace string // The name of the service. May include instance (e.g. pod) information if the backing service // doesn't have a single, stable ip address. For example, a MeshService created by a headless // Kubernetes service named mysql-headless, will have the name "mysql.mysql-headless" // A MeshService created by a normal ClusterIP service named mysql will be named "mysql" // This imposes a restriction that service names cannot contain "." (which is already // the case in kubernetes). Thus, MeshService.Name will be of the form: [subdomain.]providerKey Name string // Port is the port number that clients use to access the service. // This can be different than MeshService.TargetPort which represents the actual port number // the application is accepting connections on. // Port maps to ServicePort.Port in k8s: https://pkg.go.dev/k8s.io/api/core/v1#ServicePort Port uint16 // TargetPort is the port number on which an application accept traffic directed to this MeshService // This can be different than MeshService.Port in k8s. // TargetPort maps to ServicePort.TargetPort in k8s: https://pkg.go.dev/k8s.io/api/core/v1#ServicePort TargetPort uint16 // Protocol is the protocol served by the service's port Protocol string // ServiceImportUID is the uid of service import ServiceImportUID types.UID // CloudInheritedFrom is the cloud service Inherited From CloudInheritedFrom string }
MeshService is the struct representing a service (Kubernetes or otherwise) within the service mesh.
func (MeshService) AccessControlTrafficMatchName ¶
func (ms MeshService) AccessControlTrafficMatchName() string
AccessControlTrafficMatchName returns the acl traffic match name
func (MeshService) FQDN ¶
func (ms MeshService) FQDN() string
FQDN is similar to String(), but uses a dot separator and is in a different order.
func (MeshService) InboundTrafficMatchName ¶
func (ms MeshService) InboundTrafficMatchName() string
InboundTrafficMatchName returns the MeshService inbound traffic match name
func (MeshService) IngressTrafficMatchName ¶
func (ms MeshService) IngressTrafficMatchName() string
IngressTrafficMatchName returns the ingress traffic match name
func (*MeshService) IsMultiClusterService ¶
func (ms *MeshService) IsMultiClusterService() bool
IsMultiClusterService checks whether it is a multi cluster service
func (MeshService) NamespacedKey ¶
func (ms MeshService) NamespacedKey() string
NamespacedKey is the key (i.e. namespace + ProviderKey()) with which to lookup the backing service within the provider
func (MeshService) OutboundTrafficMatchName ¶
func (ms MeshService) OutboundTrafficMatchName() string
OutboundTrafficMatchName returns the MeshService outbound traffic match name
func (*MeshService) ProviderKey ¶
func (ms *MeshService) ProviderKey() string
ProviderKey represents the name of the original entity from which this MeshService was created (e.g. a Kubernetes service name) TODO: possibly memoize if performance suffers
func (MeshService) ServerName ¶
func (ms MeshService) ServerName() string
ServerName returns the Server Name Identifier (SNI) for TLS connections
func (MeshService) SiblingTo ¶
func (ms MeshService) SiblingTo(svc MeshService) bool
SiblingTo returns true if svc and ms are derived from the same resource in the service provder (based on namespace and provider key)
func (MeshService) SidecarClusterName ¶
func (ms MeshService) SidecarClusterName() string
SidecarClusterName is the name of the cluster corresponding to the MeshService in Sidecar
func (MeshService) SidecarLocalClusterName ¶
func (ms MeshService) SidecarLocalClusterName() string
SidecarLocalClusterName is the name of the local cluster corresponding to the MeshService in Sidecar
func (MeshService) String ¶
func (ms MeshService) String() string
String returns the string representation of the given MeshService. SHOULD NOT BE USED AS A MAPPING FOR ANYTHING. Use NamespacedKey and Subdomain
func (*MeshService) Subdomain ¶
func (ms *MeshService) Subdomain() string
Subdomain is an optional subdomain for this MeshService TODO: possibly memoize if performance suffers
type MockProvider ¶
type MockProvider struct {
// contains filtered or unexported fields
}
MockProvider is a mock of Provider interface.
func NewMockProvider ¶
func NewMockProvider(ctrl *gomock.Controller) *MockProvider
NewMockProvider creates a new mock instance.
func (*MockProvider) EXPECT ¶
func (m *MockProvider) EXPECT() *MockProviderMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockProvider) GetServicesForServiceIdentity ¶
func (m *MockProvider) GetServicesForServiceIdentity(arg0 identity.ServiceIdentity) []MeshService
GetServicesForServiceIdentity mocks base method.
func (*MockProvider) ListServiceIdentitiesForService ¶
func (m *MockProvider) ListServiceIdentitiesForService(arg0 MeshService) []identity.ServiceIdentity
ListServiceIdentitiesForService mocks base method.
func (*MockProvider) ListServices ¶
func (m *MockProvider) ListServices() []MeshService
ListServices mocks base method.
type MockProviderMockRecorder ¶
type MockProviderMockRecorder struct {
// contains filtered or unexported fields
}
MockProviderMockRecorder is the mock recorder for MockProvider.
func (*MockProviderMockRecorder) GetID ¶
func (mr *MockProviderMockRecorder) GetID() *gomock.Call
GetID indicates an expected call of GetID.
func (*MockProviderMockRecorder) GetServicesForServiceIdentity ¶
func (mr *MockProviderMockRecorder) GetServicesForServiceIdentity(arg0 interface{}) *gomock.Call
GetServicesForServiceIdentity indicates an expected call of GetServicesForServiceIdentity.
func (*MockProviderMockRecorder) ListServiceIdentitiesForService ¶
func (mr *MockProviderMockRecorder) ListServiceIdentitiesForService(arg0 interface{}) *gomock.Call
ListServiceIdentitiesForService indicates an expected call of ListServiceIdentitiesForService.
func (*MockProviderMockRecorder) ListServices ¶
func (mr *MockProviderMockRecorder) ListServices() *gomock.Call
ListServices indicates an expected call of ListServices.
type Provider ¶
type Provider interface { // GetServicesForServiceIdentity retrieves the namespaced services for a given service identity GetServicesForServiceIdentity(identity.ServiceIdentity) []MeshService // ListServices returns a list of services that are part of monitored namespaces ListServices() []MeshService // ListServiceIdentitiesForService returns service identities for given service ListServiceIdentitiesForService(MeshService) []identity.ServiceIdentity // GetID returns the unique identifier of the Provider GetID() string }
Provider is an interface to be implemented by components abstracting Kubernetes, and other compute/cluster providers
type WeightedCluster ¶
type WeightedCluster struct { ClusterName ClusterName `json:"cluster_name:omitempty"` Weight int `json:"weight:omitempty"` }
WeightedCluster is a struct of a cluster and is weight that is backing a service