Skip to content

Conversation

@xgugeng
Copy link

@xgugeng xgugeng commented Jan 6, 2026

This pull request enhances cloud_info by adding container registry information. It introduces a new registry parameter to the relevant pipeline templates and steps and updates Azure cloud info collection to gather detailed registry metadata. This change enables future image pull benchmarking for Azure Container Registry (ACR) and other container registries across the market.

For simplicity, the target ACR and test AKS must reside within the same subscription. If not, the exception handling will take care of it and return a null value.

The properties collected for the registry are as follows:

  • anonymousPullEnabled
  • dataEndpointEnabled
  • encryption (CMK or not)
  • location
  • name
  • privateEndpointConnections
  • publicNetworkAccess
  • sku

Pipeline run: ADO link

Copilot AI review requested due to automatic review settings January 6, 2026 03:25
Copy link
Author

Choose a reason for hiding this comment

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

The changes in this file will be reverted before merging.

Choose a reason for hiding this comment

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

Recommend updating the PR to the mergeable state if its readyupdate the PR to draft state and share a link the branch with this file.

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

This PR enhances the cloud_info collection by adding container registry metadata, specifically targeting Azure Container Registry (ACR) for future image pull benchmarking. The changes thread a new registry parameter through the pipeline architecture and update Azure's cloud info collection to gather detailed registry properties.

Key changes include:

  • Adding registry parameter throughout the pipeline template hierarchy
  • Implementing ACR metadata collection in Azure cloud info script
  • Updating Python modules and tests to handle the registry parameter
  • Making registry configuration dynamic in deployment templates

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
jobs/competitive-test.yml Adds registry parameter with empty string default and threads it through execute and publish steps
steps/execute-tests.yml Adds registry parameter (missing default value) and passes it to topology templates
steps/publish-results.yml Adds registry parameter with empty string default and passes it to cloud info collection
steps/topology/cri-resource-consume/execute-clusterloader2.yml Adds registry parameter and passes it to engine execution
steps/topology/cri-resource-consume/collect-clusterloader2.yml Adds registry parameter and passes it to engine collection
steps/engine/clusterloader2/cri/execute.yml Adds registry parameter and includes it in clusterloader2 script arguments
steps/engine/clusterloader2/cri/collect.yml Adds registry parameter and passes it to cloud-specific collection
steps/cloud/azure/collect-cloud-info.yml Implements ACR metadata collection using Azure CLI queries
steps/cloud/gcp/collect-cloud-info.yml Adds registry parameter placeholder (no implementation)
steps/cloud/aws/collect-cloud-info.yml Adds registry parameter placeholder (no implementation)
modules/python/clusterloader2/cri/cri.py Adds registry argument to override_config_clusterloader2 function and writes to config
modules/python/tests/test_cri.py Updates test cases to include registry parameter in function calls
modules/python/clusterloader2/cri/config/deployment_template.yaml Replaces hardcoded registry name with dynamic Registry parameter
modules/python/clusterloader2/cri/config/config.yaml Adds registry parameter with akscritelescope as default
pipelines/system/new-pipeline-test.yml Converts template placeholders to actual test configuration with registry values

imagePullPolicy: IfNotPresent
{{if eq $OSType "windows"}}
image: akscritelescope.azurecr.io/e2e-test-images/resource-consumer:1.13-windows-amd64-ltsc2022
image: {{$Registry}}.azurecr.io/e2e-test-images/resource-consumer:1.13-windows-amd64-ltsc2022
Copy link

Copilot AI Jan 6, 2026

Choose a reason for hiding this comment

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

The registry domain is hardcoded to always use .azurecr.io, which assumes all registries are Azure Container Registries. This reduces flexibility for cross-cloud scenarios mentioned in the PR description. Consider making the full registry URL (including domain) part of the parameter, or add logic to handle different registry types.

Copilot uses AI. Check for mistakes.

Choose a reason for hiding this comment

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

Recommend updating the PR to the mergeable state if its readyupdate the PR to draft state and share a link the branch with this file.

parameters:
- name: region
type: string
- name: registry

Choose a reason for hiding this comment

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

If this an azure resource name then maybe we should consider renaming this to registry_name and maybe add a parameter description giving insights that is a resource name.

Copy link
Author

Choose a reason for hiding this comment

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

Use registry endpoint instead of registry name per Teams discussion. Please help take a look.

@xgugeng xgugeng marked this pull request as draft January 7, 2026 03:18
default: ''
- name: topology
type: string
- name: engine
Copy link
Contributor

@vittoriasalim vittoriasalim Jan 8, 2026

Choose a reason for hiding this comment

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

This change is quite dangerous, as all of our pipelines (both internal and open source) depend on this file (competitive file). We should avoid modifying this file.

In this case, I suggest adding a new topology and including the required variable in that topology. I have created this rough draft as an example #1009

Since not all of our test is using acr registry, it is best to just add them at the test we want, instead of competitive test eg.. you can use toggle like below
image

Copy link
Contributor

@vittoriasalim vittoriasalim Jan 8, 2026

Choose a reason for hiding this comment

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

FYI, there's may not need to add a new parameter for every new variable you introduce. For example, if you see scrape_kubelet, you can access the variable directly without specifying it as a parameter.

e.g i can pass karpenter_nodepool_file without adding new parameter https://github.com/Azure/telescope/pull/1004/changes

Copy link
Contributor

Choose a reason for hiding this comment

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

For testing, I recommend enabling only one job first, as it requires significant time and resources for the test to complete. It will help you debug faster as well

Copy link
Collaborator

Choose a reason for hiding this comment

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

Yes, agreed—use it in the matrix and directly in the steps, less code

anson627 and others added 10 commits January 8, 2026 04:51
#989)

This pull request updates the way the GKE cluster name is generated in
the Terraform configuration to ensure it fits within GCP's naming
constraints and is more predictable.

Resource naming improvement:

* Changed the `name` attribute of the `google_container_cluster.gke`
resource to use `trimright(substr(..., 0, 40), "-")` instead of a
regex-based approach, ensuring the cluster name is always at most 40
characters and does not end with a hyphen.…tructure
This pull request makes a targeted change to the logic for creating the
`azurerm_role_assignment.network_contributor` resource in the AKS CLI
Terraform module. The update ensures that the role assignment is only
created when both a managed identity name and a subnet ID are provided,
preventing potential errors during deployment.

**Resource creation logic improvement:**

* Updated the `count` expression for the
`azurerm_role_assignment.network_contributor` resource in `main.tf` to
require both `managed_identity_name` and `aks_subnet_id` to be non-null
before creating the resource.
This pull request makes a small update to the job configuration by
adding support for specifying a custom job template path. This change
allows for more flexibility in job submissions by letting users override
the default job template.

* Added a `--job_template_path` parameter to the job controller step in
`steps/engine/clusterloader2/job_controller/collect.yml`, defaulting to
`base/job_template.yaml` if not specified.
cl2 benchmark failure due to pod startup latency failure

---------

Co-authored-by: vittoria salim <vslaim@microsoft.com>
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.

6 participants