Skip to content

Commit 1086fe8

Browse files
committed
ci: re-trigger e2e
1 parent c71b5fd commit 1086fe8

2 files changed

Lines changed: 9 additions & 7 deletions

File tree

pkg/controller/externalmodel/reconciler.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import (
3838

3939
inferencev1alpha1 "github.com/opendatahub-io/ai-gateway-payload-processing/api/inference/v1alpha1"
4040
ctrlcommon "github.com/opendatahub-io/ai-gateway-payload-processing/pkg/controller/common"
41+
providerresolver "github.com/opendatahub-io/ai-gateway-payload-processing/pkg/plugins/model-provider-resolver"
4142
)
4243

4344
const (
@@ -269,8 +270,8 @@ func commonLabels(modelName string) map[string]string {
269270
}
270271
}
271272

272-
// selectedProviderHeader is the header the ext_proc sets to drive routing.
273-
const selectedProviderHeader = "x-ipp-selected-provider"
273+
// selectedProviderHeader is the canonical header name from the plugin package.
274+
const selectedProviderHeader = gatewayapiv1.HTTPHeaderName(providerresolver.SelectedProviderHeader)
274275

275276
func buildHTTPRoute(refs []resolvedRef, modelName, namespace string, port int32, gatewayName, gatewayNamespace, routeTimeout string, labels map[string]string) *gatewayapiv1.HTTPRoute {
276277
gwNamespace := gatewayapiv1.Namespace(gatewayNamespace)

pkg/plugins/model-provider-resolver/plugin.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,9 @@ func (p *ModelProviderResolverPlugin) ProcessRequest(ctx context.Context, cycleS
176176
}
177177

178178
ref := selectByWeight(modelInfo.refs)
179+
if ref == nil {
180+
return errcommon.Error{Code: errcommon.BadRequest, Msg: "all providers for model " + modelName + " are disabled (weight 0)"}
181+
}
179182

180183
// Drive Envoy routing to the selected provider's backend.
181184
request.SetHeader(SelectedProviderHeader, ref.providerName)
@@ -215,10 +218,8 @@ func detectInputAPIFormat(path string) apiformat.APIFormat {
215218
}
216219

217220
// selectByWeight picks a provider ref using weighted random selection.
218-
// With a single ref, returns it directly (no randomness).
219-
// selectByWeight picks a provider ref using weighted random selection.
220-
// Refs with weight <= 0 are skipped (disabled). With a single eligible
221-
// ref, returns it directly (no randomness).
221+
// Refs with weight <= 0 are skipped (disabled). Returns nil when all
222+
// refs have zero weight (all disabled).
222223
func selectByWeight(refs []*resolvedProviderRef) *resolvedProviderRef {
223224
totalWeight := 0
224225
for _, ref := range refs {
@@ -227,7 +228,7 @@ func selectByWeight(refs []*resolvedProviderRef) *resolvedProviderRef {
227228
}
228229
}
229230
if totalWeight == 0 {
230-
return refs[0]
231+
return nil
231232
}
232233
r := rand.IntN(totalWeight)
233234
for _, ref := range refs {

0 commit comments

Comments
 (0)