For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.
Goose
Route Goose LLM traffic through agentgateway running in Kubernetes.
Route Goose LLM traffic through agentgateway running in Kubernetes to centralize credentials and capture audit logs for every agent call.
Before you begin
Install Goose
Install Goose by following the Goose installation guide.
Get the gateway URL
export INGRESS_GW_ADDRESS=$(kubectl get svc -n agentgateway-system agentgateway-proxy \
-o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo "Gateway address: $INGRESS_GW_ADDRESS"Set up the OpenAI backend
Export your OpenAI API key.
export OPENAI_API_KEY="sk-your-key-here"Create a Kubernetes Secret for your API key.
kubectl apply -f- <<EOF apiVersion: v1 kind: Secret metadata: name: openai-secret namespace: agentgateway-system type: Opaque stringData: Authorization: $OPENAI_API_KEY EOFCreate an AgentgatewayBackend for OpenAI.
kubectl apply -f- <<EOF apiVersion: agentgateway.dev/v1alpha1 kind: AgentgatewayBackend metadata: name: openai namespace: agentgateway-system spec: ai: provider: openai: {} policies: auth: secretRef: name: openai-secret EOFCreate an HTTPRoute to forward traffic to the backend.
kubectl apply -f- <<EOF apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: name: openai namespace: agentgateway-system spec: parentRefs: - name: agentgateway-proxy namespace: agentgateway-system rules: - matches: - path: type: PathPrefix value: / backendRefs: - name: openai namespace: agentgateway-system group: agentgateway.dev kind: AgentgatewayBackend EOF
Configure Goose
Point Goose at the agentgateway ingress address using environment variables.
export GOOSE_PROVIDER=openai
export GOOSE_MODEL=gpt-4o
export OPENAI_HOST=http://$INGRESS_GW_ADDRESS
export OPENAI_API_KEY=placeholderThe following table describes each environment variable:
| Variable | Description |
|---|---|
GOOSE_PROVIDER | The LLM provider Goose uses. Set to openai so Goose speaks the OpenAI-compatible API. |
GOOSE_MODEL | The model to use. Must be set — Goose will not start without a model configured. |
OPENAI_HOST | The base URL of the agentgateway proxy. |
OPENAI_API_KEY | Must be non-empty for Goose to start, but it is not used to call OpenAI — agentgateway holds the real key. |
Verify the connection
Send a one-shot prompt to confirm requests flow through agentgateway.
goose run --text "say hello"Check the agentgateway proxy logs to confirm the request was routed through the gateway.
kubectl logs deployment/agentgateway-proxy -n agentgateway-system --tail=5You should see a log entry showing the request was forwarded to the OpenAI endpoint with the configured model:
info request gateway=agentgateway-system/agentgateway-proxy listener=http route=agentgateway-system/openai endpoint=api.openai.com:443 http.method=POST http.path=/v1/chat/completions http.status=200 protocol=llm gen_ai.operation.name=chat gen_ai.provider.name=openai gen_ai.request.model=gpt-4o gen_ai.usage.input_tokens=4569 gen_ai.usage.output_tokens=10 duration=2242ms