Skip to content

[API] Update v1beta1 types, add AcceleratorQuota - #795

Closed
slin1237 wants to merge 1 commit into
mainfrom
slin/api-update
Closed

[API] Update v1beta1 types, add AcceleratorQuota#795
slin1237 wants to merge 1 commit into
mainfrom
slin/api-update

Conversation

@slin1237

@slin1237 slin1237 commented Aug 29, 2026

Copy link
Copy Markdown
Collaborator

Bring the v1beta1 API group up to date and regenerate all derived artifacts.

New:

  • AcceleratorQuota: cluster-scoped accelerator capacity budgets as a single-rooted tree (Cohort / ClusterQueue nodes) materialized into Kueue objects, with per-flavor budgets, explicit or proportional multi-cluster distribution, and observed-capacity reporting.
  • InferenceReplica ColumnarV2 instance-status encoding: a compact columnar representation of per-Instance status for large components.

Updated:

  • InferenceService spec: typed rollout groups (canary / blueGreen / rollingUpdate progressions with metric-gated analysis steps), traffic policy (load-balancing algorithm, consistent hash, endpoint override), per-Component autoscaler configuration (HPA / KEDA / External / None) with cross-Component scaling policy, multi-cluster placement (Single / All / Split), serving-runtime pinning (autoSync / revision), model overlays, and gang co-location via topologyKey.
  • InferenceService status: per-Component revision tracking and traffic targets, autoscaler status with a published scale target, canary step state with analysis results, rollout coordination groups, placement status, and migration history.
  • Lifecycle types: instance update strategies (surge-then-drain, recreate, in-place), restart and readiness policies, migration records, per-revision retry blocks, and durable instance operations.
  • Model types: sharded distribution with cache status, diffusion pipeline metadata, additional quantization formats; ServingRuntime inheritance status, model cache providers, and accelerator requirements; WorkloadCluster connection sources.
  • AcceleratorClass status.conditions is now a map list keyed by type, so server-side apply merges conditions correctly.

Regenerated: deepcopy and defaulters, clientset / informers / listers, OpenAPI definitions and swagger, and the full and minimal CRD variants (including the Helm chart copies).

What this PR does

Why we need it

Fixes #

How to test

Checklist

  • Tests added/updated (if applicable)
  • Docs updated (if applicable)
  • make test passes locally

Summary by CodeRabbit

  • New Features

    • Added cluster-scoped AcceleratorQuota resources with quota, budget, capacity, distribution, and status tracking.
    • Added per-node and sharded distribution options for base models.
    • Added model cache status details, including backend and source URI.
    • Added configurable inference revision history limits and compact columnar instance status reporting.
    • Added rollout promotion and stable revision status fields.
    • Added serving runtime scaling policies, cache provider support, and status conditions.
  • Changes

    • Removed legacy autoscaling configuration fields and obsolete rollout status fields.
    • Expanded validation for rollout phases, transitions, and quota resources.

Bring the v1beta1 API group up to date and regenerate all derived artifacts.

New:
- AcceleratorQuota: cluster-scoped accelerator capacity budgets as a single-rooted tree (Cohort / ClusterQueue nodes) materialized into Kueue objects, with per-flavor budgets, explicit or proportional multi-cluster distribution, and observed-capacity reporting.
- InferenceReplica ColumnarV2 instance-status encoding: a compact columnar representation of per-Instance status for large components.

Updated:
- InferenceService spec: typed rollout groups (canary / blueGreen / rollingUpdate progressions with metric-gated analysis steps), traffic policy (load-balancing algorithm, consistent hash, endpoint override), per-Component autoscaler configuration (HPA / KEDA / External / None) with cross-Component scaling policy, multi-cluster placement (Single / All / Split), serving-runtime pinning (autoSync / revision), model overlays, and gang co-location via topologyKey.
- InferenceService status: per-Component revision tracking and traffic targets, autoscaler status with a published scale target, canary step state with analysis results, rollout coordination groups, placement status, and migration history.
- Lifecycle types: instance update strategies (surge-then-drain, recreate, in-place), restart and readiness policies, migration records, per-revision retry blocks, and durable instance operations.
- Model types: sharded distribution with cache status, diffusion pipeline metadata, additional quantization formats; ServingRuntime inheritance status, model cache providers, and accelerator requirements; WorkloadCluster connection sources.
- AcceleratorClass status.conditions is now a map list keyed by type, so server-side apply merges conditions correctly.

Regenerated: deepcopy and defaulters, clientset / informers / listers, OpenAPI definitions and swagger, and the full and minimal CRD variants
(including the Helm chart copies).

Co-authored-by: Fan Yang <fanyang.real@gmail.com>
Co-authored-by: Wei Huang <1425903+Huang-Wei@users.noreply.github.com>
@github-actions github-actions Bot added api API/Types changes in pkg/apis helm Helm chart changes crd CRD definition changes tests Test changes config Configuration changes dependencies Dependency updates labels Aug 29, 2026
@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 5c0af1f5-a38c-4b15-994e-2a5e93d67007

📥 Commits

Reviewing files that changed from the base of the PR and between 2656a65 and 361a481.

📒 Files selected for processing (59)
  • charts/ome-crd/templates/ome.io_acceleratorclasses.yaml
  • charts/ome-crd/templates/ome.io_acceleratorquotas.yaml
  • charts/ome-crd/templates/ome.io_basemodels.yaml
  • charts/ome-crd/templates/ome.io_clusterbasemodels.yaml
  • charts/ome-crd/templates/ome.io_clusterservingruntimes.yaml
  • charts/ome-crd/templates/ome.io_finetunedweights.yaml
  • charts/ome-crd/templates/ome.io_inferencereplicas.yaml
  • charts/ome-crd/templates/ome.io_inferenceservices.yaml
  • charts/ome-crd/templates/ome.io_servingruntimes.yaml
  • config/crd/full/ome.io_acceleratorclasses.yaml
  • config/crd/full/ome.io_acceleratorquotas.yaml
  • config/crd/full/ome.io_basemodels.yaml
  • config/crd/full/ome.io_clusterbasemodels.yaml
  • config/crd/full/ome.io_clusterservingruntimes.yaml
  • config/crd/full/ome.io_finetunedweights.yaml
  • config/crd/full/ome.io_inferencereplicas.yaml
  • config/crd/full/ome.io_inferenceservices.yaml
  • config/crd/full/ome.io_servingruntimes.yaml
  • config/crd/minimal/ome.io_acceleratorquotas.yaml
  • config/crd/minimal/ome.io_clusterservingruntimes.yaml
  • config/crd/minimal/ome.io_servingruntimes.yaml
  • go.mod
  • hack/current_violation_exceptions.list
  • hack/violation_exceptions.list
  • pkg/apis/ome/v1beta1/accelerator_class.go
  • pkg/apis/ome/v1beta1/acceleratorquota_types.go
  • pkg/apis/ome/v1beta1/autoscaler.go
  • pkg/apis/ome/v1beta1/autoscaler_status.go
  • pkg/apis/ome/v1beta1/canary_status_types.go
  • pkg/apis/ome/v1beta1/component.go
  • pkg/apis/ome/v1beta1/coordination_types.go
  • pkg/apis/ome/v1beta1/doc.go
  • pkg/apis/ome/v1beta1/inference_service.go
  • pkg/apis/ome/v1beta1/inference_service_status.go
  • pkg/apis/ome/v1beta1/inferencereplica_status_columns.go
  • pkg/apis/ome/v1beta1/inferencereplica_status_columns_test.go
  • pkg/apis/ome/v1beta1/inferencereplica_types.go
  • pkg/apis/ome/v1beta1/lifecycle_types.go
  • pkg/apis/ome/v1beta1/model.go
  • pkg/apis/ome/v1beta1/placement_types.go
  • pkg/apis/ome/v1beta1/rollout_types.go
  • pkg/apis/ome/v1beta1/servingruntime_types.go
  • pkg/apis/ome/v1beta1/traffic_status_types.go
  • pkg/apis/ome/v1beta1/traffic_types.go
  • pkg/apis/ome/v1beta1/workloadcluster_types.go
  • pkg/apis/ome/v1beta1/zz_generated.deepcopy.go
  • pkg/apis/ome/v1beta1/zz_generated.defaults.go
  • pkg/client/clientset/versioned/typed/ome/v1beta1/acceleratorquota.go
  • pkg/client/clientset/versioned/typed/ome/v1beta1/fake/fake_acceleratorquota.go
  • pkg/client/clientset/versioned/typed/ome/v1beta1/fake/fake_ome_client.go
  • pkg/client/clientset/versioned/typed/ome/v1beta1/generated_expansion.go
  • pkg/client/clientset/versioned/typed/ome/v1beta1/ome_client.go
  • pkg/client/informers/externalversions/generic.go
  • pkg/client/informers/externalversions/ome/v1beta1/acceleratorquota.go
  • pkg/client/informers/externalversions/ome/v1beta1/interface.go
  • pkg/client/listers/ome/v1beta1/acceleratorquota.go
  • pkg/client/listers/ome/v1beta1/expansion_generated.go
  • pkg/openapi/openapi_generated.go
  • pkg/openapi/swagger.json

📝 Walkthrough

Walkthrough

This change adds the AcceleratorQuota API and Kubernetes clients, introduces ColumnarV2 inference status, updates model, runtime, rollout, and autoscaling contracts, and synchronizes Helm and checked-in CRD schemas with the new API definitions.

Changes

OME API and CRD updates

Layer / File(s) Summary
AcceleratorQuota API and Kubernetes integration
pkg/apis/ome/v1beta1/acceleratorquota_types.go, pkg/client/.../acceleratorquota.go, config/crd/.../acceleratorquotas.yaml, charts/ome-crd/templates/ome.io_acceleratorquotas.yaml
Adds cluster-scoped AcceleratorQuota types, validation, status fields, scheme registration, typed clients, fake clients, informers, listers, and CRDs.
Columnar inference status representation
pkg/apis/ome/v1beta1/inferencereplica_*.go, config/crd/full/ome.io_inferencereplicas.yaml, charts/ome-crd/templates/ome.io_inferencereplicas.yaml
Adds ColumnarV2 status structures, encoding validation, revisionHistoryLimit, deep-copy support, and JSON/deep-copy tests.
Model, runtime, rollout, and inference contracts
pkg/apis/ome/v1beta1/*.go
Adds distribution, cache, accelerator, rollout, runtime, and status fields. Removes legacy KEDA and worker-pod fields. Updates validation and API documentation.
CRD and generated-code synchronization
config/crd/*, charts/ome-crd/templates/*, pkg/apis/ome/v1beta1/zz_generated.*, go.mod
Synchronizes CRD schemas and generated deep-copy/defaulting code. Adds explicit status subresources and a Prometheus module replacement.

Estimated code review effort: 5 (Critical) | ~120 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Controller
  participant AcceleratorQuotaClient
  participant AcceleratorQuotaInformer
  Controller->>AcceleratorQuotaClient: Create or update AcceleratorQuota
  AcceleratorQuotaClient->>AcceleratorQuotaInformer: List and watch acceleratorquotas
  AcceleratorQuotaInformer-->>Controller: Deliver AcceleratorQuota objects
Loading

Suggested reviewers: xinyuezhang369, beiguo218

✨ Finishing Touches 💡 1
⚔️ Resolve merge conflicts 💡
  • Resolve merge conflict in branch slin/api-update
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch slin/api-update

Comment @coderabbitai help to get the list of available commands.

@slin1237 slin1237 closed this Aug 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api API/Types changes in pkg/apis config Configuration changes crd CRD definition changes dependencies Dependency updates helm Helm chart changes tests Test changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant