Overview
This example shows how to deploy Airbyte on Qovery using Terraform. Airbyte is deployed using Helm with a PostgreSQL database and proxy for authentication. This is a complete, production-ready example.This is based on the qovery-airbyte repository - a real-world example of deploying a complex application stack with Qovery.
What You’ll Deploy
- PostgreSQL Database: Managed database for Airbyte metadata
- Airbyte (Helm): Complete Airbyte deployment from official Helm chart
- Proxy Application: Authentication proxy for Airbyte web UI
- Deployment Stages: Ordered deployment (Database → App → Proxy)
Prerequisites
Before deploying, gather these IDs from Qovery Console:File Structure
variables.tf
main.tf
airbyte-values.yaml
Create aairbyte-values.yaml file to customize Airbyte configuration:
Deployment Steps
Cleanup
Key Takeaways
This example demonstrates several advanced Terraform patterns:Multi-Service Deployment
Multi-Service Deployment
Deploying multiple interconnected services:
- Managed PostgreSQL database
- Helm chart application
- Proxy application for authentication
Deployment Stages
Deployment Stages
Ensuring proper deployment order:
- DATABASE: PostgreSQL deploys first
- APP: Airbyte Helm chart deploys after database
- PROXY: Authentication proxy deploys last
Dynamic Configuration
Dynamic Configuration
Using Qovery’s database connection details in Helm values:
- Database host, port, credentials injected as environment variables
- Variables referenced in
airbyte-values.yaml
External Helm Charts
External Helm Charts
Integrating third-party Helm repositories:
- Adding Airbyte’s official Helm repository
- Deploying specific chart versions
- Overriding values with custom configuration
Security
Security
- Optional basic authentication for web access
- Private database accessibility
- Secrets stored securely
Health Checks
Health Checks
Proper liveness and readiness probes:
- Initial delay to allow services to start
- Regular health checks
- Automatic restarts on failure
Resource Management
Resource Management
Setting appropriate CPU/memory limits:
- Minimal resources for proxy (100 CPU, 128 MB)
- Managed database with defined storage
- Cluster-wide resource permissions for Airbyte
Troubleshooting
Deployment Takes Too Long
Deployment Takes Too Long
Airbyte deployment typically takes 5-10 minutes:
- Database must be ready first
- Helm chart pulls multiple images
- Airbyte bootloader initializes the database
Cannot Access Web UI
Cannot Access Web UI
If you can’t access the Airbyte UI:
- Verify all services are deployed
- Check proxy application is running
- Ensure basic auth credentials are correct
- Try port-forwarding locally
Database Connection Issues
Database Connection Issues
If Airbyte can’t connect to the database:
- Verify database is in RUNNING state
- Check environment variables are set correctly
- Review
airbyte-values.yamlconfiguration - Check Airbyte logs for connection errors
Next Steps
GitHub Repository
Complete source code and additional documentation
Airbyte Documentation
Learn more about Airbyte
Helm Configuration
Deploy more Helm charts
Advanced Patterns
Learn advanced Terraform techniques