Skip to content

Aganium/agenium-k8s-operator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Agenium Kubernetes Operator

Kubernetes operator for managing agent:// protocol agents as native K8s resources.

Features

  • 🎯 CRD: Agent — Declare agents as kind: Agent with domain, API key, capabilities
  • 🔄 Auto-registration — Controller registers agents on Agenium DNS when CRD is created
  • 🏥 Health monitoring — Periodic health checks, status updates, restart unhealthy agents
  • 🔌 Sidecar injection — Optional agent:// routing proxy sidecar
  • ⚖️ HPA support — Scale based on CPU utilization or message rate
  • 📦 Helm chart — One-command install
  • 🔗 Service mesh compatible — Works with Istio/Linkerd

Quick Start

With Helm

helm install agenium-operator charts/agenium-operator/

With kubectl

make install   # Install CRDs
make deploy    # Deploy operator

Create an Agent

apiVersion: agenium.io/v1
kind: Agent
metadata:
  name: my-chatbot
spec:
  name: my-chatbot
  domain: chatbot.example.agenium.net
  apiKey: dom_0123456789abcdef...
  image: myregistry/chatbot:v1.0.0
  replicas: 2
  port: 8080
  capabilities: [chat, search]
  sidecarProxy: true
  autoScale:
    minReplicas: 1
    maxReplicas: 5
    targetCPUUtilization: 70
kubectl apply -f config/samples/agent_v1_agent.yaml
kubectl get agents

Architecture

kubectl apply Agent CR
        ↓
  [Operator Controller]
   ├── Create Deployment + Service
   ├── Register with Agenium DNS (185.204.169.26:3000)
   ├── Inject sidecar proxy (optional)
   ├── Configure HPA (optional)
   └── Periodic health checks → update status

Agent Status

$ kubectl get agents
NAME        DOMAIN                      PHASE        REGISTERED   READY   AGE
my-chatbot  chatbot.example.agenium.net Registered   true         2       5m

Development

make build    # Build binary
make test     # Run tests
make docker-build IMG=myrepo/operator:dev

License

MIT

Bug Reporting

This project includes optional bug reporting to the Agenium monitoring server.

Configuration

Set the following environment variables to enable bug reporting:

BUG_REPORT_URL=http://130.185.123.153:3100
BUG_REPORT_TOKEN=your_token_here

Bug reporting is disabled by default — it only activates when BUG_REPORT_TOKEN is set. Reports are sent asynchronously (fire and forget) and never block the main application.

About

Kubernetes operator for managing **agent:// protocol** agents as native K8s resources.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors