Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AwsFacade ¶ added in v0.1.1
type AwsFacade interface { // ListNamespaces provides ServiceDiscovery ListNamespaces wrapper interface for paginator. ListNamespaces(context.Context, *sd.ListNamespacesInput, ...func(*sd.Options)) (*sd.ListNamespacesOutput, error) // ListServices provides ServiceDiscovery ListServices wrapper interface for paginator. ListServices(context.Context, *sd.ListServicesInput, ...func(options *sd.Options)) (*sd.ListServicesOutput, error) // ListOperations provides ServiceDiscovery ListOperations wrapper interface for paginator. ListOperations(context.Context, *sd.ListOperationsInput, ...func(*sd.Options)) (*sd.ListOperationsOutput, error) // GetOperation provides ServiceDiscovery GetOperation wrapper interface. GetOperation(context.Context, *sd.GetOperationInput, ...func(*sd.Options)) (*sd.GetOperationOutput, error) // CreateHttpNamespace provides ServiceDiscovery CreateHttpNamespace wrapper interface. CreateHttpNamespace(context.Context, *sd.CreateHttpNamespaceInput, ...func(*sd.Options)) (*sd.CreateHttpNamespaceOutput, error) // CreateService provides ServiceDiscovery CreateService wrapper interface. CreateService(context.Context, *sd.CreateServiceInput, ...func(*sd.Options)) (*sd.CreateServiceOutput, error) // RegisterInstance provides ServiceDiscovery RegisterInstance wrapper interface. RegisterInstance(context.Context, *sd.RegisterInstanceInput, ...func(*sd.Options)) (*sd.RegisterInstanceOutput, error) // DeregisterInstance provides ServiceDiscovery DeregisterInstance wrapper interface. DeregisterInstance(context.Context, *sd.DeregisterInstanceInput, ...func(*sd.Options)) (*sd.DeregisterInstanceOutput, error) // DiscoverInstances provides ServiceDiscovery DiscoverInstances wrapper interface. DiscoverInstances(context.Context, *sd.DiscoverInstancesInput, ...func(*sd.Options)) (*sd.DiscoverInstancesOutput, error) }
AwsFacade wraps the minimal surface area of ServiceDiscovery API calls for the AWS SDK required by the AWS Cloud Map client. This enables mock generation for unit testing.
func NewAwsFacadeFromConfig ¶ added in v0.1.1
NewAwsFacadeFromConfig creates a new AWS facade from an AWS client config.
type OperationPoller ¶ added in v0.1.1
type OperationPoller interface { // Submit operations to async poll Submit(ctx context.Context, opProvider func() (opId string, err error)) // Poll operations for a terminal state Poll(ctx context.Context, opId string) (*types.Operation, error) // Await waits for all operation results from async poll Await() (err error) }
OperationPoller polls a list operations for a terminal status
func NewOperationPoller ¶ added in v0.3.1
func NewOperationPoller(sdApi ServiceDiscoveryApi) OperationPoller
NewOperationPoller creates a new operation poller
func NewOperationPollerWithConfig ¶ added in v0.3.1
func NewOperationPollerWithConfig(pollInterval, pollTimeout time.Duration, sdApi ServiceDiscoveryApi) OperationPoller
NewOperationPollerWithConfig creates a new operation poller
type SdCacheConfig ¶ added in v0.2.0
type ServiceDiscoveryApi ¶ added in v0.1.1
type ServiceDiscoveryApi interface { // GetNamespaceMap returns a map of all namespaces in the Cloud Map account indexed by namespace name. GetNamespaceMap(ctx context.Context) (namespaces map[string]*model.Namespace, err error) // GetServiceIdMap returns a map of all service IDs for a given namespace indexed by service name. GetServiceIdMap(ctx context.Context, namespaceId string) (serviceIdMap map[string]string, err error) // DiscoverInstances returns a list of service instances registered to a given service. DiscoverInstances(ctx context.Context, nsName string, svcName string, queryParameters map[string]string) (insts []types.HttpInstanceSummary, err error) // GetOperation returns an operation. GetOperation(ctx context.Context, operationId string) (operation *types.Operation, err error) // CreateHttpNamespace creates a HTTP namespace in AWS Cloud Map for a given name. CreateHttpNamespace(ctx context.Context, namespaceName string) (operationId string, err error) // CreateService creates a named service in AWS Cloud Map under the given namespace. CreateService(ctx context.Context, namespace model.Namespace, serviceName string) (serviceId string, err error) // RegisterInstance registers a service instance in AWS Cloud Map. RegisterInstance(ctx context.Context, serviceId string, instanceId string, instanceAttrs map[string]string) (operationId string, err error) // DeregisterInstance de-registers a service instance in Cloud Map. DeregisterInstance(ctx context.Context, serviceId string, instanceId string) (operationId string, err error) }
ServiceDiscoveryApi handles the AWS Cloud Map API request and response processing logic, and converts results to internal data structures. It manages all interactions with the AWS SDK.
func NewServiceDiscoveryApiFromConfig ¶ added in v0.1.1
func NewServiceDiscoveryApiFromConfig(cfg *aws.Config) ServiceDiscoveryApi
NewServiceDiscoveryApiFromConfig creates a new AWS Cloud Map API connection manager from an AWS client config.
type ServiceDiscoveryClient ¶
type ServiceDiscoveryClient interface { // ListServices returns all services and their endpoints for a given namespace. ListServices(ctx context.Context, namespaceName string) ([]*model.Service, error) // CreateService creates a Cloud Map service resource, and namespace if necessary. CreateService(ctx context.Context, namespaceName string, serviceName string) error // GetService returns a service resource fetched from AWS Cloud Map or nil if not found. GetService(ctx context.Context, namespaceName string, serviceName string) (*model.Service, error) // RegisterEndpoints registers all endpoints for given service. RegisterEndpoints(ctx context.Context, namespaceName string, serviceName string, endpoints []*model.Endpoint) error // DeleteEndpoints de-registers all endpoints for given service. DeleteEndpoints(ctx context.Context, namespaceName string, serviceName string, endpoints []*model.Endpoint) error }
ServiceDiscoveryClient provides the service endpoint management functionality required by the AWS Cloud Map multi-cluster service discovery for Kubernetes controller. It maintains local caches for all AWS Cloud Map resources.
func NewDefaultServiceDiscoveryClient ¶ added in v0.2.0
func NewDefaultServiceDiscoveryClient(cfg *aws.Config, clusterUtils model.ClusterUtils) ServiceDiscoveryClient
NewDefaultServiceDiscoveryClient creates a new service discovery client for AWS Cloud Map with default resource cache from a given AWS client config.
func NewServiceDiscoveryClientWithCustomCache ¶ added in v0.2.0
func NewServiceDiscoveryClientWithCustomCache(cfg *aws.Config, cacheConfig *SdCacheConfig, clusterUtils model.ClusterUtils) ServiceDiscoveryClient
type ServiceDiscoveryClientCache ¶ added in v0.2.0
type ServiceDiscoveryClientCache interface { GetNamespaceMap() (namespaces map[string]*model.Namespace, found bool) CacheNamespaceMap(namespaces map[string]*model.Namespace) EvictNamespaceMap() GetServiceIdMap(namespaceName string) (serviceIdMap map[string]string, found bool) CacheServiceIdMap(namespaceName string, serviceIdMap map[string]string) EvictServiceIdMap(namespaceName string) GetEndpoints(namespaceName string, serviceName string) (endpoints []*model.Endpoint, found bool) CacheEndpoints(namespaceName string, serviceName string, endpoints []*model.Endpoint) EvictEndpoints(namespaceName string, serviceName string) }
func NewDefaultServiceDiscoveryClientCache ¶ added in v0.2.0
func NewDefaultServiceDiscoveryClientCache() ServiceDiscoveryClientCache
func NewServiceDiscoveryClientCache ¶ added in v0.2.0
func NewServiceDiscoveryClientCache(cacheConfig *SdCacheConfig) ServiceDiscoveryClientCache