04 - Deploy Charmed Airbyte¶
This part of the tutorial explains how to deploy the Charmed Airbyte application and integrate it with its supporting components deployed in the previous step.
1. Deploy Charmed Airbyte¶
Deploy Airbyte using the official charm:
juju deploy airbyte-k8s --channel edge --trust
Verify the deployment:
juju status --watch 2s
Initially, Airbyte will be in a blocked state with a message such as:
database relation not ready
Relations will be added in the next steps.
2. Integrate Airbyte with MinIO (Object Storage)¶
Airbyte requires object storage for logs, artifacts, and state.
Add the relation between MinIO and Airbyte:
juju relate minio airbyte-k8s
Expected status after the relation settles:
airbyte-k8s/0: active | waiting for database connection
3. Integrate Airbyte with PostgreSQL (Metadata Database)¶
Airbyte depends on PostgreSQL to store metadata, configuration, and job history.
Add the relation between PostgreSQL and Airbyte:
juju relate postgresql-k8s airbyte-k8s
Airbyte will transition to a new blocked state until Temporal is related:
temporal relation not ready
4. Integrate Airbyte with Temporal (Workflow Engine)¶
Airbyte depends on two Temporal charms:
temporal-k8s— the Temporal workflow enginetemporal-admin-k8s— provides UI and admin capabilities
Add the relations:
juju relate temporal-k8s:db postgresql-k8s:database
juju relate temporal-k8s:visibility postgresql-k8s:database
juju relate temporal-k8s:admin temporal-admin-k8s:admin
After all relations and configurations are applied:
juju status
All applications (airbyte-k8s, temporal-k8s, temporal-admin-k8s, postgresql-k8s, minio) should eventually show active status. At this point, Airbyte is fully operational.
Model Controller Cloud/Region Version SLA Timestamp
airbyte-model airbyte-controller microk8s/localhost 3.6.11 unsupported 14:00:29+03:00
App Version Status Scale Charm Channel Rev Address Exposed Message
airbyte-k8s v1.7.0 active 1 airbyte-k8s latest/edge 18 10.x.x.x no
airbyte-webhooks-k8s active 1 airbyte-webhooks-charm latest/edge 12 10.x.x.x no
minio res:oci-image@7f2474f active 1 minio ckf-1.10/stable 459 10.x.x.x no
temporal-admin-k8s 1.23.1 active 1 temporal-admin-k8s latest/edge 13 10.x.x.x no
temporal-k8s 1.23.1 active 1 temporal-k8s latest/edge 45 10.x.x.x no
Unit Workload Agent Address Ports Message
airbyte-k8s/0* active idle 10.x.x.x
minio/6* active idle 10.x.x.x 9000-9001/TCP
temporal-admin-k8s/0* active idle 10.x.x.x
temporal-k8s/0* active idle 10.x.x.x
Integration provider Requirer Interface Type Message
airbyte-k8s:airbyte-peer airbyte-k8s:airbyte-peer airbyte peer
minio:object-storage airbyte-k8s:object-storage object-storage regular
postgresql:database airbyte-k8s:db postgresql_client regular
postgresql:database temporal-k8s:db postgresql_client regular
postgresql:database temporal-k8s:visibility postgresql_client regular
temporal-admin-k8s:admin temporal-k8s:admin temporal regular
temporal-admin-k8s:peer temporal-admin-k8s:peer temporal-admin peer
temporal-k8s:peer temporal-k8s:peer temporal peer
Next steps¶
See Secure Airbyte deployments for information on securing your deployment.