Skip to content

dereban25/agentgateway-kagent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

agentgateway + kagent + Claude API on Kind (Mac M1)

Integration Tests AI Review Evals AI PR Review

Architecture

kagent → agentgateway-proxy (K8s) → Anthropic Claude API (claude-3-haiku-20240307)

CI: What gets tested automatically

Every push to main triggers a full integration test in GitHub Actions:

Step What's checked
Kind cluster K8s 1.29.2 created from scratch
Gateway API CRDs standard-install.yaml applied
agentgateway Helm install, pods Running
Anthropic secret Authorization key in Secret
AgentgatewayBackend Accepted: True
Gateway Programmed: True
kagent Helm install, pods Running
ModelConfig Accepted by kagent controller
Live API test curl → agentgateway → Claude returns response

See full results → Actions tab

Cost

~$0.25/1M tokens (claude-3-haiku-20240307). $5 lasts the entire course.

Prerequisites

  • Docker Desktop for Apple Silicon
  • brew install kubectl kind helm git gh jq
  • Anthropic API key from console.anthropic.com

Required GitHub Secrets

Secret Description
ANTHROPIC_API_KEY Your Anthropic API key (sk-ant-...)

Setup (Mac M1)

export ANTHROPIC_API_KEY="sk-ant-api03-your-key"

# 1. Create cluster
kind create cluster --config kind-cluster.yaml

# 2. Gateway API CRDs
kubectl apply --server-side -f \
  https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.1/standard-install.yaml

# 3. Install agentgateway
helm upgrade -i --create-namespace --namespace agentgateway-system \
  --version 2.2.1 agentgateway-crds \
  oci://ghcr.io/kgateway-dev/charts/agentgateway-crds

helm upgrade -i agentgateway \
  oci://ghcr.io/kgateway-dev/charts/agentgateway \
  --namespace agentgateway-system --version 2.2.1

# 4. Create secret (key MUST be named Authorization!)
kubectl create secret generic anthropic-secret \
  --from-literal=Authorization="$ANTHROPIC_API_KEY" \
  --namespace agentgateway-system

# 5. Apply gateway configs
kubectl apply -f k8s/gateway.yaml
kubectl apply -f k8s/backend-claude.yaml
kubectl apply -f k8s/httproute-llm.yaml

# 6. Install kagent
kubectl create namespace kagent
kubectl create secret generic kagent-anthropic-secret \
  --from-literal=apiKey="$ANTHROPIC_API_KEY" --namespace kagent
kubectl create secret generic kagent-llm-secret \
  --from-literal=apiKey="$ANTHROPIC_API_KEY" --namespace kagent

helm install kagent-crds \
  oci://ghcr.io/kagent-dev/kagent/helm/kagent-crds --namespace kagent

helm install kagent \
  oci://ghcr.io/kagent-dev/kagent/helm/kagent \
  --namespace kagent --values k8s/kagent-values.yaml

kubectl apply -f k8s/model-config.yaml

Port-forwards (each in separate terminal)

kubectl port-forward deployment/agentgateway-proxy -n agentgateway-system 8080:80
kubectl port-forward deployment/agentgateway-proxy -n agentgateway-system 15000:15000
kubectl port-forward svc/kagent-ui -n kagent 8081:8080

UIs

Test

curl "http://localhost:8080/v1/messages" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{"model": "claude-3-haiku-20240307", "max_tokens": 100, "messages": [{"role": "user", "content": "Hello!"}]}' \
  | jq '.content[0].text'

Cleanup

kind delete cluster --name agentgateway

About

agentgateway + kagent on Kind Kubernetes with Claude API (Mac M1 ARM64)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors