-
Notifications
You must be signed in to change notification settings - Fork 18
feat: add registry details to cloud_info #1001
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this 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 |
modules/python/clusterloader2/cri/config/deployment_template.yaml
Outdated
Show resolved
Hide resolved
| 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 |
Copilot
AI
Jan 6, 2026
There was a problem hiding this comment.
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.
modules/python/clusterloader2/cri/config/deployment_template.yaml
Outdated
Show resolved
Hide resolved
modules/python/clusterloader2/cri/config/deployment_template.yaml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
| default: '' | ||
| - name: topology | ||
| type: string | ||
| - name: engine |
There was a problem hiding this comment.
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

There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
#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>
This pull request enhances
cloud_infoby adding container registry information. It introduces a newregistryparameter 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:
Pipeline run: ADO link