diff --git a/clusterloader2/pkg/dependency/dra/dra.go b/clusterloader2/pkg/dependency/dra/dra.go index 0478b41c54..710a35a6b6 100644 --- a/clusterloader2/pkg/dependency/dra/dra.go +++ b/clusterloader2/pkg/dependency/dra/dra.go @@ -70,6 +70,10 @@ func (d *draDependency) Setup(config *dependency.Config) error { "Namespace": namespace, "WorkerNodeCount": getWorkerCount(config), } + + if extendedResourceName, ok := config.Params["ExtendedResourceName"]; ok { + mapping["ExtendedResourceName"] = extendedResourceName + } if err := config.ClusterFramework.ApplyTemplatedManifests( manifestsFS, "manifests/*.yaml", diff --git a/clusterloader2/pkg/dependency/dra/manifests/deviceclass.yaml b/clusterloader2/pkg/dependency/dra/manifests/deviceclass.yaml index cdae2c9aa3..54989f4a01 100644 --- a/clusterloader2/pkg/dependency/dra/manifests/deviceclass.yaml +++ b/clusterloader2/pkg/dependency/dra/manifests/deviceclass.yaml @@ -1,6 +1,6 @@ --- # Source: dra-example-driver/templates/deviceclass.yaml -apiVersion: resource.k8s.io/v1beta1 +apiVersion: resource.k8s.io/v1 kind: DeviceClass metadata: name: gpu.example.com @@ -8,3 +8,6 @@ spec: selectors: - cel: expression: "device.driver == 'gpu.example.com'" + {{- if .ExtendedResourceName}} + extendedResourceName: "{{.ExtendedResourceName}}" + {{- end}} diff --git a/clusterloader2/testing/dra/config.yaml b/clusterloader2/testing/dra/config.yaml index 60c12545b1..1acfbc32b2 100644 --- a/clusterloader2/testing/dra/config.yaml +++ b/clusterloader2/testing/dra/config.yaml @@ -23,8 +23,15 @@ {{$smallJobSize := 1}} {{$smallJobCompletions := 10}} {{$jobRunningTime := DefaultParam .CL2_JOB_RUNNING_TIME "30s"}} +{{$ENABLE_EXTENDED_RESOURCES := DefaultParam .CL2_ENABLE_EXTENDED_RESOURCES false}} +{{$extendedResourceName := ""}} +{{if $ENABLE_EXTENDED_RESOURCES}} +{{$extendedResourceName = DefaultParam .CL2_EXTENDED_RESOURCE_NAME "example.com/gpu"}} +name: dra-extended-resources-steady-state +{{else}} name: dra-steady-state +{{end}} namespace: number: {{$namespaces}} @@ -37,11 +44,15 @@ tuningSets: qpsLoad: qps: {{$STEADY_STATE_QPS}} + dependencies: - name: Install dra-example-driver for test Method: DRATestDriver Params: WorkerNodeCount: {{.Nodes}} + {{if $ENABLE_EXTENDED_RESOURCES}} + ExtendedResourceName: {{$extendedResourceName}} + {{end}} Timeout: 5m steps: @@ -89,6 +100,7 @@ steps: query: histogram_quantile(0.99, sum(rate(dra_grpc_operations_duration_seconds_bucket{method_name=~".*NodePrepareResources"}[%v])) by (le)) - name: p99_dra_grpc_node_unprepare_resources query: histogram_quantile(0.99, sum(rate(dra_grpc_operations_duration_seconds_bucket{method_name=~".*NodeUnprepareResources"}[%v])) by (le)) +{{if not $ENABLE_EXTENDED_RESOURCES}} - name: Create ResourceClaimTemplates in namespaces phases: - namespaceRange: @@ -99,6 +111,7 @@ steps: objectBundle: - basename: single-gpu objectTemplatePath: "resourceclaimtemplate.yaml" +{{end}} - name: Fill cluster to {{$fillPercentage}}% utilization phases: - namespaceRange: @@ -113,6 +126,11 @@ steps: Replicas: {{$longJobSize}} Mode: {{$MODE}} Sleep: {{$longJobRunningTime}} + {{if $ENABLE_EXTENDED_RESOURCES}} + ExtendedResource: {{ true }} + {{else}} + ExtendedResource: {{ false }} + {{end}} - name: Wait for fill pods to be running measurements: - Identifier: WaitForControlledPodsRunning @@ -188,6 +206,11 @@ steps: CompletionReplicas: {{$smallJobCompletions}} Mode: {{$MODE}} Sleep: {{$jobRunningTime}} + {{if $ENABLE_EXTENDED_RESOURCES}} + ExtendedResource: {{ true }} + {{else}} + ExtendedResource: {{ false }} + {{end}} - name: Wait for short-lived jobs to finish measurements: - Identifier: WaitForFinishedJobs diff --git a/clusterloader2/testing/dra/job.yaml b/clusterloader2/testing/dra/job.yaml index 0b22eef9a5..16412d1248 100644 --- a/clusterloader2/testing/dra/job.yaml +++ b/clusterloader2/testing/dra/job.yaml @@ -23,8 +23,15 @@ spec: args: - {{.Sleep}} resources: + {{ if not .ExtendedResource }} claims: - name: gpu + {{ else }} + limits: + example.com/gpu: "1" + {{ end }} + {{ if not .ExtendedResource }} resourceClaims: - name: gpu - resourceClaimTemplateName: single-gpu-0 \ No newline at end of file + resourceClaimTemplateName: single-gpu-0 + {{ end }} \ No newline at end of file diff --git a/clusterloader2/testing/dra/long-running-job.yaml b/clusterloader2/testing/dra/long-running-job.yaml index f6beda2b76..4a8a403297 100644 --- a/clusterloader2/testing/dra/long-running-job.yaml +++ b/clusterloader2/testing/dra/long-running-job.yaml @@ -23,8 +23,15 @@ spec: args: - {{.Sleep}} resources: + {{ if not .ExtendedResource }} claims: - name: gpu + {{ else }} + limits: + example.com/gpu: "1" + {{ end }} + {{ if not .ExtendedResource }} resourceClaims: - name: gpu - resourceClaimTemplateName: single-gpu-0 \ No newline at end of file + resourceClaimTemplateName: single-gpu-0 + {{ end }} \ No newline at end of file