gitops-drift-agent
GitOps Drift Remediation Agent
Un agente autónomo de nivel de producción que se conecta a clústeres de Kubernetes y repositorios GitOps, identifica desviaciones de estado no autorizadas, genera estrategias de remediación seguras y ejecuta parches de API automatizados o Pull Requests.
Tabla de contenido
Related MCP server: kube-lint-mcp
Resumen
El Agente de remediación de desviación GitOps es una plataforma autónoma basada en políticas que supervisa continuamente el estado en vivo de los recursos de Kubernetes en comparación con la fuente de verdad declarada de GitOps. Cuando se detecta una desviación, el agente evalúa las políticas de remediación aplicables, calcula operaciones mínimas de parche JSON y las aplica directamente a través de la API de Kubernetes o abre Pull Requests contra el repositorio GitOps, todo con un registro de auditoría completo.
Principios fundamentales
Radio de explosión mínimo: los parches se calculan como la diferencia más pequeña posible, nunca reemplazos completos de recursos
Política primero: cada acción de remediación está controlada por políticas versionadas y configurables con niveles de riesgo
Registro de auditoría inmutable: cada decisión, detección y mutación se registra con contexto criptográfico
Nativo de GitOps: el agente se gestiona a sí mismo mediante GitOps y envía PRs de vuelta al repositorio
Listo para MCP: expone todas las capacidades como herramientas MCP para la integración con agentes LLM
Arquitectura
┌─────────────────────────────────────────────────────────────────────┐
│ GitOps Drift Remediation Agent │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌────────────────────────┐ │
│ │ AST Differ │───▶│ Policy Engine│───▶│ Patch Engine │ │
│ │ │ │ │ │ │ │
│ │ • Deep diff │ │ • Risk tiers │ │ • JSON Patch RFC 6902 │ │
│ │ • Field │ │ • Allow/deny │ │ • K8s API apply │ │
│ │ tracking │ │ • Dry-run │ │ • PR generation │ │
│ │ • Severity │ │ • Approvals │ │ • Rollback support │ │
│ └─────────────┘ └──────────────┘ └────────────────────────┘ │
│ │ │ │ │
│ └──────────────────┴───────────────────────┘ │
│ │ │
│ ┌────────▼────────┐ │
│ │ Audit Logger │ │
│ │ │ │
│ │ • Structured │ │
│ │ JSON logs │ │
│ │ • Event chain │ │
│ │ • Pino backend │ │
│ └─────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ MCP Server │ │
│ │ detect_drift │ list_policies │ remediate │ get_audit_trail │ │
│ └──────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌─────────────┐ ┌───────────────┐
│ Kubernetes │ │ GitOps Repo │
│ Cluster(s) │ │ (Git/GitHub) │
└─────────────┘ └───────────────┘Características
Característica | Descripción |
Detección de desviación | Diferenciación profunda basada en AST del estado de los recursos de Kubernetes en vivo frente al deseado |
Clasificación de riesgo | Puntuación de severidad automatizada (crítico / alto / medio / bajo) por ruta de campo |
Motor de políticas | Políticas declarativas y versionadas con reglas de permitir/denegar, prueba en seco y compuertas de aprobación |
Motor de parches | Cálculo de parches JSON RFC 6902 con soporte de aplicación del lado del servidor de K8s |
PRs de GitOps | Generación automatizada de Pull Requests con diff de desviación y justificación de remediación |
Registro de auditoría | Registros de auditoría estructurados e inmutables con cadenas de decisión completas |
Servidor MCP | Todas las capacidades del agente expuestas como herramientas MCP para la orquestación de agentes de IA |
CLI | CLI con todas las funciones para operación interactiva y automatizada |
Instalación
Requisitos previos
Node.js >= 20.0.0
kubectl configurado con acceso al clúster de destino
Credenciales de Git para el repositorio GitOps (para el modo PR)
Instalar desde el código fuente
git clone https://github.com/your-org/gitops-drift-remediation-agent.git
cd gitops-drift-remediation-agent
npm install
npm run build
npm link # optional: makes `drift-agent` available globallyConfiguración
Toda la configuración se pasa mediante variables de entorno o un archivo de configuración.
Variables de entorno
Variable | Obligatoria | Valor por defecto | Descripción |
| No |
| Ruta al archivo kubeconfig |
| No | contexto-actual | Contexto de Kubernetes a utilizar |
| No | — | URL del repositorio GitOps para el modo PR |
| No |
| Rama de destino para los PRs |
| No | — | Token del proveedor de Git (GitHub/GitLab) |
| No |
| Ruta a la configuración de políticas de remediación |
| No |
| Ruta de salida del registro de auditoría |
| No |
| Nivel de registro (debug/info/warn/error) |
| No |
| Modo de prueba en seco global |
| No |
| Puerto HTTP del servidor MCP |
| No |
| Filtro de espacios de nombres separados por comas |
Uso
Comandos CLI
# Detect drift across all namespaces
drift-agent detect --namespace production --output json
# Detect and auto-remediate with policy gate
drift-agent remediate --namespace production --policy strict --dry-run
# List active policies
drift-agent policy list
# Show audit trail for a resource
drift-agent audit --resource deployments/my-app --namespace production
# Start MCP server
drift-agent mcp-server --port 3000API programática
import { AstDiffer } from './src/detector/ast-differ';
import { RemediationPolicy } from './src/policy/remediation-policy';
import { PatchEngine } from './src/remediator/patch-engine';
const differ = new AstDiffer();
const drifts = await differ.detectDrift(liveResource, desiredResource);
const policy = new RemediationPolicy(policyConfig);
const decision = await policy.evaluate(drifts, resourceContext);
if (decision.approved) {
const engine = new PatchEngine(k8sClient);
await engine.applyRemediation(decision.patches, resourceRef);
}Servidor MCP
El agente expone un servidor MCP (Model Context Protocol) que hace que todas las capacidades del agente estén disponibles como herramientas para agentes basados en LLM (Claude, GPT-4, etc.).
Iniciar el servidor
drift-agent mcp-server --port 3000
# or
npm run mcp:serverHerramientas MCP disponibles
Herramienta | Descripción |
| Detectar desviación para un recurso o espacio de nombres |
| Listar todas las políticas de remediación configuradas |
| Evaluar la desviación contra una política específica |
| Aplicar parches de remediación calculados |
| Recuperar eventos de auditoría para un recurso |
| Generar un PR de GitOps para la remediación de desviación |
| Revertir una remediación aplicada anteriormente |
Configuración del cliente MCP
{
"mcpServers": {
"gitops-drift-agent": {
"url": "http://localhost:3000/mcp",
"transport": "http"
}
}
}Motor de políticas
Las políticas se definen de forma declarativa y controlan todos los aspectos del ciclo de vida de la remediación.
Estructura de la política
apiVersion: drift.gitops.io/v1
kind: RemediationPolicy
metadata:
name: production-strict
spec:
riskTier: high
autoRemediate: false
requireApproval: true
dryRunFirst: true
rules:
- field: "spec.replicas"
action: restore
severity: high
- field: "spec.template.spec.containers[*].image"
action: block
severity: critical
excludeFields:
- "metadata.annotations['kubectl.kubernetes.io/last-applied-configuration']"
- "metadata.resourceVersion"
- "metadata.uid"Auditoría y telemetría
Cada acción del agente se registra en formato JSON estructurado:
{
"timestamp": "2024-06-01T12:00:00.000Z",
"eventId": "evt_01J0ABC123",
"eventType": "DRIFT_DETECTED",
"severity": "high",
"resource": {
"kind": "Deployment",
"name": "my-app",
"namespace": "production",
"apiVersion": "apps/v1"
},
"drift": {
"field": "spec.replicas",
"desired": 3,
"live": 1,
"changeType": "edited"
},
"policy": {
"name": "production-strict",
"decision": "remediate",
"riskTier": "high"
},
"actor": {
"agentVersion": "1.0.0",
"kubeContext": "prod-cluster"
}
}Desarrollo
# Install dependencies
npm install
# Run in development mode (ts-node)
npm run dev -- detect --namespace default
# Type check only
npm run typecheck
# Lint
npm run lint
# Format
npm run format
# Build
npm run buildPruebas
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run in watch mode
npm run test:watchLas pruebas se organizan en tests/ y utilizan Jest con ts-jest. Se proporcionan mocks para el cliente de Kubernetes y las operaciones del sistema de archivos.
Consideraciones de seguridad
Menor privilegio: el agente solo requiere permisos
get,list,watchypatchen los recursos de destino, nuncadeleteocreatePrueba en seco por defecto: todos los niveles de política están en modo de prueba en seco hasta que se habiliten explícitamente
Compuertas de aprobación: los cambios de riesgo alto y crítico requieren aprobación explícita mediante política
Inmutabilidad de auditoría: los registros de auditoría son de solo añadidura; la rotación de registros se gestiona externamente
Enmascaramiento de secretos: los valores de los recursos Secret siempre se redactan en los registros y PRs
Aislamiento de kubeconfig: el agente nunca modifica el kubeconfig
Contribuciones
Consulte CONTRIBUTING.md. Todas las contribuciones requieren:
Conjunto de pruebas aprobado con cobertura >= 80%
Sin nuevas advertencias de lint
Entradas de registro de auditoría para cualquier nueva ruta de mutación
Evaluación de políticas para cualquier nueva acción de remediación
Licencia
Apache 2.0 — consulte LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides MCP multi-cluster Kubernetes management and operations. It can be integrated as an SDK into your own project and includes nearly 50 built-in tools covering common DevOps and development scenarios. Supports both standard and CRD resources.149MIT
- AlicenseNot gradedqualityAmaintenanceMCP server to lint and validate Kubernetes-related manifests(Helm, FluxCD, ArgoCD, Kustomize, etc.)MIT
- AlicenseNot gradedqualityDmaintenanceEnables Git repository operations and real-time monitoring via MCP tools, with support for WebSocket events, authentication, and observability.174MIT
- FlicenseNot gradedqualityBmaintenancePolicy-as-code gate for AI-SDLC, providing MCP tools to review prompts, diff tool manifests, vet MCP servers, and run evaluation suites for LLM agent repos.1
Related MCP Connectors
Remote MCP for Copilot CLI switch gate MCP, structured receipts, audit logs, and reviewer-ready evid
Monitor MCP servers, API contracts and AI outputs for schema drift. Alerts on breaking changes.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/felipeassis10/gitops-drift-remediation-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server