Get started

This guide describes how to deploy Charmed Feast along with Charmed Kubeflow (CKF), including requirements, environment setup, and deployment steps using Terraform.

Note

This content is intended for system administrators and MLOps engineers.

CKF provides a simple, out-of-the-box way to deploy Kubeflow. Charmed Feast bundle adds a fully integrated feature store to that deployment.

Requirements

  • Ubuntu 22.04 or later.

  • A host machine with at least:

    • 4-core CPU processor.

    • 32 GB RAM.

    • 50 GB available disk space.

Install and configure dependencies

CKF relies on:

  • Kubernetes (K8s): This tutorial uses MicroK8s, a zero-ops Kubernetes distribution.

  • Juju: A software orchestration engine used to deploy and manage Charmed Feast and CKF.

Install MicroK8s

Install MicroK8s using Snapcraft:

sudo snap install microk8s --channel=1.32/stable --classic

Add your user to the MicroK8s group:

sudo usermod -a -G microk8s $USER

Apply the new group permissions:

newgrp microk8s

See Get started with MicroK8s for more details.

Enable MicroK8s addons:

sudo microk8s enable dns hostpath-storage metallb:10.64.140.43-10.64.140.49 rbac

Check the status:

microk8s status

Install Juju

Install Juju using Snapcraft:

sudo snap install juju --channel=3.6/stable

Ensure the required local directory exists:

mkdir -p ~/.local/share

See Get started with Juju for more details.

Configure Juju

Add your MicroK8s cluster to Juju:

microk8s config | juju add-k8s my-k8s --client

Bootstrap a Juju controller:

juju bootstrap my-k8s uk8sx

Deploy Charmed Feast along with CKF

You can deploy Charmed Feast together with CKF using Terraform.

Start by cloning the solution repository:

git clone https://github.com/canonical/charmed-kubeflow-solutions.git
cd charmed-kubeflow-solutions/modules/kubeflow-feast/

Install Terraform:

sudo snap install terraform --classic

Initialise and apply the deployment:

terraform init
terraform apply -auto-approve

Note

This process may take several minutes.

Once completed, both Charmed Feast and CKF will be fully deployed and integrated.

Check component status

After the deployment, the bundle components need some time to initialise and establish communication with each other.

Note

This process may take up to 20 minutes.

Check the status of the components as follows:

juju switch kubeflow
juju status

Use the watch option to continuously track their status:

juju status --watch 5s

You should expect an output like this:

Model     Controller       Cloud/Region         Version  SLA          Timestamp
kubeflow  uk8sx            my-k8s/localhost     3.6.4    unsupported  16:12:02Z

App                   Version         Status  Scale  Charm                Channel      Rev  Address         Exposed  Message
feast-integrator                                  active       1  feast-integrator         latest/edge        72  10.152.183.67   no
feast-offline-store      14.15                    active       1  postgresql-k8s           14/stable         495  10.152.183.66   no
feast-online-store       14.15                    active       1  postgresql-k8s           14/stable         495  10.152.183.236  no
feast-registry           14.15                    active       1  postgresql-k8s           14/stable         495  10.152.183.252  no
feast-ui                                          active       1  feast-ui                 latest/edge        42  10.152.183.47   no

Unit                  Workload  Agent  Address      Ports  Message
feast-integrator/0*         active    idle   10.1.202.83
feast-offline-store/0*      active    idle   10.1.202.122                 Primary
feast-online-store/0*       active    idle   10.1.202.102                 Primary
feast-registry/0*           active    idle   10.1.202.123                 Primary
feast-ui/0*                 active    idle   10.1.202.121

CKF is ready when all the applications and units are in active status. During the configuration process, some components may temporarily show a blocked or error state, which is expected and usually resolves automatically.

Access your deployment

You can interact with CKF using a web dashboard accessible via an IP address.

Set the dashboard login credentials:

juju config dex-auth static-username=admin
juju config dex-auth static-password=admin

Retrieve the dashboard IP address:

microk8s kubectl -n kubeflow get svc istio-ingressgateway-workload -o jsonpath='{.status.loadBalancer.ingress[0].ip}'

You should see something like the following:

10.64.140.43

Navigate to the IP address in your browser. Use the credentials previously set.

Once logged in, you should see the Kubeflow welcome page. Click Start Setup, create a namespace for your work, and finally click Finish to continue to the dashboard.

You will see a Feast tab in the left-hand sidebar. It provides access to the Charmed Feast User Interface directly from the Kubeflow dashboard.