Airbyte is an open-source data integration platform that syncs data from applications, APIs, and databases to data warehouses, lakes, and other destinations. It is a modern and easy-to-use platform that helps you replicate your data in minutes.
In this tutorial, you will learn how to deploy Airbyte on Kubernetes with Qovery in 5 minutes.
This tutorial is related to this forum thread
TLDR;
- Time to install EKS production ready cluster: 2 minutes setup
- Time to install Airbyte: 3 minutes
- No EKS / GKE / Kapsule knowledge and maintenance required (Qovery takes care of it)
- Secure access via Basic Auth and Built-in authenticated port forwarding
Watch the video below to see how easy it is to deploy Airbyte on Kubernetes with Qovery:
Qovery is a developer-friendly platform that allows you to deploy your applications on any cloud provider in just a few clicks. It is a great platform for developers who want to focus on building their applications without worrying about the infrastructure.
Before you start, you need to have the following:
- A Qovery account
- Create a Kubernetes Cluster in Qovery
- Terraform on your local machine
- Clone this repository
- Adapt the airbyte-values.yaml file to your needs (optional)
- Run
terraform init
- Set the following environment variables:
TF_VAR_qovery_access_token
- Your Qovery API tokenTF_VAR_qovery_organization_id
- Your Qovery organization ID where to deploy AirbyteTF_VAR_qovery_project_id
- Your Qovery project ID where to deploy AirbyteTF_VAR_qovery_cluster_id
- Your Qovery cluster ID where to deploy AirbyteTF_VAR_qovery_airbyte_web_app_proxy_basic_auth
- Basic authentication for Airbyte Web App Proxy (optional)
export TF_VAR_qovery_access_token="your_qovery_api_token" \
TF_VAR_qovery_organization_id="your_qovery_organization_id" \
TF_VAR_qovery_project_id="your_qovery_project_id" \
TF_VAR_qovery_cluster_id="your_qovery_cluster_id"
# Optional
# export TF_VAR_qovery_airbyte_web_app_proxy_basic_auth="username:$apr1$jpwW4vG9$fwbzWBgRqARzNX93plDq20"
- Run
terraform apply
- Connect to your Qovery project and environment, you should see an environment called
airbyte-production
within your project. - Deploy your
airbyte-production
environment
- Run
terraform destroy
- Update the Airbyte configuration in the
airbyte-values.yaml
andmain.tf
files - Run
terraform apply
- Redeploy the application in Qovery
As mentioned by Airbyte:
Airbyte Kubernetes Community Edition does not support basic auth by default. To enable basic auth, consider adding a reverse proxy in front of Airbyte.
But luckily, Qovery supports basic authentication out of the box. You can enable basic authentication for your Airbyte Web App Proxy
instance by following the steps below:
- Generate password hash with
htpasswd
:
$ htpasswd -n <username>
New password:
Re-type new password:
username:$apr1$jpwW4vG9$fwbzWBgRqARzNX93plDq20
- Set
TF_VAR_qovery_airbyte_web_app_proxy_basic_auth
environment variable with the generated password hash:
export TF_VAR_qovery_airbyte_web_app_proxy_basic_auth="username:$apr1$jpwW4vG9$fwbzWBgRqARzNX93plDq20"
- Run
terraform apply
- Redeploy the
Airbyte Web App Proxy
in Qovery
If you don't want to publicly expose your Airbyte instance, you can access it securely via port forwarding.
You can disable the public access to your Airbyte instance by setting the
publicly_accessible
value tofalse
in themain.tf
file forairbyte_webapp_proxy
.
Qovery provides a built-in authenticated port forwarding feature that allows you to access your services securely. You can access your Airbyte instance by following the steps below:
- Install the Qovery CLI by following the instructions here
- Run the following command to forward the Airbyte service to your local machine:
qovery port-forward -p 8000:80
- Access Airbyte by visiting
http://localhost:8000