Skip to content

[CRCR] Umbrella: Multi-issuer OIDC & Buildkite onboarding #8326

Description

@subinz1

Summary

Umbrella tracking issue for multi-issuer OIDC support in the CRCR callback relay and Buildkite CI provider onboarding.

The CRCR callback relay originally only supported GitHub Actions OIDC tokens. This work extends jwt_helper to support multiple issuers, enabling external CI providers (Buildkite, GitLab CI, CircleCI) to authenticate and report results to the PyTorch HUD.

RFC: pytorch/rfcs#98


Completed

Multi-issuer OIDC support

  • verify_oidc_token dispatches on iss claim to issuer-specific JWKS and repo-claim extraction — #8453
  • Buildkite identity mapped via immutable UUIDs (organization_id, pipeline_id), not slugs — #8453

Externalized provider config

  • config/ci_providers.yml — runtime config for Buildkite org/pipeline UUID → GitHub repo mapping — #8468
  • required_claims support (e.g., build_branch: [main]) to constrain which builds can authenticate — #8468

CI-neutral callback reporter

  • Standalone report_callback.py and Buildkite wrapper (report_callback_buildkite.sh) — #8303

Nightly/periodic self-report model

  • Callback Lambda nightly code path: skip state machine, validate OIDC + SHA, single upsert — #8302
  • SHA validator with TTL cache — #8304
  • DynamoDB write-once guard to prevent replay of finalized records — #8694

HUD integration

  • Nightly dashboard view on hud.pytorch.org/crcr#8538
  • Nightly summary stats computed from matrix data — #8696
  • Run-level filtering for nightly dashboard query — #8695
  • Hide crcr-test from nightly summary page — #8697

Remaining / In Progress

Buildkite production onboarding

  • vLLM (vllm-project/vllm) Buildkite pipeline: end-to-end validation with real OIDC tokens
  • Production ci_providers.yml entry for vLLM pipeline UUIDs

Future CI providers

  • GitLab CI issuer support (claims["project_path"])
  • CircleCI issuer support (org-specific iss URL)

Hardening

  • Lambda field validation: require delivery_id, event_type, job_name in callback payloads
  • Automated staleness alerting: flag backends with >36h since last nightly callback

CI Provider Reference

CI Engine Issuer (iss) Status
GitHub Actions https://token.actions.githubusercontent.com Shipped
Buildkite https://agent.buildkite.com Shipped (awaiting production onboarding)
GitLab CI https://gitlab.com Future
CircleCI https://oidc.circleci.com/org/<ID> Future

Context

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions