Skip to main content

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 a airbyte-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:
Deploying multiple interconnected services:
  • Managed PostgreSQL database
  • Helm chart application
  • Proxy application for authentication
Ensuring proper deployment order:
  1. DATABASE: PostgreSQL deploys first
  2. APP: Airbyte Helm chart deploys after database
  3. PROXY: Authentication proxy deploys last
Using Qovery’s database connection details in Helm values:
  • Database host, port, credentials injected as environment variables
  • Variables referenced in airbyte-values.yaml
Integrating third-party Helm repositories:
  • Adding Airbyte’s official Helm repository
  • Deploying specific chart versions
  • Overriding values with custom configuration
  • Optional basic authentication for web access
  • Private database accessibility
  • Secrets stored securely
Proper liveness and readiness probes:
  • Initial delay to allow services to start
  • Regular health checks
  • Automatic restarts on failure
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

Airbyte deployment typically takes 5-10 minutes:
  • Database must be ready first
  • Helm chart pulls multiple images
  • Airbyte bootloader initializes the database
Check deployment status:
If you can’t access the Airbyte UI:
  1. Verify all services are deployed
  2. Check proxy application is running
  3. Ensure basic auth credentials are correct
  4. Try port-forwarding locally
If Airbyte can’t connect to the database:
  • Verify database is in RUNNING state
  • Check environment variables are set correctly
  • Review airbyte-values.yaml configuration
  • 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