Skip to content

fix: sync deprecated flow control env var into feature gate map - #2076

Merged
ahg-g merged 3 commits into
llm-d:mainfrom
elinacse:fix/2065-experimental-flow-control-env-var
Jul 29, 2026
Merged

fix: sync deprecated flow control env var into feature gate map#2076
ahg-g merged 3 commits into
llm-d:mainfrom
elinacse:fix/2065-experimental-flow-control-env-var

Conversation

@elinacse

@elinacse elinacse commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

initAdmissionControl reads r.featureGates, which is populated once during parseConfigurationPhaseOne and never revisited. The deprecated ENABLE_EXPERIMENTAL_FLOW_CONTROL_LAYER env var was only applied later, in parseConfigurationPhaseTwo, and only patched rawConfig.FeatureGates — never r.featureGates. So setting the env var logged the deprecation warning but left the EPP silently running the legacy admission controller instead of Flow Control.

As flagged in review, ENABLE_EXPERIMENTAL_FLOW_CONTROL_LAYER was deprecated when GIE 1.5.0 introduced featureGates: [flowControl], and that replacement has been in since router 0.8.0. Rather than fix the env var to work again, this PR removes it entirely ahead of the 0.10.0 release. Use featureGates: [flowControl] in the EndpointPickerConfig instead.

Fixes #2065

@elinacse
elinacse requested a review from a team as a code owner July 19, 2026 06:04
@elinacse
elinacse requested review from ahg-g and elevran July 19, 2026 06:04
@github-actions

Copy link
Copy Markdown
Contributor

🚨 Unsigned commits detected! Please sign your commits.

For instructions on how to set up GPG/SSH signing and verify your commits, please see GitHub Documentation.

@github-actions github-actions Bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Jul 19, 2026
@elinacse
elinacse force-pushed the fix/2065-experimental-flow-control-env-var branch from a662816 to 25d648d Compare July 19, 2026 06:13
@shmuelk

shmuelk commented Jul 19, 2026

Copy link
Copy Markdown
Contributor

The environment variable ENABLE_EXPERIMENTAL_FLOW_CONTROL_LAYER was deprecated in GIE 1.5.0 in favor of the mentioned featureGate.

GIE 1.50. was merged into the llm-d-router in release 0.8.0. I would think that with the upcoming 0.10.0 release the deprecated environment variable ENABLE_EXPERIMENTAL_FLOW_CONTROL_LAYER can be simply deleted.

@elinacse

Copy link
Copy Markdown
Contributor Author

@shmuelk removed ENABLE_EXPERIMENTAL_FLOW_CONTROL_LAYER. please review it .

@elinacse
elinacse force-pushed the fix/2065-experimental-flow-control-env-var branch from 663fe1b to ae32bca Compare July 24, 2026 14:23
ENABLE_EXPERIMENTAL_FLOW_CONTROL_LAYER was deprecated when GIE 1.5.0
introduced the featureGates: [flowControl] config stanza, which router
0.8.0 picked up. It was also broken: initAdmissionControl reads
r.featureGates, populated once during parseConfigurationPhaseOne, while
the env var was only ever applied afterward in parseConfigurationPhaseTwo
against rawConfig.FeatureGates. Setting it logged the deprecation warning
but silently left the EPP on the legacy admission controller.

Ahead of the 0.10.0 release, remove the env var entirely instead of
fixing it, since the config-based replacement has been available since
0.8.0. Use featureGates: [flowControl] in the EndpointPickerConfig.

Fixes llm-d#2065

Signed-off-by: elinacse <elina.gcek94@gmail.com>
@elinacse
elinacse force-pushed the fix/2065-experimental-flow-control-env-var branch from ae32bca to 85291f9 Compare July 24, 2026 14:33

@LukeAVanDrie LukeAVanDrie left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @elinacse!

Heads up: this conflicts with #2180 (flip the flowControl gate on by default). #2180 rewrites the deprecation log message inside applyDeprecatedEnvFeatureGate, which this PR deletes, so git merge-tree reports a content conflict in cmd/epp/runner/runner.go. feature_gate_test.go merges cleanly.

No coordination needed beyond that. Whichever lands first, the other rebases, and if this one goes first I will just drop my change to that function since it goes away with the variable.

@elinacse

Copy link
Copy Markdown
Contributor Author

@LukeAVanDrie Thanks for the review . can you help in merging this PR?

@LukeAVanDrie

Copy link
Copy Markdown
Contributor

@LukeAVanDrie Thanks for the review . can you help in merging this PR?

I cannot, you will need an approval from someone in llm-d/router-maintainers. I only have perms for review pkg/epp/flowcontrol/... and its plugin impls and fraemwork types under https://github.com/llm-d/llm-d-router/tree/main/pkg/epp/framework/plugins/flowcontrol/... and https://github.com/llm-d/llm-d-router/tree/main/pkg/epp/framework/interface/flowcontrol/...

@ahg-g
ahg-g enabled auto-merge (squash) July 29, 2026 18:28
@ahg-g
ahg-g merged commit bab1dc7 into llm-d:main Jul 29, 2026
37 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ENABLE_EXPERIMENTAL_FLOW_CONTROL_LAYER doesn't actually enable Flow Control

4 participants