In this deployment, we'll setup a simple Minikube cluster and deploy Postgres and Redis within it. Then we will deploy Featureform on the Minikube deployment and configure it with Postgres as an Offline Store and Redis as an Inference Store.
Docker is an open platform for developing, shipping, and running applications. We will run Docker containers for Postgres, Redis, and all of the Featureform services on Minikube. It can be downloaded here.
minikube is a local Kubernetes deployment made for testing and exploring Kubernetes. It is not made for production, but mimics most of the main functionality of a production Kubernetes cluster. Follow their tutorial to deploy and configure a local Minikube cluster. minikube is the only feature-complete version of our Quickstarts that can be run locally and used to test features (such as scheduling) that are unavailable for localmode or Docker.
Helm is a package manager for Kubernetes. We can use it to deploy Featureform, Postgres, and Redis on our minikube deployment. But first, we have to install it using their guide.
Cert-manager allows us to create self-signed and public TLS certificates for connecting the Python client to Featureform.
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install certmgr jetstack/cert-manager \
--set installCRDs=true \
--version v1.8.0 \
--namespace cert-manager \
Deploying Featureform is simple using Helm.
helm repo add featureform https://storage.googleapis.com/featureform-helm/
helm repo update
helm install my-featureform featureform/featureform --set global.publicCert=false
This is starts a vanilla Featureform deployment, but it can be further configured using a set of Helm variables.
Our Featureform cluster generated a self-signed TLS certificate that can be used for testing locally.
To save it, we run:
kubectl get secret featureform-ca-secret -o=custom-columns=':.data.tls\.crt'| base64 -d > tls.crt
We will use this later when connecting with the Python client.
To access our cluster, we need to enable minikube's ingress and network tunnel.
minikube addons enable ingress
We provide an additional helm chart that contains Redis and Postgres, as well as a loading job that fills Postgres with demo data.
helm install quickstart featureform/quickstart
Now that all of our infrastructure is deployed, we can add Postgres and Redis as providers for Featureform using the Python API and Featureform CLI, which can be seen in our Quickstart guide.
Since we're using a self-signed certificate, we can run the CLI using the certificate flag instead.
featureform apply <file> --cert tls.crt