Skip to content

feat(loadbalancer): support slow start aggression and minWeightPercent#8717

Open
aburan28 wants to merge 4 commits intoenvoyproxy:mainfrom
aburan28:adam--slow-start-aggression
Open

feat(loadbalancer): support slow start aggression and minWeightPercent#8717
aburan28 wants to merge 4 commits intoenvoyproxy:mainfrom
aburan28:adam--slow-start-aggression

Conversation

@aburan28
Copy link
Copy Markdown
Contributor

Changes

This PR adds support for two new load balancer configuration options:

  • Slow Start Aggression: Controls the aggression of slow start mode for load balancing
  • Min Weight Percent: Specifies the minimum weight percentage for load balancer endpoints

Files Modified

  • API Types: Updated loadbalancer_types.go with new fields and generated deepcopy methods
  • CRD Schemas: Updated all gateway.envoyproxy.io CRD YAML files with new load balancer options
  • Gateway API: Modified cluster settings handling in clustersettings.go
  • XDS Translator: Enhanced cluster translation logic in cluster.go to support new options
  • IR Schema: Updated XDS IR schema with new load balancer configuration fields
  • Tests: Added validation tests in backendtrafficpolicy_test.go and test data fixtures
  • Documentation: Updated API extension types documentation
  • Release Notes: Added entry to current release notes

Testing

  • Added CEL validation tests for new load balancer options
  • Added test data fixtures for XDS IR load balancer configuration
  • Updated Helm chart test outputs

@aburan28 aburan28 requested a review from a team as a code owner April 10, 2026 22:59
@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 10, 2026

Deploy Preview for cerulean-figolla-1f9435 ready!

Name Link
🔨 Latest commit b0fca20
🔍 Latest deploy log https://app.netlify.com/projects/cerulean-figolla-1f9435/deploys/69e417c3ab58220008c9c475
😎 Deploy Preview https://deploy-preview-8717--cerulean-figolla-1f9435.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@aburan28 aburan28 force-pushed the adam--slow-start-aggression branch from eb20c37 to 3144c52 Compare April 11, 2026 01:06
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 11, 2026

Codecov Report

❌ Patch coverage is 78.94737% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.34%. Comparing base (d80fb5b) to head (b0fca20).

Files with missing lines Patch % Lines
internal/gatewayapi/clustersettings.go 68.00% 4 Missing and 4 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8717      +/-   ##
==========================================
- Coverage   74.35%   74.34%   -0.01%     
==========================================
  Files         245      245              
  Lines       38847    38861      +14     
==========================================
+ Hits        28883    28893      +10     
- Misses       7963     7966       +3     
- Partials     2001     2002       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment thread api/v1alpha1/loadbalancer_types.go Outdated
@aburan28 aburan28 force-pushed the adam--slow-start-aggression branch from 4bcb284 to 198ec9a Compare April 13, 2026 03:09
Expose the `aggression` and `minWeightPercent` parameters of Envoy's
SlowStartConfig via BackendTrafficPolicy. Previously only the slow start
`window` was configurable, which limited users to a linear ramp-up.
`aggression` enables polynomial/exponential ramp-up curves, and
`minWeightPercent` guards against starvation when the scaled weight
would otherwise approach zero.

Addresses the existing TODO in the SlowStart API type.

Signed-off-by: Adam Buran <aburan28@gmail.com>
…ggression

Change SlowStart.Aggression from a decimal string (e.g. "1.5") to a
percentage-based uint32 where 100 represents 1.0x, matching the
convention used by BackendUtilization.ErrorUtilizationPenaltyPercent
in the same struct family.

This removes the regex pattern and CEL XValidation rule from the API
type, drops the strconv.ParseFloat call in the gatewayapi translator
(and its runtime error path), and relies on a simple Minimum=1
validation instead.

Per review feedback on #3144c52fc.

Signed-off-by: Adam Buran <aburan28@gmail.com>
@aburan28 aburan28 force-pushed the adam--slow-start-aggression branch 2 times, most recently from c92b3d1 to 82d8a3b Compare April 17, 2026 04:07
… lint

Signed-off-by: Adam Buran <aburan28@gmail.com>
@aburan28 aburan28 force-pushed the adam--slow-start-aggression branch from 82d8a3b to 4d362b3 Compare April 17, 2026 04:07
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.

2 participants