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
1
Clone or Create Files
2
Set Environment Variables
3
Optional: Set Basic Authentication
4
Initialize Terraform
5
Plan and Apply
6
Access Airbyte
After ~5 minutes, access Airbyte:
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