Set up your environment

Charmed Airbyte runs on Kubernetes and is operated with Juju. In this step you install MicroK8s and Juju, then bootstrap the controller and model used throughout the tutorial.

Set up MicroK8s

Charmed Airbyte relies on Kubernetes as a container orchestration system. For this tutorial, you use MicroK8s, a lightweight distribution of Kubernetes.

Install MicroK8s and give your user the required permissions by adding it to the snap_microk8s group and taking ownership of the ~/.kube directory:

sudo snap install microk8s --channel 1.34-strict/stable
newgrp snap_microk8s
sudo usermod -a -G snap_microk8s $USER
sudo chown -f -R $USER ~/.kube

Enable the necessary MicroK8s add-ons:

sudo microk8s enable hostpath-storage dns

For convenience, set up a short alias for the Kubernetes CLI:

sudo snap alias microk8s.kubectl kubectl

Set up Juju

Charmed Airbyte uses Juju as the orchestration engine for software operators. Install it and connect it to your MicroK8s cloud.

Install juju from a snap:

sudo snap install juju --channel 3.6/stable

Since the Juju package is strictly confined, manually create the path it expects:

mkdir -p ~/.local/share

Juju recognises a MicroK8s cloud automatically, as you can see by running juju clouds:

Cloud      Regions  Default    Type  Credentials  Source    Description
localhost  1        localhost  lxd   0            built-in  LXD Container Hypervisor
microk8s   1        localhost  k8s   1            built-in  A Kubernetes Cluster

If for any reason MicroK8s is not recognised, register it manually with juju add-k8s microk8s.

Next, bootstrap a Juju controller into your MicroK8s cloud. In this tutorial, the controller is named airbyte-controller:

juju bootstrap microk8s airbyte-controller

Finally, create a model on this controller. In this tutorial, the model is named airbyte-model; Juju creates a matching Kubernetes namespace:

juju add-model airbyte-model

After this, juju status shows something similar to:

Model          Controller          Cloud/Region        Version  SLA          Timestamp
airbyte-model  airbyte-controller  microk8s/localhost  3.6.12   unsupported  12:45:50+03:00

Model "admin/airbyte-model" is empty.

You are now ready to deploy the supporting charms.