Skip to content

refactor(operator): keep AISimulate execution operator-owned - #4

Open
sttts wants to merge 8 commits into
devivasudevan:dgdr-admission-v2from
sttts:sttts-dgdr-operator-owned-aisimulate
Open

sttts wants to merge 8 commits into
devivasudevan:dgdr-admission-v2from
sttts:sttts-dgdr-operator-owned-aisimulate

Conversation

@sttts

@sttts sttts commented Oct 26, 2026 •

Copy link
Copy Markdown

Summary

Follow-up to ai-dynamo#16661.

This change makes AISimulate execution operator-owned and aligns the typed v1beta2 workload with the public AISimulate recommendation input:

  • removes spec.aisimulate.image and versionOverride, their admission defaults, Helm/CLI flags, and image-to-AISimulate version mapping;
  • renames the caller-provided merge patch from parameters to inputOverrides;
  • adds status.aisimulate.input to DynamoGraphDeploymentRun for the exact effective input used by execution;
  • shares lowering between admission and reconciliation from internal/aisimulate;
  • models synthetic load as a complete field-discriminated union and removes the separate stop policy from the typed API;
  • regenerates deepcopy code, CRDs, and Kubernetes API documentation.

The operator and its configured Planner image form one tested release bundle. A DGDR cannot select a skewed Planner/AISimulate image or version. The Job reconciler consumes the Planner image directly from operator configuration instead of persisting it in Request or Run objects.

Refs DGH-1426.

API

The model-only form remains small:

apiVersion: nvidia.com/v1beta2
kind: DynamoGraphDeploymentRequest
metadata:
  name: llama-search
spec:
  model:
    name: meta-llama/Llama-3.1-8B-Instruct

Admission materializes its workload as:

workload:
  static:
    inputTokens: 1024
    outputTokens: 128
    load:
      concurrency: 10

load has no redundant type discriminator. Exactly one variant is required whenever the object exists:

load:
  requestsPerSecond: 20
load:
  concurrency: 10
load:
  kvCapacityFraction:
    value: 0.5
load:
  kvCapacityFraction:
    range:
      min: 0.1
      max: 1.0

An explicitly empty static object is the defaulting opt-out:

workload:
  static: {}

Every other nonempty static object is completed by admission. For example:

workload:
  static:
    inputTokens: 2048

becomes:

workload:
  static:
    inputTokens: 2048
    outputTokens: 128
    load:
      concurrency: 10

The typed API deliberately exposes no stop policy. Lowering supplies traffic.stop.requests: 1000; advanced callers replace it through the public AISimulate input override:

spec:
  aisimulate:
    inputOverrides:
      traffic:
        stop:
          requests: null
          requests_per_load_unit: 10

inputOverrides is an RFC 7386 JSON Merge Patch. It uses upstream AISimulate field names, is applied last, and wins over typed fields and derived defaults:

public static underlay
  + typed DGDR underlay
  + derived defaults
  + spec.aisimulate.inputOverrides
  = effective AISimulate recommendation input

A native KV-capacity range derives optimizer.max_trials: 320; native SLA bounds derive optimization.strict_sla: true. Overrides may replace or delete either value, and defaults are not recalculated after the override.

The immutable Run preserves the accepted typed search input. Its status exposes the exact effective document passed to AISimulate:

status:
  aisimulate:
    input:
      traffic:
        source:
          type: synthetic
          input_tokens: 1024
          output_tokens: 128
        load:
          type: concurrency
          concurrency: 10
        stop:
          requests: 1000

status.aisimulate.input is controller-owned output, not another override surface.

Validation and compatibility

Admission validates the typed Kubernetes API structurally, then verifies that the accepted typed fields can be lowered to the public recommendation input. inputOverrides remains opaque. Validating the final effective input against JSON Schema generated from the bundled AISimulate Pydantic model is a separate ratcheting-validation follow-up.

The v1beta2 API remains behind its pre-release feature gate, so the removed and renamed fields do not require persisted-object migration.

Validation

  • go test ./api/... ./internal/aisimulate ./internal/webhook/defaulting ./internal/webhook/validation -count=1
  • make manifests generate-api-docs
  • repository pre-commit hooks
  • git diff --check

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added 3 commits October 26, 2026 15:52
Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 26, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 26, 2026
…: pr-4]

Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 26, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 26, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
(cherry picked from commit 9ed993fc070f33cb91e84364bd3e97b75869db4b)
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 27, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 27, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 27, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 27, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added 2 commits October 27, 2026 17:09
Signed-off-by: Dr. Stefan Schimanski <stefan.schimanski@gmail.com>
Signed-off-by: Dr. Stefan Schimanski <stefan.schimanski@gmail.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 27, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 27, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 27, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Squashed from devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>
sttts added a commit to ai-dynamo/dynamo that referenced this pull request Oct 28, 2026
Upstreamed through devivasudevan#4.

Signed-off-by: Dr. Stefan Schimanski <sschimanski@nvidia.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant