Jesús Pérez b6a4d77421
Some checks are pending
Documentation Lint & Validation / Markdown Linting (push) Waiting to run
Documentation Lint & Validation / Validate mdBook Configuration (push) Waiting to run
Documentation Lint & Validation / Content & Structure Validation (push) Waiting to run
Documentation Lint & Validation / Lint & Validation Summary (push) Blocked by required conditions
mdBook Build & Deploy / Build mdBook (push) Waiting to run
mdBook Build & Deploy / Documentation Quality Check (push) Blocked by required conditions
mdBook Build & Deploy / Deploy to GitHub Pages (push) Blocked by required conditions
mdBook Build & Deploy / Notification (push) Blocked by required conditions
Rust CI / Security Audit (push) Waiting to run
Rust CI / Check + Test + Lint (nightly) (push) Waiting to run
Rust CI / Check + Test + Lint (stable) (push) Waiting to run
feat: add Leptos UI library and modularize MCP server
2026-02-14 20:10:55 +00:00
..

Kagent Kubernetes Integration

Kubernetes manifests for deploying Google Kagent with VAPORA A2A protocol integration.

Directory Structure

kagent/
├── base/                 # Base configuration (environment-agnostic)
│   ├── namespace.yaml    # Kagent namespace
│   ├── rbac.yaml         # ServiceAccount, ClusterRole, ResourceQuota
│   ├── configmap.yaml    # Kagent configuration
│   ├── statefulset.yaml  # Kagent StatefulSet (3 replicas)
│   ├── service.yaml      # Kubernetes services
│   └── kustomization.yaml
├── overlays/
│   ├── dev/              # Development environment
│   │   ├── kustomization.yaml
│   │   └── statefulset-patch.yaml
│   └── prod/             # Production environment
│       ├── kustomization.yaml
│       └── statefulset-patch.yaml
└── README.md

Deployment

Prerequisites

  • Kubernetes 1.24+
  • kubectl configured
  • Kustomize 4.0+
  • VAPORA A2A server running

Deploy to Development

kubectl apply -k kubernetes/kagent/overlays/dev

Deploy to Production

kubectl apply -k kubernetes/kagent/overlays/prod

Features

StatefulSet Configuration

  • Replicas: 3 (base), 1 (dev), 5 (prod)
  • Image: google-kagent:latest
  • Service Type: ClusterIP (Headless)
  • Pod Anti-Affinity: Distributed across nodes

A2A Integration

Kagent is configured to discover and integrate with VAPORA A2A server:

a2a:
  enabled: true
  vapora_server: "http://vapora-a2a:8003"
  discover_interval: 30s (dev), 60s (prod)
  timeout: 30s

Ports

  • 8080/http - REST API
  • 50051/grpc - gRPC endpoint
  • 9090/metrics - Prometheus metrics

Resource Limits

Development:

  • CPU: 100m req, 500m limit
  • Memory: 128Mi req, 512Mi limit

Production:

  • CPU: 1000m req, 4000m limit
  • Memory: 1Gi req, 4Gi limit

RBAC

Kagent service account has permissions to:

  • List/watch pods, services
  • Read configmaps
  • Create/delete batch jobs
  • Create events

Health Checks

  • Liveness Probe: /health on port 8080 (30s initial, 10s interval)
  • Readiness Probe: /ready on port 8080 (10s initial, 5s interval)

Environment Variables

  • KAGENT_CONFIG - Config file path
  • KAGENT_POD_NAME - Pod name (auto-filled)
  • KAGENT_NAMESPACE - Pod namespace (auto-filled)
  • A2A_SERVER_URL - VAPORA A2A server URL
  • LOG_LEVEL - Logging level (debug/info/warn/error)

Storage

  • ConfigMap Volume - Kagent configuration
  • EmptyDir - Cache (1Gi) and tmp (500Mi)
  • PersistentVolume - Data (10Gi per pod)

Networking

All services use internal cluster DNS:

  • kagent.kagent.svc.cluster.local - Headless service
  • kagent-api.kagent.svc.cluster.local - REST API
  • kagent-grpc.kagent.svc.cluster.local - gRPC

Monitoring

Prometheus metrics exposed at /metrics:9090

Enable scraping with annotation:

prometheus.io/scrape: "true"
prometheus.io/port: "9090"

Troubleshooting

Check pod status

kubectl get pods -n kagent
kubectl describe pod -n kagent <pod-name>
kubectl logs -n kagent <pod-name>

Test A2A connectivity

kubectl exec -it -n kagent kagent-0 -- /bin/sh
curl http://vapora-a2a:8003/health

View events

kubectl get events -n kagent --sort-by='.lastTimestamp'

Cleanup

kubectl delete -k kubernetes/kagent/overlays/dev
kubectl delete -k kubernetes/kagent/overlays/prod