A Kubernetes alert remediation system with a modern web interface and intelligent remediation agent. This platform analyzes monitoring alerts, fetches live cluster context, and generates executable remediation scripts through LLMβpowered workflows.
The system follows a twoβtier hierarchical architecture:
Monitoring Alerts β L0 Client (UI) β L1 Remediation Agent β Remediation Scripts
- Role: Modern web interface for alert management and visualization.
- Port: Default
3000.
- Role: LangGraphβpowered remediation specialist using specialized subagents.
- Port: Default
10001.
git clone git@github.com:BerryBytes/01agent.git
cd 01agent- Approach 1: Using Pre-built Images (Recommended for most users)
- Approach 2: Building Custom Images (For developers modifying source code)
Deploy using ready-to-use images from the 01community registry. Perfect for quick setup and production use.
- Kubernetes cluster (Kind, Minikube, or Cloud)
- Helm 3+
- LLM API Key (OpenRouter, DeepSeek, Google, or Anthropic)
The MCP (Model Context Protocol) Server provides Kubernetes tools for the agents.
git clone https://github.com/Flux159/mcp-server-kubernetes.gitpython3 -c "
import json
with open('mcp-server-kubernetes/helm-chart/values.schema.json') as f:
schema = json.load(f)
schema['properties']['observability'] = {
'type': 'object',
'additionalProperties': True
}
with open('mcp-server-kubernetes/helm-chart/values.schema.json', 'w') as f:
json.dump(schema, f, indent=2)
print('Schema updated successfully!')
"helm install mcp-server ./mcp-server-kubernetes/helm-chart \
--set kubeconfig.provider=serviceaccount \
--set transport.mode=http \
--set transport.service.type=ClusterIP \
--set security.allowOnlyNonDestructive=false \
--create-namespace \
--namespace mcp-systemThe agents use PostgreSQL for long-term memory. We use the CrunchyData Operator to manage it.
curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.40.0/install.sh | bash -s v0.40.0Important
OLM installation can take a few minutes. Please ensure all OLM pods in the olm namespace are in the Running state before proceeding.
kubectl create -f https://operatorhub.io/install/postgresql.yamlEdit helm-chart/values.yaml to configure your LLM provider and API key.
You must set the MODEL_PROVIDER, MODEL_NAME and provide the corresponding API key in the secret section.
agents:
- name: l0
enabled: true
image: 01community/agent-l0:v1
- name: l1
enabled: true
image: 01community/agent-l1:v1
env:
MODEL_PROVIDER: deepseek # options: gemini, openai, openrouter, anthropic, deepseek
MODEL_NAME: deepseek-chat # examples: gemini-2.0-flash, gpt-4o, claude-3-5-sonnet
MCP_SERVER_URL: http://mcp-server-mcp-server-kubernetes.mcp-system.svc.cluster.local:3001/mcp
ENABLE_K8S_TOOLS: "true"
STM_ENABLE_POSTGRES: "true"
usePostgresql: true
secret:
DEEPSEEK_API_KEY: "your-api-key-here"
# GOOGLE_API_KEY: "your-api-key"
# OPENAI_API_KEY: "your-api-key"
# OPENROUTER_API_KEY: "your-api-key"
# ANTHROPIC_API_KEY: "your-api-key"helm upgrade --install 01agent ./helm-chart -n 01cloud --create-namespaceImportant
Ensure all the pods in the namespace have initialized successfully and running
Port-forward the UI service:
kubectl port-forward svc/agent-l0 -n 01cloud 3000:3000Open your browser and navigate to http://localhost:3000
For advanced monitoring with Grafana, Loki, Tempo, and OpenTelemetry, see OTEL-setup.md. These features are disabled by default and should only be enabled if you have the observability stack configured.
Build and deploy your own modified images from source code. Ideal for developers customizing the system.
- Kubernetes cluster (Kind, Minikube, or Cloud)
- Helm 3+
- Docker (for building images)
- Node.js 25+ & npm (for L0 Client modifications)
- Python 3.11+ (for L1 Agent modifications)
- LLM API Key (OpenRouter, DeepSeek, Google, or Anthropic)
The MCP (Model Context Protocol) Server provides Kubernetes tools for the agents.
git clone https://github.com/Flux159/mcp-server-kubernetes.gitpython3 -c "
import json
with open('mcp-server-kubernetes/helm-chart/values.schema.json') as f:
schema = json.load(f)
schema['properties']['observability'] = {
'type': 'object',
'additionalProperties': True
}
with open('mcp-server-kubernetes/helm-chart/values.schema.json', 'w') as f:
json.dump(schema, f, indent=2)
print('Schema updated successfully!')
"helm install mcp-server ./mcp-server-kubernetes/helm-chart \
--set kubeconfig.provider=serviceaccount \
--set transport.mode=http \
--set transport.service.type=ClusterIP \
--set security.allowOnlyNonDestructive=false \
--create-namespace \
--namespace mcp-systemThe agents use PostgreSQL for long-term memory. We use the CrunchyData Operator to manage it.
curl -sL https://github.com/operator-framework/operator-lifecycle-manager/releases/download/v0.40.0/install.sh | bash -s v0.40.0Important
OLM installation can take a few minutes. Please ensure all OLM pods in the olm namespace are in the Running state before proceeding.
kubectl create -f https://operatorhub.io/install/postgresql.yamlNavigate to the repository root and build your images:
docker build -t your-registry/agent-l0:latest ./k8s-agent/level-0-agentdocker build -t your-registry/agent-l1:latest ./k8s-agent/level-1-agentFor remote clusters - Push to your registry:
docker push your-registry/agent-l0:latest
docker push your-registry/agent-l1:latestFor local Kind clusters - Load images directly:
kind load docker-image your-registry/agent-l0:latest --name 01cloud-cluster
kind load docker-image your-registry/agent-l1:latest --name 01cloud-clusterEdit helm-chart/values.yaml to use your custom images and configure your LLM provider.
You must set the MODEL_PROVIDER, MODEL_NAME, image and provide the corresponding API key in the secret section.
agents:
- name: l0
enabled: true
image: your-registry/agent-l0:latest # Your custom image
- name: l1
enabled: true
image: your-registry/agent-l1:latest # Your custom image
env:
MODEL_PROVIDER: deepseek # options: gemini, openai, openrouter, anthropic, deepseek
MODEL_NAME: deepseek-chat # examples: gemini-2.0-flash, gpt-4o, claude-3-5-sonnet
MCP_SERVER_URL: http://mcp-server-mcp-server-kubernetes.mcp-system.svc.cluster.local:3001/mcp
ENABLE_K8S_TOOLS: "true"
STM_ENABLE_POSTGRES: "true"
usePostgresql: true
secret:
DEEPSEEK_API_KEY: "your-api-key-here"
# GOOGLE_API_KEY: "your-api-key"
# OPENAI_API_KEY: "your-api-key"
# OPENROUTER_API_KEY: "your-api-key"
# ANTHROPIC_API_KEY: "your-api-key"helm upgrade --install 01agent ./helm-chart -n 01cloud --create-namespaceImportant
Ensure all the pods in the namespace have initialized successfully and running
Port-forward the UI service:
kubectl port-forward svc/agent-l0 -n 01cloud 3000:3000Open your browser and navigate to http://localhost:3000
For advanced monitoring with Grafana, Loki, Tempo, and OpenTelemetry, see OTEL-setup.md.
Access these services via port-forwarding for development and debugging:
# PostgreSQL Database
kubectl port-forward svc/agents-primary -n 01cloud 5432:5432
# MCP Server
kubectl port-forward svc/mcp-server-mcp-server-kubernetes -n mcp-system 3001:3001helm-chart/: Core Helm chart for deploymentk8s-agent/: Source code for L0 and L1 agentsOTEL-setup.md: Optional guide for monitoring (Prometheus, Grafana, Loki)
We welcome contributions from the community! Whether you are reporting a bug, suggesting a feature, or submitting a pull request, your help is appreciated.
- Found a bug? Open an issue
- Have a feature idea? Suggest it here
- Want to contribute code? Check out our Contributing Guidelines
This project is maintained by Bishal Singh (@bsalsingh) and the 01Cloud community.
To ensure a welcoming and inclusive community, please review and follow our Code of Conduct.
This project is licensed under the MIT License.