quorate/vendor/platform/agentgateway/routes.yaml

111 lines
2.7 KiB
YAML
Raw Normal View History

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: model-catalog
namespace: agentgateway-system
spec:
parentRefs:
- name: agentgateway-proxy
rules:
- matches:
- method: GET
path:
type: Exact
value: /v1/models
backendRefs:
- name: model-catalog
port: 8080
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: models
namespace: agentgateway-system
spec:
parentRefs:
- name: agentgateway-proxy
rules:
- matches:
- method: POST
path:
type: Exact
value: /v1/chat/completions
headers:
- name: x-model
type: RegularExpression
value: ^vertex_ai_flex/.+
filters:
- type: RequestHeaderModifier
requestHeaderModifier:
set:
- name: X-Vertex-AI-LLM-Request-Type
value: shared
- name: X-Vertex-AI-LLM-Shared-Request-Type
value: flex
backendRefs:
- group: agentgateway.dev
kind: AgentgatewayBackend
name: vertex-ai
- matches:
- method: POST
path:
type: PathPrefix
value: /v1
headers:
- name: x-model
type: RegularExpression
value: ^vertex_ai/.+
backendRefs:
- group: agentgateway.dev
kind: AgentgatewayBackend
name: vertex-ai
- matches:
- method: POST
path:
type: PathPrefix
value: /v1
headers:
- name: x-model
type: RegularExpression
value: ^novita/.+
backendRefs:
- group: agentgateway.dev
kind: AgentgatewayBackend
name: novita
---
apiVersion: agentgateway.dev/v1alpha1
kind: AgentgatewayPolicy
metadata:
name: extract-model
namespace: agentgateway-system
spec:
targetRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: agentgateway-proxy
traffic:
phase: PreRouting
transformation:
conditional:
- condition: request.method == "POST"
policy:
request:
set:
- name: x-model
value: json(request.body).model
---
apiVersion: agentgateway.dev/v1alpha1
kind: AgentgatewayPolicy
metadata:
name: strip-provider-prefix
namespace: agentgateway-system
spec:
targetRefs:
- group: gateway.networking.k8s.io
kind: HTTPRoute
name: models
backend:
ai:
transformations:
- field: model
expression: llmRequest.model.stripPrefix("vertex_ai_flex/").stripPrefix("vertex_ai/").stripPrefix("novita/")