--- apiVersion: serving.kserve.io/v1alpha2 kind: LLMInferenceServiceConfig metadata: annotations: internal.config.kubernetes.io/previousKinds: LLMInferenceServiceConfig internal.config.kubernetes.io/previousNames: kserve-config-llm-router-route internal.config.kubernetes.io/previousNamespaces: opendatahub serving.kserve.io/well-known-config: "true" creationTimestamp: "2026-11-03T18:46:30Z" finalizers: - serving.kserve.io/llmisvcconfig-finalizer generation: 2 labels: platform.opendatahub.io/part-of: kserve managedFields: - apiVersion: serving.kserve.io/v1alpha2 fieldsType: FieldsV1 fieldsV1: f:metadata: f:annotations: f:internal.config.kubernetes.io/previousKinds: {} f:internal.config.kubernetes.io/previousNames: {} f:internal.config.kubernetes.io/previousNamespaces: {} f:serving.kserve.io/well-known-config: {} f:labels: f:platform.opendatahub.io/part-of: {} f:spec: f:router: f:route: f:http: f:spec: f:parentRefs: {} f:rules: {} manager: kserve-module-controller operation: Apply time: "2026-11-03T18:46:30Z" - apiVersion: serving.kserve.io/v1alpha2 fieldsType: FieldsV1 fieldsV1: f:metadata: f:finalizers: .: {} v:"serving.kserve.io/llmisvcconfig-finalizer": {} f:spec: f:model: .: {} f:uri: {} manager: manager operation: Update time: "2026-11-03T18:46:31Z" - apiVersion: serving.kserve.io/v1alpha2 fieldsType: FieldsV1 fieldsV1: f:status: .: {} f:conditions: {} f:observedGeneration: {} f:referencedBy: {} manager: manager operation: Update subresource: status time: "2026-11-03T18:48:03Z" name: v3-6-0-ea-2-kserve-config-llm-router-route namespace: opendatahub resourceVersion: "19975" uid: efb26e7f-3e7e-4624-a8e2-bc1405d02720 spec: model: uri: "" router: route: http: spec: parentRefs: - group: gateway.networking.k8s.io kind: Gateway name: '{{ .GlobalConfig.IngressGatewayName }}' namespace: '{{ .GlobalConfig.IngressGatewayNamespace }}' rules: - backendRefs: - group: inference.networking.k8s.io kind: InferencePool name: '{{ ChildName .ObjectMeta.Name `-inference-pool` }}' port: 8000 weight: 1 filters: - type: URLRewrite urlRewrite: path: replacePrefixMatch: /v1/completions type: ReplacePrefixMatch matches: - path: type: PathPrefix value: /{{ .ObjectMeta.Namespace }}/{{ .ObjectMeta.Name }}/v1/completions name: v1-completions-path timeouts: backendRequest: 0s request: 0s - backendRefs: - group: inference.networking.k8s.io kind: InferencePool name: '{{ ChildName .ObjectMeta.Name `-inference-pool` }}' port: 8000 weight: 1 filters: - type: URLRewrite urlRewrite: path: replacePrefixMatch: /v1/chat/completions type: ReplacePrefixMatch matches: - path: type: PathPrefix value: /{{ .ObjectMeta.Namespace }}/{{ .ObjectMeta.Name }}/v1/chat/completions name: v1-chat-completions-path timeouts: backendRequest: 0s request: 0s - backendRefs: - group: inference.networking.k8s.io kind: InferencePool name: '{{ ChildName .ObjectMeta.Name `-inference-pool` }}' port: 8000 weight: 1 filters: - type: URLRewrite urlRewrite: path: replacePrefixMatch: /v1/responses type: ReplacePrefixMatch matches: - path: type: PathPrefix value: /{{ .ObjectMeta.Namespace }}/{{ .ObjectMeta.Name }}/v1/responses name: v1-responses-path timeouts: backendRequest: 0s request: 0s - backendRefs: - group: inference.networking.k8s.io kind: InferencePool name: '{{ ChildName .ObjectMeta.Name `-inference-pool` }}' port: 8000 weight: 1 filters: - type: URLRewrite urlRewrite: path: replacePrefixMatch: /v1/messages type: ReplacePrefixMatch matches: - path: type: PathPrefix value: /{{ .ObjectMeta.Namespace }}/{{ .ObjectMeta.Name }}/v1/messages name: v1-messages-path timeouts: backendRequest: 0s request: 0s - backendRefs: - group: inference.networking.k8s.io kind: InferencePool name: '{{ ChildName .ObjectMeta.Name `-inference-pool` }}' port: 8000 weight: 1 matches: - headers: - name: '{{ .GlobalConfig.ModelBasedRoutingHeaderName }}' type: Exact value: publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }} path: type: Exact value: /v1/completions - headers: - name: '{{ .GlobalConfig.ModelBasedRoutingHeaderName }}' type: Exact value: publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }} path: type: Exact value: /v1/completions/ - headers: - name: '{{ .GlobalConfig.ModelBasedRoutingHeaderName }}' type: Exact value: publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }} path: type: Exact value: /v1/chat/completions - headers: - name: '{{ .GlobalConfig.ModelBasedRoutingHeaderName }}' type: Exact value: publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }} path: type: Exact value: /v1/chat/completions/ - headers: - name: '{{ .GlobalConfig.ModelBasedRoutingHeaderName }}' type: Exact value: publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }} path: type: Exact value: /v1/responses - headers: - name: '{{ .GlobalConfig.ModelBasedRoutingHeaderName }}' type: Exact value: publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }} path: type: Exact value: /v1/responses/ - headers: - name: '{{ .GlobalConfig.ModelBasedRoutingHeaderName }}' type: Exact value: publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }} path: type: Exact value: /v1/messages - headers: - name: '{{ .GlobalConfig.ModelBasedRoutingHeaderName }}' type: Exact value: publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }} path: type: Exact value: /v1/messages/ name: v1-model-routing timeouts: backendRequest: 0s request: 0s - backendRefs: - group: inference.networking.k8s.io kind: InferencePool name: '{{ ChildName .ObjectMeta.Name `-inference-pool` }}' port: 8000 weight: 1 filters: - type: URLRewrite urlRewrite: path: replacePrefixMatch: /v1/completions type: ReplacePrefixMatch matches: - path: type: PathPrefix value: /publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }}/v1/completions name: v1-completions-publisher-path timeouts: backendRequest: 0s request: 0s - backendRefs: - group: inference.networking.k8s.io kind: InferencePool name: '{{ ChildName .ObjectMeta.Name `-inference-pool` }}' port: 8000 weight: 1 filters: - type: URLRewrite urlRewrite: path: replacePrefixMatch: /v1/chat/completions type: ReplacePrefixMatch matches: - path: type: PathPrefix value: /publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }}/v1/chat/completions name: v1-chat-completions-publisher-path timeouts: backendRequest: 0s request: 0s - backendRefs: - group: inference.networking.k8s.io kind: InferencePool name: '{{ ChildName .ObjectMeta.Name `-inference-pool` }}' port: 8000 weight: 1 filters: - type: URLRewrite urlRewrite: path: replacePrefixMatch: /v1/responses type: ReplacePrefixMatch matches: - path: type: PathPrefix value: /publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }}/v1/responses name: v1-responses-publisher-path timeouts: backendRequest: 0s request: 0s - backendRefs: - group: inference.networking.k8s.io kind: InferencePool name: '{{ ChildName .ObjectMeta.Name `-inference-pool` }}' port: 8000 weight: 1 filters: - type: URLRewrite urlRewrite: path: replacePrefixMatch: /v1/messages type: ReplacePrefixMatch matches: - path: type: PathPrefix value: /publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }}/v1/messages name: v1-messages-publisher-path timeouts: backendRequest: 0s request: 0s - backendRefs: - group: "" kind: Service name: '{{ ChildName .ObjectMeta.Name `-kserve-workload-svc` }}' port: 8000 weight: 1 filters: - type: URLRewrite urlRewrite: path: replacePrefixMatch: / type: ReplacePrefixMatch matches: - path: type: PathPrefix value: /publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }} name: v1-publisher-path-catch-all timeouts: backendRequest: 0s request: 0s - backendRefs: - group: "" kind: Service name: '{{ ChildName .ObjectMeta.Name `-kserve-workload-svc` }}' port: 8000 weight: 1 filters: - type: URLRewrite urlRewrite: path: replacePrefixMatch: / type: ReplacePrefixMatch matches: - path: type: PathPrefix value: /{{ .ObjectMeta.Namespace }}/{{ .ObjectMeta.Name }} name: v1-catch-all-path timeouts: backendRequest: 0s request: 0s - backendRefs: - group: "" kind: Service name: '{{ ChildName .ObjectMeta.Name `-kserve-workload-svc` }}' port: 8000 weight: 1 matches: - headers: - name: '{{ .GlobalConfig.ModelBasedRoutingHeaderName }}' type: Exact value: publishers/{{ .ObjectMeta.Namespace }}/models/{{ .Spec.Model.Name }} path: type: PathPrefix value: / name: v1-catch-all-model-routing timeouts: backendRequest: 0s request: 0s status: conditions: - lastTransitionTime: "2026-11-03T18:48:03Z" message: referenced by 8 LLMInferenceService(s) reason: InUse severity: Info status: "True" type: ConfigInUse - lastTransitionTime: "2026-11-03T18:46:31Z" status: "True" type: Ready observedGeneration: 2 referencedBy: - name: e2e-distinct-2-simulated namespace: llm - name: e2e-distinct-simulated namespace: llm - name: e2e-embedding-simulated namespace: llm - name: e2e-trlp-test-simulated namespace: llm - name: e2e-unconfigured-facebook-opt-125m-simulated namespace: llm - name: echo-simulator namespace: llm - name: facebook-opt-125m-simulated namespace: llm - name: premium-simulated-simulated-premium namespace: llm