MANA - Self-Healing CI/CD Pipeline

Welcome to the MANA documentation! MANA is a Kubernetes-native orchestration system that automatically detects and recovers from deployment failures through intelligent retry and rollback mechanisms, aiming to reduce Mean Time To Recovery (MTTR) from minutes to seconds.

What is MANA?

MANA (Self-Healing CI/CD Pipeline) is an open-source system designed to automate the recovery process when Kubernetes deployments fail. Instead of requiring manual intervention for routine failures, MANA:

  • Reacts to failures reported by your CI/CD pipeline and verifies recovery with Kubernetes readiness and application health checks
  • Intelligently retries failed deployments with exponential backoff
  • Automatically rolls back to the last stable version when retries are exhausted
  • Integrates with CI/CD systems like GitHub Actions for automated workflow re-runs
  • Provides complete observability through metrics, audit logging, and health checks
  • Maintains a full audit trail for compliance and debugging

Key Features

  • 🔄 Automatic Rollback: Rolls back to previous stable version after configurable retry threshold
  • ⏱️ Intelligent Retry: Exponential backoff retry mechanism with configurable limits
  • 🐳 Kubernetes-Native: Built specifically for Kubernetes with proper RBAC and resource management
  • 🔧 CI/CD Integration: GitHub Actions webhook support for automatic workflow re-runs
  • 📊 Complete Observability: Prometheus metrics, structured audit logging, and health checks
  • 🛡️ Security-minded: Non-root containers, dropped capabilities, scoped RBAC and Kubernetes Secrets (see Security for known gaps before production use)
  • 📝 Comprehensive Audit Trail: JSON-formatted audit logs for easy parsing and compliance

Getting Started

To get started with MANA, check out our Getting Started Guide.

Documentation

  • Getting Started - Installation, quick start, and basic configuration
  • Architecture - System design, components, and data flow
  • Configuration - Configuring MANA for your environment
  • Usage - Basic usage, CI/CD integration, and monitoring
  • Reference - API reference, configuration reference, and CLI reference
  • Contributing - How to contribute to the project
  • About - Release notes, license, and security information

Community

Support

If you encounter any issues or have questions, please:

  1. Check the Troubleshooting Guide
  2. Search existing GitHub Issues
  3. Open a new issue if needed

MANA is licensed under the MIT License - see the LICENSE file for details.