[Cosmos] Remove ephemeral-tenant provisioning from fixed-account live-test lanes
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 45/100
調査の方向性
PR #48459 と共有の live-test stage から始め、次に build-test-resource-config.yml、deploy-test-resources.yml、remove-test-resources.yml、test-resources.bicep を追跡します。fixed-account パスと AAD パスを分離し、fixed jobs では ephemeral provisioning を行わずに resolver と shared JSON secret を使用し、AAD では tenant-scoped role assignment を維持します。完了条件には、scoped stale-database cleanup、ownership documentation、重複する実行と利用できない deployment credentials の検証が含まれます。
索引モデルが issue の本文から書いたものです。
説明
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.
- 主要言語
- Python
- スター
- 5.6k
- フォーク
- 3.4k
- 平均マージ
- 2日 4時間
- マージ済み PR(30日)
- 200
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Azure/azure-sdk-for-python のほかの issue
-
[Teams Chatbot]: Clarify Python dev-feed publication from a branch versus PyPI release対応中かも @jianingwang123 が 4 日前に担当しました。 オープンcustomer-reported question
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
Azure/azure-sdk-for-python#49548 · コメント 1 件 · リアクション 2 件 · 担当者 2 名 ·
メンテナーはふだん 1 日以内に返信
-
Client customer-reported Hosted Agents needs-team-attention question Service Attention
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Azure/azure-sdk-for-python#49477 · コメント 4 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
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)対応中かも @pujitha24 が 20 日前に担当しました。 オープンEvaluation Service Attention
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
Azure/azure-sdk-for-python#49190 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Update CODEOWNERSオープン
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
Azure/azure-sdk-for-python#49183 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
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)対応中かも @wasim-builds が 15 日前に担当しました。 オープンEvaluation Service Attention
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
Azure/azure-sdk-for-python#49153 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
Azure/azure-sdk-for-python の issue をすべて見る
似ている issue
-
難易度 1/5 1〜3時間 初心者へのやさしさ 66/100
AlexsLemonade/scpca-docs#518 ·
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 95/100
rocketride-org/rocketride-server#2705 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
Metabuilder-Labs/tokenjam#786 ·
メンテナーはふだん 1 日以内に返信
-
prototype(verifier_token): map disallowed warning to contraindicated before composite precedence check対応中かも @drk-ram が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
agentrust-io/trace-spec#582 ·
メンテナーはふだん 1 日以内に返信
-
area:cli priority:low refactor size:small
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
RonaldHensbergen/composable-data-stack#906 ·
メンテナーはふだん 1 日以内に返信