Prerequisites
- Kubernetes cluster (1.27+)
- Helm (version 3.x)
- kubectl configured for cluster access
- Storage provisioner for persistent volumes
- 16 GB RAM minimum per node (32 GB recommended)
Helm charts
Infrahub provides two Helm charts:- infrahub - Community edition
- infrahub-enterprise - Enterprise edition with HA features
Chart repositories
Chart structure
The Enterprise chart uses the Community chart as a dependency. Most configuration goes under theinfrahub key:
values.yml
Quick start
Community edition
Deploy with default settings (not suitable for production):Enterprise edition
Deploy with medium sizing preset (32 GB RAM):Configuration
Minimal production configuration
Create avalues.yml file with production settings:
values.yml
Sizing presets
Enterprise charts include pre-configured sizing presets:| Flavor | Chart version | RAM required | API workers | Task workers |
|---|---|---|---|---|
| small | 4.0.0-small | 16 GB | 4 | 2 |
| medium | 4.0.0-medium | 32 GB | 4 | 4 |
| medium-data | 4.0.0-medium-data | 32 GB | 4 | 2 |
| large | 4.0.0-large | 64 GB | 4 | 8 |
| large-data | 4.0.0-large-data | 64 GB | 4 | 2 |
Redis configuration for flavored charts
When using sizing presets, configure Redis host for Prefect:values.yml
infrahub-cache-master).
Storage configuration
Persistent volumes
Enable persistence for Neo4j:values.yml
S3 object storage
Configure S3 for artifacts (required for multiple API replicas):values.yml
High availability
Neo4j cluster (Enterprise only)
Deploy a 3-node Neo4j cluster:neo4j-values.yaml
RabbitMQ cluster
Deploy clustered RabbitMQ:rabbitmq-values.yaml
Redis Sentinel
Deploy Redis with Sentinel for high availability:redis-values.yaml
Networking
Ingress configuration
Enable ingress for external access:values.yml
Load balancer
For cloud providers, use LoadBalancer service type:values.yml
Upgrading
Upgrade chart
Upgrade to a new version:Migrate from chart versions before 4.0.0
If upgrading from chart versions earlier than 4.0.0:- Remove sizing preset environment variables from
values.yml - Add Redis host configuration for Prefect:
- Run the upgrade:
Monitoring
Enable metrics
Configure Prometheus metrics:values.yml
Health checks
Verify pod health:Troubleshooting
View logs
View API server logs:Restart deployments
Restart API servers:Database connectivity
Test Neo4j connectivity:Production recommendations
Storage persistence
- Enable persistence for Neo4j database at minimum
- Use SSD-backed storage classes for better performance
- Configure backup strategies for persistent volumes
External dependencies
For production, use managed services instead of bundled dependencies:- Managed Neo4j (Neo4j Aura, cloud provider)
- Managed RabbitMQ (CloudAMQP, cloud provider)
- Managed Redis (Redis Enterprise, cloud provider)
- Managed PostgreSQL (RDS, Cloud SQL)
- Managed S3 (AWS S3, GCS, Azure Blob)
Security
- Enable network policies for pod-to-pod communication
- Use secrets instead of environment variables
- Enable TLS for all database connections
- Restrict ingress to specific IP ranges
- Enable pod security policies
Related resources
- Installation guide - Complete installation instructions
- Configuration reference - All environment variables
- Docker Compose deployment - Deploy with Docker Compose
- Backup and restore - Protect your data
- Monitoring - Monitor your deployment
- Infrahub Helm Chart
- Infrahub Enterprise Helm Chart