Production-grade GitOps-based deployment and management of Redis Enterprise on Red Hat OpenShift
This repository provides a complete enterprise reference architecture for deploying and managing Redis Enterprise at scale using GitOps principles on Red Hat OpenShift.
Designed for:
- β Enterprise customers (including regulated industries like banking)
- β Multi-team environments (10-100+ databases)
- β Professional Services engagements
- β Database-as-a-Service (DBaaS) foundations
- Red Hat OpenShift 4.x cluster
- Redis Enterprise Operator installed
- Red Hat OpenShift GitOps (Argo CD) installed
ocCLI configured and logged in
# Clone repository
git clone https://github.com/alan-teodoro/poc-gitops.git
cd poc-gitops
# Follow step-by-step guide
cat docs/ARGOCD_IMPLEMENTATION_GUIDE.mdπ Complete implementation guide: docs/ARGOCD_IMPLEMENTATION_GUIDE.md
- Argo CD AppProjects for team isolation
- Namespace-based resource segregation
- RBAC for fine-grained access control
- ResourceQuotas per namespace (CPU, memory, storage)
- LimitRanges for container limits
- Different profiles for dev/prod environments
- OPA Gatekeeper for admission control
- Automated validation of Redis configurations
- Prevent data loss (immutable shardCount)
- Enforce standards (mandatory labels, memory limits)
- Declarative infrastructure as code
- Auto-sync from Git to cluster
- Self-healing capabilities
- Audit trail via Git history
- Operator in dedicated namespace
- Cluster in operator namespace
- Databases in separate namespaces (dev/prod isolation)
.
βββ README.md # This file
βββ docs/ # Documentation
β βββ ARGOCD_IMPLEMENTATION_GUIDE.md # π― START HERE - Step-by-step guide
β βββ TROUBLESHOOTING.md # Common issues and solutions
β βββ HELM_ARCHITECTURE.md # Helm charts explanation
β βββ MULTI_NAMESPACE.md # Multi-namespace architecture
β βββ architecture/
β βββ ADR-001-gitops-governance.md
β
βββ platform/ # Platform-level resources
β βββ argocd/projects/ # AppProjects (multi-tenancy)
β βββ quotas/ # ResourceQuota & LimitRange
β βββ policies/ # OPA Gatekeeper policies
β βββ operators/ # Operator configurations
β
βββ helm-charts/ # Helm charts
β βββ redis-enterprise-cluster/ # REC chart
β βββ redis-enterprise-database/ # REDB chart
β βββ redis-multi-namespace-rbac/ # Multi-namespace RBAC
β
βββ clusters/ # Cluster configurations
βββ orders/ # Example: Orders cluster
βββ cluster.yaml # Cluster configuration
βββ rbac.yaml # RBAC configuration
βββ argocd-cluster.yaml # Argo CD Application (cluster)
βββ argocd-rbac.yaml # Argo CD Application (RBAC)
βββ namespaces/ # Namespace definitions
βββ databases/ # Database configurations
βββ cache/ # Cache database (dev/prod)
βββ session/ # Session database (dev/prod)
| Component | Technology | Purpose |
|---|---|---|
| Container Platform | Red Hat OpenShift 4.x | Kubernetes distribution |
| Database | Redis Enterprise 8.0.10 | In-memory database |
| GitOps | Red Hat OpenShift GitOps (Argo CD) | Continuous delivery |
| Templating | Helm 3.x | Package management |
| Policy Engine | OPA Gatekeeper | Admission control |
| Operator | Redis Enterprise Operator | Lifecycle management |
| Document | Description |
|---|---|
| ARGOCD_IMPLEMENTATION_GUIDE.md | π― START HERE - Complete step-by-step implementation guide |
| OBSERVABILITY.md | π Monitoring with Prometheus and Grafana |
| TROUBLESHOOTING.md | Common production issues and solutions |
| HELM_ARCHITECTURE.md | Helm charts architecture and usage |
| MULTI_NAMESPACE.md | Multi-namespace support explanation |
| ADR-001 | Architectural decision: GitOps governance |
Following the implementation guide, you'll deploy:
- β Argo CD AppProjects (platform-team, team-orders)
- β Database namespaces (redis-orders-dev, redis-orders-prod)
- β ResourceQuotas (dev: 4 CPU/8Gi RAM, prod: 16 CPU/32Gi RAM)
- β LimitRanges (container limits)
- β Gatekeeper Operator & Instance
- β Policy Templates (mandatory labels, memory limits, immutable fields)
- β Constraints (enforcement rules)
- β Multi-namespace RBAC
- β Redis Enterprise Cluster (3 nodes)
- β Redis Databases (cache, session - dev/prod)
- β Routes for external access
- Self-service database provisioning
- Isolated dev/prod environments
- Automated compliance validation
- Centralized governance
- Resource quota management
- Policy enforcement
- Audit trail via Git
- Multi-tenant database platform
- Automated provisioning
- Standardized configurations
- Cost allocation (chargeback)
# Copy orders cluster as template
cp -r clusters/orders clusters/payments
# Edit configuration
vim clusters/payments/cluster.yaml
vim clusters/payments/argocd-cluster.yaml
# Apply
oc apply -f clusters/payments/argocd-cluster.yaml# Copy existing database as template
cp clusters/orders/databases/cache/dev.yaml \
clusters/orders/databases/analytics/dev.yaml
# Edit configuration
vim clusters/orders/databases/analytics/dev.yaml
# Create Argo CD Application
cp clusters/orders/databases/cache/argocd-dev.yaml \
clusters/orders/databases/analytics/argocd-dev.yaml
# Apply
oc apply -f clusters/orders/databases/analytics/argocd-dev.yaml- β Namespace isolation (multi-tenancy)
- β RBAC (role-based access control)
- β Resource quotas (prevent resource exhaustion)
- β Policy enforcement (automated validation)
- β Audit trail (Git history)
- β Immutability (prevent data loss)
- β Segregation of duties (AppProjects)
- β Change tracking (Git commits)
- β Approval workflow (Git pull requests)
- β Automated validation (Gatekeeper policies)
- β 40+ Production-Tested Alerts - Based on official Redis Enterprise best practices
- β Official Grafana Dashboards - Cluster, Database, Node, Shard monitoring
- β v2 Prometheus Metrics - Latest metrics from Redis Enterprise 8.0.10
- β Predictive Alerts - "Database will be full in 2 hours"
- β Certificate & License Monitoring - Prevent unexpected expirations
- β Cluster Quorum Monitoring - Detect split-brain scenarios
- β ServiceMonitor - Automatic Prometheus scraping
- β Runbook Links - Every alert links to official Redis documentation
- Latency (2) - Warning > 2ms, Critical > 5ms
- Connections (2) - No connections, excessive connections
- Throughput (2) - No requests, excessive requests
- Capacity (2) - Database full, predictive capacity
- Utilization (2) - Low hit ratio, unexpected evictions
- Synchronization (4) - Replica/CRDT sync and lag
- Nodes (5) - Health, storage, memory, CPU
- Shards (5) - Health, CPU, hot shards, proxy
- Certificates & License (6) - Expiration warnings, shard limits
- Cluster Health (3) - Quorum, primary status, cluster down
- Cluster Dashboard - Overall health and status
- Database Dashboard - Performance and metrics
- Node Dashboard - Resource monitoring
- Shard Dashboard - Shard-level details
- Active-Active - CRDB replication (optional)
- Synchronization - Replication monitoring (optional)
π Documentation:
- OBSERVABILITY.md - Complete observability guide
- ARGOCD_IMPLEMENTATION_GUIDE.md - Canonical deployment flow (including observability/logging)
- DEPLOYMENT_VALIDATION_CHECKLIST.md - Validation checks after deployment
This is a reference architecture. To adapt for your environment:
- Fork the repository
- Modify configurations for your needs
- Test in non-production environment
- Document changes
- Deploy to production
This project is provided as-is for educational and reference purposes.
- Documentation: See
docs/directory - Issues: Check
docs/TROUBLESHOOTING.md - Questions: Open a GitHub issue
- Red Hat OpenShift team
- Redis Enterprise team
- Argo CD community
- Open Policy Agent community
Built with β€οΈ for Enterprise Redis deployments on OpenShift