Problem:
The provider_route filter's candidate_id in each route must match the Grid overlay's stable_id, not the InferenceProvider CR
name. The stable_id is a deterministic short hash generated by the operator (e.g., f91111ba), not a human-readable name like qwen3-ifc1.
When they don't match, the provider gateway returns a silent HTTP 403.
Workaround:
Check the overlay for stable_id values:
oc -n grid-system get configmap grid-overlay-glb-demo-edge-gateway -o jsonpath='{.data.routing-overlay\.json}' | python3 -c "import json,sys; [print(c['cluster'],c['stable_id']) for c in json.load(sys.stdin)['overlay']['candidates']]"
Use these stable_id values as the candidate_id in the provider gateway's provider_route config.
Suggested feature:
Accept both stable_id and the InferenceProvider name as candidate_id.
Problem:
The
provider_routefilter'scandidate_idin each route must match the Grid overlay'sstable_id, not the InferenceProvider CRname. The
stable_idis a deterministic short hash generated by the operator (e.g.,f91111ba), not a human-readable name likeqwen3-ifc1.When they don't match, the provider gateway returns a silent HTTP 403.
Workaround:
Check the overlay for
stable_idvalues:Use these
stable_idvalues as thecandidate_idin the provider gateway'sprovider_routeconfig.Suggested feature:
Accept both
stable_idand the InferenceProvider name ascandidate_id.