Skip to content

Add custom image support#1054

Merged
jasminetMSFT merged 13 commits intomainfrom
jasminet/custom-image-support
Feb 17, 2026
Merged

Add custom image support#1054
jasminetMSFT merged 13 commits intomainfrom
jasminet/custom-image-support

Conversation

@jasminetMSFT
Copy link
Contributor

@jasminetMSFT jasminetMSFT commented Feb 12, 2026

Summary

Enables the use of custom container images in image pull benchmarks, allowing more realistic testing with large, multi-layer images that match real customer workloads.

Changes

  • Custom image support in deployment templates: Added TestImage parameter to deployment_template.yaml to allow overriding the default test image. TestImage is intentionally scoped to Linux/memory/AKS, this is the only path used by image-pull scenarios where we need custom image sizes for throughput testing. CPU workloads and Windows use resource-consumer which has specific stress commands.
  • CRI module updates: Extended cri.py and execute.yml to pass through the test_image parameter from pipeline configuration
  • Updated image-pull-n10 pipeline:
    • Configured to use benchmark/customer-replica:v1 (10GB, 79-layer image matching customer manifest)
    • Increased timeouts: operation_timeout: 30m, pod_startup_latency_threshold: 600s
    • Reduced max_pods from 30 to 26 to prevent pod scheduling failures due to node resource constraints

Testing

Validated with 10-node cluster pulling 10GB custom image:

@jasminetMSFT jasminetMSFT marked this pull request as ready for review February 12, 2026 00:48
Copilot AI review requested due to automatic review settings February 12, 2026 00:48
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support for overriding the container image used by the ClusterLoader2 CRI/image-pull benchmark so pipelines can exercise large, multi-layer “customer-like” images.

Changes:

  • Plumbs a new test_image/CL2_TEST_IMAGE parameter from the pipeline step into the CRI override generator (cri.py) and CL2 config.
  • Updates the deployment template to use a configurable image (AKS/Linux/memory path) and adds a topology spread constraint to improve node distribution.
  • Refines the containerd throughput “AvgPerNode” PromQL query to exclude nodes with no pulls.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
steps/engine/clusterloader2/cri/execute.yml Passes --test_image into the CRI override step via env/config.
modules/python/clusterloader2/cri/cri.py Adds --test_image CLI arg and writes CL2_TEST_IMAGE into overrides.
modules/python/clusterloader2/cri/config/deployment_template.yaml Introduces TestImage template param, uses it for the AKS/Linux/memory image, and adds topology spread constraints.
modules/python/clusterloader2/cri/config/containerd-measurements.yaml Filters “AvgPerNode” to active nodes in PromQL.
modules/python/clusterloader2/cri/config/config.yaml Wires CL2_TEST_IMAGE into the deployment template fill map.
Comments suppressed due to low confidence (1)

modules/python/clusterloader2/cri/config/deployment_template.yaml:59

  • When TestImage is not the default, this template no longer renders an explicit command/args for the memory container (the stress block is gated by if eq $TestImage ...). That changes the benchmark from a known long-running workload to whatever the image entrypoint does, which can cause early exits or add non-pull-related variance. Consider keeping a stable long-running command for all images, or making the command configurable alongside TestImage.
          {{if eq $TestImage "e2e-test-images/resource-consumer:1.13"}}
        command:
          - stress
        args:
          - --vm

jikuma
jikuma previously approved these changes Feb 12, 2026
@jasminetMSFT jasminetMSFT changed the title Jasminet/custom image support Add custom image support Feb 15, 2026
liyu-ma
liyu-ma previously approved these changes Feb 16, 2026
Copy link
Contributor

@liyu-ma liyu-ma left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@jasminetMSFT jasminetMSFT dismissed stale reviews from liyu-ma and jikuma via 5dd92ce February 16, 2026 23:15
vittoriasalim
vittoriasalim previously approved these changes Feb 17, 2026
@jasminetMSFT jasminetMSFT merged commit 966d636 into main Feb 17, 2026
3 checks passed
@jasminetMSFT jasminetMSFT deleted the jasminet/custom-image-support branch February 17, 2026 05:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants