Documentation ¶
Index ¶
- func GetPodRequestResource(pod *v1.Pod) *resources.Resource
- func GetRegisteredTestScenarios() map[string]TestScenario
- func IsNodeReady(node *v1.Node) bool
- func ParseResourceFromResourceList(resourceList *v1.ResourceList) *resources.Resource
- func Register(ts TestScenario)
- type AppAnalyzer
- func (aa *AppAnalyzer) GetLastTasks(lastN int) []*TaskStatus
- func (aa *AppAnalyzer) GetTasksDistribution(condType TaskConditionType) [][]*TaskStatus
- func (aa *AppAnalyzer) GetTasksDistributionInfo(nodeInfos map[string]*NodeInfo) *TasksDistributionInfo
- func (aa *AppAnalyzer) GetTasksProfiling() profiling.Profiling
- func (aa *AppAnalyzer) GetTimeDistribution(condType TaskConditionType) []int
- type AppInfo
- type AppManager
- type AppStatus
- type CommonConfig
- type Config
- type DeploymentsAppManager
- func (dam *DeploymentsAppManager) Create(schedulerName string, appInfo *AppInfo) error
- func (dam *DeploymentsAppManager) CreateWaitAndRefreshTasksStatus(schedulerName string, appInfo *AppInfo, timeout time.Duration) error
- func (dam *DeploymentsAppManager) Delete(appInfo *AppInfo) error
- func (dam *DeploymentsAppManager) DeleteWait(appInfo *AppInfo, timeout time.Duration) error
- func (dam *DeploymentsAppManager) RefreshAppStatus(appInfo *AppInfo) error
- func (dam *DeploymentsAppManager) RefreshTasksStatusAfterRunning(appInfo *AppInfo) error
- func (dam *DeploymentsAppManager) WaitForAppsToBeCleanedUp(appInfo *AppInfo, timeout time.Duration) error
- func (dam *DeploymentsAppManager) WaitForAppsToBeSatisfied(appInfo *AppInfo, timeout time.Duration) error
- type NodeAnalyzer
- func (na *NodeAnalyzer) AnalyzeApp(appInfo *AppInfo)
- func (na *NodeAnalyzer) CalculateAllocatedResource()
- func (na *NodeAnalyzer) ClearApps()
- func (na *NodeAnalyzer) GetAllocatableNodes() map[string]*NodeInfo
- func (na *NodeAnalyzer) GetNodeResourceDistribution(tasksDistribution [][]*TaskStatus, resourceName string) [10][]int
- func (na *NodeAnalyzer) GetScheduledNodes() map[string]*NodeInfo
- func (na *NodeAnalyzer) GetTotalAllocatableResource() *resources.Resource
- func (na *NodeAnalyzer) InitNodeInfosBeforeTesting() error
- type NodeInfo
- type RequestInfo
- type ResourceInfo
- type TaskCondition
- type TaskConditionType
- type TaskStatus
- type TasksDistributionInfo
- type TestScenario
- type TestScenarios
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetRegisteredTestScenarios ¶
func GetRegisteredTestScenarios() map[string]TestScenario
func IsNodeReady ¶
IsNodeReady returns true if a node is ready, false otherwise.
func ParseResourceFromResourceList ¶
func ParseResourceFromResourceList(resourceList *v1.ResourceList) *resources.Resource
func Register ¶
func Register(ts TestScenario)
Types ¶
type AppAnalyzer ¶
type AppAnalyzer struct {
// contains filtered or unexported fields
}
func NewAppAnalyzer ¶
func NewAppAnalyzer(appInfo *AppInfo) *AppAnalyzer
func (*AppAnalyzer) GetLastTasks ¶
func (aa *AppAnalyzer) GetLastTasks(lastN int) []*TaskStatus
func (*AppAnalyzer) GetTasksDistribution ¶
func (aa *AppAnalyzer) GetTasksDistribution(condType TaskConditionType) [][]*TaskStatus
func (*AppAnalyzer) GetTasksDistributionInfo ¶
func (aa *AppAnalyzer) GetTasksDistributionInfo(nodeInfos map[string]*NodeInfo) *TasksDistributionInfo
func (*AppAnalyzer) GetTasksProfiling ¶
func (aa *AppAnalyzer) GetTasksProfiling() profiling.Profiling
func (*AppAnalyzer) GetTimeDistribution ¶
func (aa *AppAnalyzer) GetTimeDistribution(condType TaskConditionType) []int
type AppInfo ¶
type AppInfo struct { Namespace string AppID string Queue string RequestInfos []*RequestInfo PodSpec apiv1.PodSpec PodTemplateSpec apiv1.PodTemplateSpec AppStatus AppStatus TasksStatus map[string]*TaskStatus }
func NewAppInfo ¶
func NewAppInfo(namespace, appID, queue string, requestInfos []*RequestInfo, podTemplateSpec apiv1.PodTemplateSpec, podSpec apiv1.PodSpec) *AppInfo
func (*AppInfo) GetDesiredNumTasks ¶
func (*AppInfo) SetAppStatus ¶
type AppManager ¶
type AppManager interface { Create(schedulerName string, appInfo *AppInfo) error Delete(appInfo *AppInfo) error RefreshAppStatus(appInfo *AppInfo) error RefreshTasksStatusAfterRunning(appInfo *AppInfo) error WaitForAppsToBeCleanedUp(appInfos *AppInfo, timeout time.Duration) error WaitForAppsToBeSatisfied(appInfos *AppInfo, timeout time.Duration) error // create an app and wait for it to be running, refresh tasks status at last CreateWaitAndRefreshTasksStatus(schedulerName string, appInfo *AppInfo, timeout time.Duration) error // delete an app and wait for it to be cleaned up DeleteWait(appInfo *AppInfo, timeout time.Duration) error }
func NewDeploymentsAppManager ¶
func NewDeploymentsAppManager(kubeClient *utils.KubeClient) AppManager
type CommonConfig ¶
type Config ¶
type Config struct { Common *CommonConfig Scenarios map[string]interface{} }
func InitConfig ¶
type DeploymentsAppManager ¶
type DeploymentsAppManager struct {
// contains filtered or unexported fields
}
func (*DeploymentsAppManager) Create ¶
func (dam *DeploymentsAppManager) Create(schedulerName string, appInfo *AppInfo) error
func (*DeploymentsAppManager) CreateWaitAndRefreshTasksStatus ¶
func (*DeploymentsAppManager) Delete ¶
func (dam *DeploymentsAppManager) Delete(appInfo *AppInfo) error
func (*DeploymentsAppManager) DeleteWait ¶
func (dam *DeploymentsAppManager) DeleteWait(appInfo *AppInfo, timeout time.Duration) error
func (*DeploymentsAppManager) RefreshAppStatus ¶
func (dam *DeploymentsAppManager) RefreshAppStatus(appInfo *AppInfo) error
func (*DeploymentsAppManager) RefreshTasksStatusAfterRunning ¶
func (dam *DeploymentsAppManager) RefreshTasksStatusAfterRunning(appInfo *AppInfo) error
func (*DeploymentsAppManager) WaitForAppsToBeCleanedUp ¶
func (dam *DeploymentsAppManager) WaitForAppsToBeCleanedUp(appInfo *AppInfo, timeout time.Duration) error
func (*DeploymentsAppManager) WaitForAppsToBeSatisfied ¶
func (dam *DeploymentsAppManager) WaitForAppsToBeSatisfied(appInfo *AppInfo, timeout time.Duration) error
type NodeAnalyzer ¶
type NodeAnalyzer struct {
// contains filtered or unexported fields
}
func NewNodeAnalyzer ¶
func NewNodeAnalyzer(kubeClient *utils.KubeClient, nodeSelector string) *NodeAnalyzer
func (*NodeAnalyzer) AnalyzeApp ¶
func (na *NodeAnalyzer) AnalyzeApp(appInfo *AppInfo)
AnalyzeApp updates the state of nodes according to app status
func (*NodeAnalyzer) CalculateAllocatedResource ¶
func (na *NodeAnalyzer) CalculateAllocatedResource()
CalculateAllocatedResource calculate allocated resource for nodes, which may be rather time-consuming when there are numerous pods in the cluster, so this should be called only if necessary!
func (*NodeAnalyzer) ClearApps ¶
func (na *NodeAnalyzer) ClearApps()
func (*NodeAnalyzer) GetAllocatableNodes ¶
func (na *NodeAnalyzer) GetAllocatableNodes() map[string]*NodeInfo
func (*NodeAnalyzer) GetNodeResourceDistribution ¶
func (na *NodeAnalyzer) GetNodeResourceDistribution(tasksDistribution [][]*TaskStatus, resourceName string) [10][]int
func (*NodeAnalyzer) GetScheduledNodes ¶
func (na *NodeAnalyzer) GetScheduledNodes() map[string]*NodeInfo
func (*NodeAnalyzer) GetTotalAllocatableResource ¶
func (na *NodeAnalyzer) GetTotalAllocatableResource() *resources.Resource
func (*NodeAnalyzer) InitNodeInfosBeforeTesting ¶
func (na *NodeAnalyzer) InitNodeInfosBeforeTesting() error
InitNodeInfosBeforeTesting records the snapshot of schedulable and ready nodes before testing
type NodeInfo ¶
type NodeInfo struct { NodeID string Tasks map[string]*TaskStatus Capacity *resources.Resource AllocatedResource ResourceInfo }
func NewNodeInfo ¶
func (*NodeInfo) AddTask ¶
func (ni *NodeInfo) AddTask(task *TaskStatus)
func (*NodeInfo) ClearTasks ¶
func (ni *NodeInfo) ClearTasks()
func (*NodeInfo) GetSummary ¶
type RequestInfo ¶
type RequestInfo struct { Number int32 PriorityClass string RequestResources map[string]string LimitResources map[string]string }
func NewRequestInfo ¶
func NewRequestInfo(number int32, priorityClass string, requestResources, limitResources map[string]string) *RequestInfo
type ResourceInfo ¶
type ResourceInfo struct { NodeResourceBefore *resources.Resource TasksTotalResource *resources.Resource NumTasks int }
func (*ResourceInfo) AddTaskResource ¶
func (ri *ResourceInfo) AddTaskResource(taskReqResources *resources.Resource)
func (*ResourceInfo) ClearTaskResources ¶
func (ri *ResourceInfo) ClearTaskResources()
func (*ResourceInfo) GetResource ¶
func (ri *ResourceInfo) GetResource() *resources.Resource
type TaskCondition ¶
type TaskCondition struct { CondType TaskConditionType TransitionTime time.Time }
type TaskConditionType ¶
type TaskConditionType string
const ( PodCreated TaskConditionType = "PodCreated" PodScheduled TaskConditionType = "PodScheduled" PodStarted TaskConditionType = "PodStarted" PodInitialized TaskConditionType = "Initialized" PodReady TaskConditionType = "Ready" ContainersReady TaskConditionType = "ContainersReady" )
func GetOrderedTaskConditionTypes ¶
func GetOrderedTaskConditionTypes() []TaskConditionType
type TaskStatus ¶
type TaskStatus struct { TaskID string CreateTime time.Time RunningTime time.Time NodeID string RequestResources *resources.Resource Conditions []*TaskCondition }
func NewTaskStatus ¶
func NewTaskStatus(taskID, nodeID string, createTime, runningTime time.Time, requestResources *resources.Resource, conditions []*TaskCondition) *TaskStatus
func (*TaskStatus) GetTransitionTime ¶
func (taskStatus *TaskStatus) GetTransitionTime(condType TaskConditionType) *time.Time
type TasksDistributionInfo ¶
type TestScenario ¶
type TestScenarios ¶
type TestScenarios struct {
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.