testfixtures

package
v0.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2024 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TestJobset                   = "testJobset"
	TestQueue                    = "testQueue"
	TestPool                     = "testPool"
	TestHostnameLabel            = "kubernetes.io/hostname"
	ClusterNameLabel             = "cluster"
	PoolNameLabel                = "pool"
	PriorityClass0               = "priority-0"
	PriorityClass1               = "priority-1"
	PriorityClass2               = "priority-2"
	PriorityClass2NonPreemptible = "priority-2-non-preemptible"
	PriorityClass3               = "priority-3"
)

Variables

View Source
var (
	TestResourceListFactory    = MakeTestResourceListFactory()
	TestEmptyFloatingResources = MakeTestFloatingResourceTypes(nil)
	TestFloatingResources      = MakeTestFloatingResourceTypes(TestFloatingResourceConfig)
	TestFloatingResourceConfig = []schedulerconfiguration.FloatingResourceConfig{
		{
			Name: "test-floating-resource",
			Pools: []schedulerconfiguration.FloatingResourcePoolConfig{
				{
					Name:     "pool",
					Quantity: resource.MustParse("10"),
				},
			},
		},
	}
	BaseTime, _         = time.Parse("2006-01-02T15:04:05.000Z", "2022-03-01T15:04:05.000Z")
	BasetimeProto       = protoutil.ToTimestamp(BaseTime)
	TestPriorityClasses = map[string]types.PriorityClass{
		PriorityClass0:               {Priority: 0, Preemptible: true},
		PriorityClass1:               {Priority: 1, Preemptible: true},
		PriorityClass2:               {Priority: 2, Preemptible: true},
		PriorityClass2NonPreemptible: {Priority: 2, Preemptible: false},
		PriorityClass3:               {Priority: 3, Preemptible: false},
		"armada-preemptible-away":    {Priority: 30000, Preemptible: true, AwayNodeTypes: []types.AwayNodeType{{Priority: 29000, WellKnownNodeTypeName: "gpu"}}},
		"armada-preemptible":         {Priority: 30000, Preemptible: true},
	}
	TestDefaultPriorityClass = PriorityClass3
	TestPriorities           = []int32{0, 1, 2, 3}
	TestResources            = []schedulerconfiguration.ResourceType{
		{Name: "cpu", Resolution: resource.MustParse("1")},
		{Name: "memory", Resolution: resource.MustParse("128Mi")},
		{Name: "nvidia.com/gpu", Resolution: resource.MustParse("1")},
	}
	TestResourceNames = slices.Map(
		TestResources,
		func(v schedulerconfiguration.ResourceType) string { return v.Name },
	)
	TestIndexedTaints      = []string{"largeJobsOnly", "gpu"}
	TestIndexedNodeLabels  = []string{"largeJobsOnly", "gpu", ClusterNameLabel, PoolNameLabel}
	TestWellKnownNodeTypes = []schedulerconfiguration.WellKnownNodeType{
		{
			Name:   "gpu",
			Taints: []v1.Taint{{Key: "gpu", Value: "true", Effect: v1.TaintEffectNoSchedule}},
		},
	}

	// SchedulingKeyGenerator to use in testing.
	// Has to be consistent since creating one involves generating a random key.
	// If this key isn't consistent, scheduling keys generated are not either.
	// We use the all-zeros key here to ensure scheduling keys are cosnsitent between tests.
	SchedulingKeyGenerator = schedulerobjects.NewSchedulingKeyGeneratorWithKey(make([]byte, 32))
	// Used for job creation.
	JobDb = NewJobDb(TestResourceListFactory)
)

Functions

func GetTestSupportedResourceTypes added in v0.4.48

func GetTestSupportedResourceTypes() []schedulerconfiguration.ResourceType

func IntRange

func IntRange(a, b int) []int

func MakeTestExecutor added in v0.9.0

func MakeTestExecutor(executorId string, nodePools ...string) *schedulerobjects.Executor

func MakeTestQueue added in v0.4.29

func MakeTestQueue() *api.Queue

func MakeTestResourceListFactory added in v0.4.48

func MakeTestResourceListFactory() *internaltypes.ResourceListFactory

func N16Cpu128GiJobs added in v0.3.79

func N16Cpu128GiJobs(queue string, priorityClassName string, n int) []*jobdb.Job

func N16CpuPodReqs added in v0.3.69

func N16CpuPodReqs(queue string, priority int32, n int) []*schedulerobjects.PodRequirements

func N1Cpu16GiJobs added in v0.3.79

func N1Cpu16GiJobs(queue string, priorityClassName string, n int) []*jobdb.Job

func N1Cpu4GiJobs added in v0.3.79

func N1Cpu4GiJobs(queue string, priorityClassName string, n int) []*jobdb.Job

func N1CpuPodReqs added in v0.3.69

func N1CpuPodReqs(queue string, priority int32, n int) []*schedulerobjects.PodRequirements

func N1GpuJobs added in v0.3.69

func N1GpuJobs(queue string, priorityClassName string, n int) []*jobdb.Job

func N1GpuPodReqs added in v0.3.69

func N1GpuPodReqs(queue string, priority int32, n int) []*schedulerobjects.PodRequirements

func N32Cpu256GiJobs added in v0.3.79

func N32Cpu256GiJobs(queue string, priorityClassName string, n int) []*jobdb.Job

func N32CpuNodes added in v0.3.69

func N32CpuNodes(n int, priorities []int32) []*schedulerobjects.Node

func N32CpuPodReqs added in v0.3.69

func N32CpuPodReqs(queue string, priority int32, n int) []*schedulerobjects.PodRequirements

func N8GpuNodes added in v0.3.69

func N8GpuNodes(n int, priorities []int32) []*schedulerobjects.Node

func NTainted32CpuNodes added in v0.3.69

func NTainted32CpuNodes(n int, priorities []int32) []*schedulerobjects.Node

func NewJob added in v0.6.0

func NewJob(
	jobId string,
	jobSet string,
	queue string,
	priority uint32,
	schedulingInfo *schedulerobjects.JobSchedulingInfo,
	queued bool,
	queuedVersion int32,
	cancelRequested bool,
	cancelByJobSetRequested bool,
	cancelled bool,
	created int64,
	validated bool,
) *jobdb.Job

func NewJobDb added in v0.4.0

func NewJobDb(resourceListFactory *internaltypes.ResourceListFactory) *jobdb.JobDb

NewJobDb returns a new default jobDb with defaults to use in tests.

func NewJobDbWithJobs added in v0.4.12

func NewJobDbWithJobs(jobs []*jobdb.Job) *jobdb.JobDb

func Repeat

func Repeat[T any](v T, n int) []T

func SingleQueuePriorityOne added in v0.4.29

func SingleQueuePriorityOne(name string) []*api.Queue

func Test100CoreSubmitMsg added in v0.4.44

func Test100CoreSubmitMsg() *armadaevents.SubmitJob

func Test16Cpu128GiJob added in v0.3.79

func Test16Cpu128GiJob(queue string, priorityClassName string) *jobdb.Job

func Test16Cpu128GiPodReqs added in v0.3.79

func Test16Cpu128GiPodReqs(queue string, jobId ulid.ULID, priority int32) *schedulerobjects.PodRequirements

func Test1CoreSubmitMsg added in v0.4.44

func Test1CoreSubmitMsg() *armadaevents.SubmitJob

func Test1CoreSubmitMsgWithNodeSelector added in v0.4.44

func Test1CoreSubmitMsgWithNodeSelector(selector map[string]string) *armadaevents.SubmitJob

func Test1Cpu16GiJob added in v0.3.79

func Test1Cpu16GiJob(queue string, priorityClassName string) *jobdb.Job

func Test1Cpu16GiPodReqs added in v0.3.79

func Test1Cpu16GiPodReqs(queue string, jobId ulid.ULID, priority int32) *schedulerobjects.PodRequirements

func Test1Cpu4GiJob added in v0.3.79

func Test1Cpu4GiJob(queue string, priorityClassName string) *jobdb.Job

func Test1Cpu4GiPodReqs added in v0.3.79

func Test1Cpu4GiPodReqs(queue string, jobId ulid.ULID, priority int32) *schedulerobjects.PodRequirements

func Test1GpuJob added in v0.3.69

func Test1GpuJob(queue string, priorityClassName string) *jobdb.Job

func Test1GpuPodReqs added in v0.3.69

func Test1GpuPodReqs(queue string, jobId ulid.ULID, priority int32) *schedulerobjects.PodRequirements

func Test1Node32CoreExecutor added in v0.3.69

func Test1Node32CoreExecutor(executorId string) *schedulerobjects.Executor

func Test32Cpu256GiJob added in v0.3.79

func Test32Cpu256GiJob(queue string, priorityClassName string) *jobdb.Job

func Test32Cpu256GiPodReqs added in v0.3.79

func Test32Cpu256GiPodReqs(queue string, jobId ulid.ULID, priority int32) *schedulerobjects.PodRequirements

func Test32CpuNode added in v0.3.69

func Test32CpuNode(priorities []int32) *schedulerobjects.Node

func Test8GpuNode added in v0.3.69

func Test8GpuNode(priorities []int32) *schedulerobjects.Node

func TestCluster

func TestCluster() []*schedulerobjects.Node

func TestExecutor added in v0.3.102

func TestExecutor(lastUpdateTime time.Time) *schedulerobjects.Executor

func TestJob added in v0.3.69

func TestJob(queue string, jobId ulid.ULID, priorityClassName string, req *schedulerobjects.PodRequirements) *jobdb.Job

func TestNSubmitMsgGang added in v0.4.44

func TestNSubmitMsgGang(n int) []*armadaevents.SubmitJob

func TestNode added in v0.3.69

func TestNode(priorities []int32, resources map[string]resource.Quantity) *schedulerobjects.Node

func TestPodReqs added in v0.3.69

func TestPodReqs(queue string, jobId ulid.ULID, priority int32, requests v1.ResourceList) *schedulerobjects.PodRequirements

func TestQueuedJobDbJob

func TestQueuedJobDbJob() *jobdb.Job

func TestRunningJobDbJob

func TestRunningJobDbJob(startTime int64) *jobdb.Job

func TestTainted32CpuNode added in v0.3.69

func TestTainted32CpuNode(priorities []int32) *schedulerobjects.Node

func TestUnitReqs

func TestUnitReqs(priority int32) *schedulerobjects.PodRequirements

func UUIDFromInt added in v0.4.12

func UUIDFromInt(i uint64) uuid.UUID

func WithAnnotationsJobs

func WithAnnotationsJobs(annotations map[string]string, jobs []*jobdb.Job) []*jobdb.Job

func WithAnnotationsPodReqs

func WithAnnotationsPodReqs(annotations map[string]string, reqs []*schedulerobjects.PodRequirements) []*schedulerobjects.PodRequirements

func WithGangAnnotationsJobs

func WithGangAnnotationsJobs(jobs []*jobdb.Job) []*jobdb.Job

func WithGlobalSchedulingRateLimiterConfig added in v0.3.92

func WithGlobalSchedulingRateLimiterConfig(maximumSchedulingRate float64, maximumSchedulingBurst int, config schedulerconfiguration.SchedulingConfig) schedulerconfiguration.SchedulingConfig

func WithIndexedNodeLabelsConfig

func WithIndexedNodeLabelsConfig(indexedNodeLabels []string, config schedulerconfiguration.SchedulingConfig) schedulerconfiguration.SchedulingConfig

func WithLabelsNodes

func WithLabelsNodes(labels map[string]string, nodes []*schedulerobjects.Node) []*schedulerobjects.Node

func WithLastUpdateTimeExecutor added in v0.3.70

func WithLastUpdateTimeExecutor(lastUpdateTime time.Time, executor *schedulerobjects.Executor) *schedulerobjects.Executor

func WithMaxQueueLookbackConfig added in v0.3.66

func WithMaxQueueLookbackConfig(maxQueueLookback uint, config schedulerconfiguration.SchedulingConfig) schedulerconfiguration.SchedulingConfig

func WithMaxUnacknowledgedJobsPerExecutorConfig added in v0.3.78

func WithMaxUnacknowledgedJobsPerExecutorConfig(v uint, config schedulerconfiguration.SchedulingConfig) schedulerconfiguration.SchedulingConfig

func WithNodeAffinityJobs added in v0.3.78

func WithNodeAffinityJobs(nodeSelectorTerms []v1.NodeSelectorTerm, jobs []*jobdb.Job) []*jobdb.Job

func WithNodeSelectorJob added in v0.3.78

func WithNodeSelectorJob(selector map[string]string, job *jobdb.Job) *jobdb.Job

func WithNodeSelectorJobs

func WithNodeSelectorJobs(selector map[string]string, jobs []*jobdb.Job) []*jobdb.Job

func WithNodeSelectorPodReqs

func WithNodeSelectorPodReqs(selector map[string]string, reqs []*schedulerobjects.PodRequirements) []*schedulerobjects.PodRequirements

func WithNodeTypeNodes added in v0.4.36

func WithNodeTypeNodes(nodeTypeId uint64, nodes []*schedulerobjects.Node) []*schedulerobjects.Node

func WithNodeUniformityGangAnnotationsJobs added in v0.9.0

func WithNodeUniformityGangAnnotationsJobs(jobs []*jobdb.Job, nodeUniformityLabel string) []*jobdb.Job

func WithNodeUniformityLabelAnnotationJobs added in v0.3.79

func WithNodeUniformityLabelAnnotationJobs(label string, jobs []*jobdb.Job) []*jobdb.Job

func WithPerQueueSchedulingLimiterConfig added in v0.3.92

func WithPerQueueSchedulingLimiterConfig(maximumPerQueueSchedulingRate float64, maximumPerQueueSchedulingBurst int, config schedulerconfiguration.SchedulingConfig) schedulerconfiguration.SchedulingConfig

func WithPriorityJobs added in v0.3.90

func WithPriorityJobs(priority uint32, jobs []*jobdb.Job) []*jobdb.Job

func WithProtectedFractionOfFairShareConfig added in v0.3.78

func WithProtectedFractionOfFairShareConfig(v float64, config schedulerconfiguration.SchedulingConfig) schedulerconfiguration.SchedulingConfig

func WithRequestsJobs added in v0.3.78

func WithRequestsJobs(rl schedulerobjects.ResourceList, jobs []*jobdb.Job) []*jobdb.Job

func WithRoundLimitsPoolConfig added in v0.3.66

Types

type MockPassiveClock added in v0.4.12

type MockPassiveClock struct {
	// contains filtered or unexported fields
}

func NewMockPassiveClock added in v0.4.12

func NewMockPassiveClock() *MockPassiveClock

func (*MockPassiveClock) Now added in v0.4.12

func (p *MockPassiveClock) Now() time.Time

func (*MockPassiveClock) Since added in v0.4.12

type MockUUIDProvider added in v0.4.12

type MockUUIDProvider struct {
	// contains filtered or unexported fields
}

func NewMockUUIDProvider added in v0.4.12

func NewMockUUIDProvider() *MockUUIDProvider

func (*MockUUIDProvider) New added in v0.4.12

func (p *MockUUIDProvider) New() uuid.UUID

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL