[Cosmos] Remove ephemeral-tenant provisioning from fixed-account live-test lanes
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 45/100
Hướng nghiên cứu
Bắt đầu với PR #48459 và shared live-test stage, sau đó lần theo build-test-resource-config.yml, deploy-test-resources.yml, remove-test-resources.yml và test-resources.bicep. Tách các đường dẫn fixed-account và AAD để fixed jobs sử dụng resolver và shared JSON secret mà không cần ephemeral provisioning, trong khi AAD vẫn giữ tenant-scoped role assignment. Hoàn tất bao gồm scoped stale-database cleanup, ownership documentation và việc xác thực các lần chạy chồng lấp cũng như deployment credentials không khả dụng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Is your feature request related to a problem? Please describe.
PR #48459 moves the Python Cosmos key-auth live tests onto fixed, team-owned accounts and proves that the selected accounts work across the live matrix. However, the shared Python live-test stage still deploys and removes a temporary Cosmos account for every matrix leg before the fixed credentials are reapplied.
As a result, the migrated key-auth tests still authenticate through the ephemeral live-test tenant during ARM deployment. A tenant rotation or broken service connection can therefore fail the job before pytest reaches the fixed account. This is the final gap between the current Python implementation and Java's no-provisioning fixed-account model.
Describe the solution you'd like
Separate the live matrix by resource-lifecycle requirements and make the fixed-account lane independent of ephemeral-tenant provisioning.
- Split the 12 fixed key-auth jobs and the already-fixed GSI job from the 7 AAD jobs that require a tenant-scoped Cosmos data-plane role assignment.
- Run the fixed-account jobs through a Cosmos-owned stage or job that resolves credentials from the shared versioned JSON secret but does not invoke
build-test-resource-config.yml,deploy-test-resources.yml, orremove-test-resources.yml. - Ensure the fixed-account jobs do not require the
azure-sdk-tests-cosmosservice connection or any authentication against the ephemeral tenant. - Keep the AAD jobs on the existing provisioned-resource path so
test-resources.bicepcan create their tenant-specificsqlRoleAssignment. - Move values currently supplied only as Bicep outputs into the fixed-account matrix. In particular, set
AZURE_COSMOS_ENABLE_CIRCUIT_BREAKER=Trueon the applicable circuit-breaker jobs. - Remove the transitional post-deployment credential reapplication once fixed-account jobs no longer deploy resources; the resolver pre-step should become their sole source of
ACCOUNT_HOSTandACCOUNT_KEY. - Add best-effort cleanup for databases left by cancelled or aborted runs. Cleanup must be limited to stale
PythonSDKTest-*databases owned by Python and must run across each fixed account without affecting Java or concurrent Python runs. - Document ownership for Java's shared account provisioning/reconciliation script and the shared JSON secret update procedure, including a smoke test after account or key rotation.
- Validate overlapping fixed-account runs and prove they remain runnable when ephemeral-tenant deployment credentials are unavailable.
Describe alternatives you've considered
- Keep the current transitional deployment followed by credential override. This is already proven by PR #48459, but it does not remove the tenant dependency.
- Move AAD tests onto the fixed accounts and refresh their role assignments after every tenant rotation. This preserves one matrix but requires cross-subscription permissions and additional identity lifecycle work.
- Add a per-leg deployment condition to shared
engtemplates. This is generic, but changes monorepo-wide infrastructure for a Cosmos-specific requirement. - Register a separate AAD pipeline while keeping the fixed-account pipeline Cosmos-owned. This is fully service-local but adds another Azure DevOps pipeline definition to maintain.
Additional context
PR #48459 already supplies the prerequisites for this work:
- A cross-platform PowerShell resolver compatible with Java's shared JSON-secret schema.
- Stable-account selectors for all 12 key-auth matrix jobs; GSI already uses dedicated fixed credentials.
- Run-scoped
PythonSDKTest-*database naming, bounded control-plane retries, scoped normal cleanup, and test isolation needed for concurrent use. - Early resolver validation through
PreStepsand a Cosmos-local post-deployment hook used during the transitional rollout. - Successful live verification of the fixed-account query, split, multi-region, and circuit-breaker coverage.
Related tracking issue: #48236. Java reference: Azure/azure-sdk-for-java#49735.
- Ngôn ngữ chính
- Python
- Star
- 5.6k
- Fork
- 3.4k
- Merge trung bình
- 2 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 206
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của Azure/azure-sdk-for-python
-
[Teams Chatbot]: Clarify Python dev-feed publication from a branch versus PyPI releaseCó thể đã có người làm @jianingwang123 đã nhận 2 ngày trước. Đang mởcustomer-reported question
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Azure/azure-sdk-for-python#49548 · 1 bình luận · 2 reaction · 2 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Client customer-reported Hosted Agents needs-team-attention question Service Attention
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Azure/azure-sdk-for-python#49477 · 4 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
azure-ai-evaluation: a content-harm score of 0 (no harm) is parsed as NaN in _parse_content_harm_response (numeric branch uses 0 < x instead of 0 <= x)Có thể đã có người làm @pujitha24 đã nhận 18 ngày trước. Đang mởEvaluation Service Attention
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
Azure/azure-sdk-for-python#49190 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Update CODEOWNERSĐang mở
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
Azure/azure-sdk-for-python#49183 · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
azure-ai-evaluation: PromptyEvaluatorBase falls back to the first digit anywhere in the judge's reply, and the threshold turns a stray digit into a wrong pass/fail (15 evaluators)Có thể đã có người làm @wasim-builds đã nhận 13 ngày trước. Đang mởEvaluation Service Attention
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Azure/azure-sdk-for-python#49153 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Azure/azure-sdk-for-python
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Graphify-Labs/graphify#4524 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
topoteretes/cognee#5982 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Patches of derivations with `__structuredAttrs` are ignoredCó thể đã có người làm @KiaraGrouwstra đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 81/100
nix-community/vulnix#184 ·
-
New InternshipĐang mởnew_internship
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 65/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
aws-samples/sample-per-model-bedrock#295 ·
Maintainer thường phản hồi trong vòng 1 ngày