feat: add Kubernetes manifests and A2A protocol support

Phase 2 - A2A Protocol:
- Add A2A models (AgentCard, Task, Message)
- Add A2A service layer
- Add A2A routes with SSE streaming
- Add agent discovery endpoints

Phase 3 - Kubernetes:
- Add deploy/ directory with Kustomize structure
- PostgreSQL StatefulSet with pgvector
- Redis Deployment with persistence
- API and Orchestrator Deployments
- RBAC for orchestrator to manage Jobs
- ArgoCD Application manifest
- Development and production overlays
- K8s Jobs API support in orchestrator

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Renn F
2025-12-28 05:48:51 +01:00
co-authored by Claude Opus 4.5
parent f9398e4caa
commit b943eb7ac1
31 changed files with 3705 additions and 245 deletions
+56
View File
@@ -0,0 +1,56 @@
# ArgoCD Application for RoboCo
# This defines how ArgoCD should deploy and manage RoboCo
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: roboco
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
# GitHub repository containing K8s manifests
repoURL: git@github.com:renzof/roboco.git
targetRevision: main
path: deploy/overlays/production
destination:
# Deploy to local cluster
server: https://kubernetes.default.svc
namespace: roboco
syncPolicy:
automated:
# Automatically prune resources that are no longer in git
prune: true
# Automatically sync when ArgoCD detects drift
selfHeal: true
# Don't allow empty directories
allowEmpty: false
syncOptions:
# Create namespace if it doesn't exist
- CreateNamespace=true
# Use foreground deletion for proper cleanup
- PrunePropagationPolicy=foreground
retry:
limit: 5
backoff:
duration: 5s
factor: 2
maxDuration: 3m
# Ignore differences that are expected (e.g., HPA manages replicas)
ignoreDifferences:
- group: apps
kind: Deployment
jsonPointers:
- /spec/replicas
# Health checks
info:
- name: description
value: "RoboCo AI Agentic Company"
- name: maintainer
value: "renzof"