func CalcRequiredNodesCount(
    request *RemoteNodesSamplerRequest,
    storeReader collections.ConcurrentObjectStoreReader[*core.Node],
) int
			Calculates the number of nodes that a sample for the specified request needs to contain.
Default implementation of RemoteSamplerClient.
type DefaultRemoteSamplerClient struct {
    // contains filtered or unexported fields
}
			
			
			
			
			
			
				
				func NewDefaultRemoteSamplerClient(
    clusterName string,
    baseURI string,
    samplingStrategyName string,
    logger *logr.Logger,
) *DefaultRemoteSamplerClient
				
				
				
			
			
				
				func (sc *DefaultRemoteSamplerClient) BaseURI() string
func (sc *DefaultRemoteSamplerClient) ClusterName() string
func (sc *DefaultRemoteSamplerClient) SampleNodes(ctx context.Context, request *RemoteNodesSamplerRequest) (*RemoteNodesSamplerResponse, *RemoteNodesSamplerError)
func (sc *DefaultRemoteSamplerClient) SamplingStrategyName() string
Default implementation of RemoteSamplerClientsManager.
type DefaultRemoteSamplerClientsManager struct {
    // contains filtered or unexported fields
}
			
			
			
			
			
			
				
				func NewDefaultRemoteSamplerClientsManager(
    remoteClusters map[string]*config.RemoteClusterConfig,
    samplingStrategy string,
    maxConcurrentRequests int,
    logger *logr.Logger,
) *DefaultRemoteSamplerClientsManager
				
				
				
			
			
				
				func (scm *DefaultRemoteSamplerClientsManager) SampleNodesFromClusters( ctx context.Context, request *RemoteNodesSamplerRequest, percentageOfClustersToSample float64, ) (map[string]*RemoteNodesSamplerResult, error)
DTO for error responses.
type RemoteNodesSamplerError struct {
    Error *client.PolarisErrorDto `json:"error" yaml:"error"`
}
			
			
			
			
			
			
			
		
			
			
			DTO for requesting a nodes sample from a remote nodes sampler.
type RemoteNodesSamplerRequest struct {
    // Information about the pod that should be scheduled.
    PodInfo *pipeline.PodInfo `json:"podInfo" yaml:"podInfo"`
    // The number of nodes to sample defined as basis points (bp) of the total number of nodes.
    // 1 bp = 0.01%
    NodesToSampleBp uint32 `json:"nodesToSampleBp" yaml:"nodesToSampleBp"`
}
			
			
			
			
			
			
			
		
			
			
			DTO for the response from a remote nodes sampler.
type RemoteNodesSamplerResponse struct {
    // The nodes that have been sampled.
    Nodes []*pipeline.NodeInfo `json:"nodes" yaml:"nodes"`
}
			
			
			
			
			
			
			
		
			
			
			Combines a RemoteNodesSamplerResponse and a RemoteNodesSamplerError in one object. At all times, only one of its fields is set.
type RemoteNodesSamplerResult struct {
    // The response from the remote nodes sampler, if the request was successful.
    Response *RemoteNodesSamplerResponse
    // The error, if the request failed.
    Error *RemoteNodesSamplerError
}
			
			
			
			
			
			
			
		
			
			
			A client for obtaining node samples from a remote sampler.
This is intentionally not part of the ClusterClient interface, because ClusterClient architecturally resides at a lower level.
type RemoteSamplerClient interface {
    // The name of the cluster, where the remote sampler is running.
    ClusterName() string
    // The base URI of the remote sampler.
    BaseURI() string
    // The name of the sampling strategy.
    SamplingStrategyName() string
    // Executes a request to the remote sampler to obtain a sample of nodes.
    //
    // Returns a sample of nodes or an error.
    SampleNodes(ctx context.Context, request *RemoteNodesSamplerRequest) (*RemoteNodesSamplerResponse, *RemoteNodesSamplerError)
}
			
			
			
			
			
			
			
		
			
			
			Facilitates the use of multiple RemoteSamplerClients.
type RemoteSamplerClientsManager interface {
    // Executes a request to the specified percentage of all configured remote samplers to obtain node samples.
    //
    // The percentageOfClustersToSample needs to be specified as a percentage in the range (0.0, 1.0].
    //
    // Returns a map of responses indexed by cluster name or an error.
    // Note that an error is only returned in case of a fatal issue - if single clusters return an error, they will be contained in the results map.
    SampleNodesFromClusters(ctx context.Context, request *RemoteNodesSamplerRequest, percentageOfClustersToSample float64) (map[string]*RemoteNodesSamplerResult, error)
}