fix: E2E improvements and pending-aware saturation scaling - #549
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes a label mismatch between vLLM pods and the WVA ServiceMonitor selector by ensuring the llm-d.ai/model label is set to match the deployment name during E2E setup.
- Updates the
deploy_llm_d_infrastructure()function to set the model label via yq before deploying llm-d components - Addresses a default label value issue in the llm-d-modelservice chart that prevented proper ServiceMonitor selection
clubanderson
force-pushed
the
fix/model-label-mismatch
branch
from
January 8, 2026 21:47
ec39c3c to
faf9243
Compare
asm582
approved these changes
Jan 8, 2026
clubanderson
force-pushed
the
fix/model-label-mismatch
branch
from
January 9, 2026 00:23
33283a1 to
f0aa474
Compare
clubanderson
force-pushed
the
fix/model-label-mismatch
branch
2 times, most recently
from
January 9, 2026 00:35
bda0b48 to
c40f9f7
Compare
clubanderson
force-pushed
the
fix/model-label-mismatch
branch
from
January 9, 2026 17:01
b2e2993 to
99538c7
Compare
asm582
approved these changes
Jan 9, 2026
asm582
left a comment
Collaborator
There was a problem hiding this comment.
Please add PR link to codebase and let all E2Es pass.
clubanderson
force-pushed
the
fix/model-label-mismatch
branch
from
January 9, 2026 19:22
4c77192 to
cd68e67
Compare
clubanderson
force-pushed
the
fix/model-label-mismatch
branch
from
January 9, 2026 19:25
cd68e67 to
23ba8b0
Compare
clubanderson
force-pushed
the
fix/model-label-mismatch
branch
from
January 9, 2026 19:30
23ba8b0 to
09b00f2
Compare
This PR adds pending replica awareness to the saturation scaling engine and improves E2E test stability through better load generation tuning. Key changes: - Add PendingReplicas field to VariantReplicaState to track pods that exist but are not yet ready (CurrentReplicas - ReadyReplicas) - Prevent cascade scaling by blocking scale-up when replicas are pending - Add getVariantKey helper for namespace-safe variant identification - Make Prometheus URL and TLS verification configurable via env vars - Add namespace validation to prevent PromQL injection - Tune load generation parameters to achieve ~2-3 replica scale-up target - Add per-model token configuration for sustained saturation testing - Use safe type assertion for Prometheus query results Signed-off-by: Andrew Anderson <andy@clubanderson.com>
clubanderson
force-pushed
the
fix/model-label-mismatch
branch
from
January 9, 2026 19:33
09b00f2 to
bc9948f
Compare
github-actions Bot
added a commit
that referenced
this pull request
Jan 9, 2026
…etheus env config Document three key enhancements from PR #549: 1. Pending Replica Awareness & Cascade Scaling Prevention - Add comprehensive explanation of pending replica tracking - Document how WVA prevents excessive scale-up during pod startup - Include timeline examples showing before/after behavior - Update saturation-analyzer.md and saturation-scaling-config.md 2. Prometheus Configuration via Environment Variables - Document new environment variable configuration method - Provide complete reference table for all Prometheus env vars - Explain configuration priority (env vars → ConfigMap) - Add TLS configuration examples for production and development - Update integrations/prometheus.md and user-guide/configuration.md 3. PromQL Injection Prevention - Document security enhancements for query parameter escaping - Explain namespace validation to prevent injection attacks - Provide examples of attack prevention mechanisms - Emphasize multi-tenant security considerations Additional changes: - Create CHANGELOG-v0.5.0.md with detailed feature descriptions - Update Key Principles section with pending replica awareness - Add Environment Variables section to configuration guide - Enhance Prometheus integration documentation structure These documentation updates ensure developers understand the new features, security improvements, and configuration options introduced in the latest release.
Merged
7 tasks
clubanderson
pushed a commit
that referenced
this pull request
Jan 9, 2026
…etheus env config (#566) Document three key enhancements from PR #549: 1. Pending Replica Awareness & Cascade Scaling Prevention - Add comprehensive explanation of pending replica tracking - Document how WVA prevents excessive scale-up during pod startup - Include timeline examples showing before/after behavior - Update saturation-analyzer.md and saturation-scaling-config.md 2. Prometheus Configuration via Environment Variables - Document new environment variable configuration method - Provide complete reference table for all Prometheus env vars - Explain configuration priority (env vars → ConfigMap) - Add TLS configuration examples for production and development - Update integrations/prometheus.md and user-guide/configuration.md 3. PromQL Injection Prevention - Document security enhancements for query parameter escaping - Explain namespace validation to prevent injection attacks - Provide examples of attack prevention mechanisms - Emphasize multi-tenant security considerations Additional changes: - Create CHANGELOG-v0.5.0.md with detailed feature descriptions - Update Key Principles section with pending replica awareness - Add Environment Variables section to configuration guide - Enhance Prometheus integration documentation structure These documentation updates ensure developers understand the new features, security improvements, and configuration options introduced in the latest release. Co-authored-by: Update Docs Bot <github-actions[bot]@users.noreply.github.com>
ev-shindin
pushed a commit
to ev-shindin/workload-variant-autoscaler
that referenced
this pull request
Jan 14, 2026
…#549) This PR adds pending replica awareness to the saturation scaling engine and improves E2E test stability through better load generation tuning. Key changes: - Add PendingReplicas field to VariantReplicaState to track pods that exist but are not yet ready (CurrentReplicas - ReadyReplicas) - Prevent cascade scaling by blocking scale-up when replicas are pending - Add getVariantKey helper for namespace-safe variant identification - Make Prometheus URL and TLS verification configurable via env vars - Add namespace validation to prevent PromQL injection - Tune load generation parameters to achieve ~2-3 replica scale-up target - Add per-model token configuration for sustained saturation testing - Use safe type assertion for Prometheus query results Signed-off-by: Andrew Anderson <andy@clubanderson.com>
ev-shindin
pushed a commit
to ev-shindin/workload-variant-autoscaler
that referenced
this pull request
Jan 14, 2026
…etheus env config (llm-d#566) Document three key enhancements from PR llm-d#549: 1. Pending Replica Awareness & Cascade Scaling Prevention - Add comprehensive explanation of pending replica tracking - Document how WVA prevents excessive scale-up during pod startup - Include timeline examples showing before/after behavior - Update saturation-analyzer.md and saturation-scaling-config.md 2. Prometheus Configuration via Environment Variables - Document new environment variable configuration method - Provide complete reference table for all Prometheus env vars - Explain configuration priority (env vars → ConfigMap) - Add TLS configuration examples for production and development - Update integrations/prometheus.md and user-guide/configuration.md 3. PromQL Injection Prevention - Document security enhancements for query parameter escaping - Explain namespace validation to prevent injection attacks - Provide examples of attack prevention mechanisms - Emphasize multi-tenant security considerations Additional changes: - Create CHANGELOG-v0.5.0.md with detailed feature descriptions - Update Key Principles section with pending replica awareness - Add Environment Variables section to configuration guide - Enhance Prometheus integration documentation structure These documentation updates ensure developers understand the new features, security improvements, and configuration options introduced in the latest release. Co-authored-by: Update Docs Bot <github-actions[bot]@users.noreply.github.com>
mamy-CS
pushed a commit
to mamy-CS/inferno-autoscaler
that referenced
this pull request
Feb 10, 2026
…#549) This PR adds pending replica awareness to the saturation scaling engine and improves E2E test stability through better load generation tuning. Key changes: - Add PendingReplicas field to VariantReplicaState to track pods that exist but are not yet ready (CurrentReplicas - ReadyReplicas) - Prevent cascade scaling by blocking scale-up when replicas are pending - Add getVariantKey helper for namespace-safe variant identification - Make Prometheus URL and TLS verification configurable via env vars - Add namespace validation to prevent PromQL injection - Tune load generation parameters to achieve ~2-3 replica scale-up target - Add per-model token configuration for sustained saturation testing - Use safe type assertion for Prometheus query results Signed-off-by: Andrew Anderson <andy@clubanderson.com>
mamy-CS
pushed a commit
to mamy-CS/inferno-autoscaler
that referenced
this pull request
Feb 10, 2026
…etheus env config (llm-d#566) Document three key enhancements from PR llm-d#549: 1. Pending Replica Awareness & Cascade Scaling Prevention - Add comprehensive explanation of pending replica tracking - Document how WVA prevents excessive scale-up during pod startup - Include timeline examples showing before/after behavior - Update saturation-analyzer.md and saturation-scaling-config.md 2. Prometheus Configuration via Environment Variables - Document new environment variable configuration method - Provide complete reference table for all Prometheus env vars - Explain configuration priority (env vars → ConfigMap) - Add TLS configuration examples for production and development - Update integrations/prometheus.md and user-guide/configuration.md 3. PromQL Injection Prevention - Document security enhancements for query parameter escaping - Explain namespace validation to prevent injection attacks - Provide examples of attack prevention mechanisms - Emphasize multi-tenant security considerations Additional changes: - Create CHANGELOG-v0.5.0.md with detailed feature descriptions - Update Key Principles section with pending replica awareness - Add Environment Variables section to configuration guide - Enhance Prometheus integration documentation structure These documentation updates ensure developers understand the new features, security improvements, and configuration options introduced in the latest release. Co-authored-by: Update Docs Bot <github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds pending-aware scaling to prevent cascade scale-ups and fixes E2E test stability issues.
Changes
Pending-Aware Saturation Scaling
Namespace Collision Fix
E2E Test Stability
Kind Emulator Improvements
Test Plan
EPP Pod Readiness Analysis
Analysis of the EPP (Endpoint Picker) codebase to validate the pending-aware scaling heuristic.
Key Finding: EPP Only Routes to Ready Pods
1. Pod Readiness Check (
pkg/epp/util/pod/pod.go)2. Pod Reconciler (
pkg/epp/controller/pod_reconciler.go:91-102)3. Pod Resync (
pkg/epp/datastore/datastore.go:330-334)Implications for WVA Pending-Aware Scaling
Validation of WVA Heuristic
Our pending-aware scaling is correct because:
Potential edge case to consider:
Bottom line: EPP's behavior validates our pending-aware heuristic. EPP only routes to ready pods, so waiting for pending pods to become ready before scaling further is correct.