[Cosmos] Remove ephemeral-tenant provisioning from fixed-account live-test lanes
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 45/100
Direzione di ricerca
Inizia con PR #48459 e con la shared live-test stage, quindi segui build-test-resource-config.yml, deploy-test-resources.yml, remove-test-resources.yml e test-resources.bicep. Separa i percorsi fixed-account e AAD, in modo che i fixed jobs usino il resolver e il shared JSON secret senza ephemeral provisioning, mentre AAD mantenga la tenant-scoped role assignment. Il completamento include scoped stale-database cleanup, ownership documentation e la convalida di esecuzioni sovrapposte e di deployment credentials non disponibili.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- Python
- Stelle
- 5.6k
- Fork
- 3.4k
- Merge medio
- 2g 4h
- PR unite (30g)
- 214
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Azure/azure-sdk-for-python
-
Client customer-reported Hosted Agents needs-team-attention question Service Attention
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
Azure/azure-sdk-for-python#49477 · 3 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
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)Forse già presa @pujitha24 l’ha presa 14 giorni fa. ApertaEvaluation Service Attention
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Azure/azure-sdk-for-python#49190 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Update CODEOWNERSAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
Azure/azure-sdk-for-python#49183 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
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)Forse già presa @wasim-builds l’ha presa 8 giorni fa. ApertaEvaluation Service Attention
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Azure/azure-sdk-for-python#49153 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
azure-search-documents ContentUnderstandingSkill is missing model_name and model_deploymentForse già presa @wasim-builds l’ha presa 8 giorni fa. ApertaSearch Service Attention
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
Azure/azure-sdk-for-python#48555 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Azure/azure-sdk-for-python
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
huggingface/peft#3955 ·
I maintainer di solito rispondono entro 1 giorno
-
author-page correction
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
acl-org/acl-anthology#10313 ·
I maintainer di solito rispondono entro 1 giorno
-
anime duplicate exception request-theme
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
LizardByte/ThemerrDB#8926 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
huggingface/transformers#49556 ·
I maintainer di solito rispondono entro 1 giorno
-
area/security bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
mozilla-ai/otari#2245 ·
I maintainer di solito rispondono entro 1 giorno