Deploy Buildly to Minikube

Overview

This tutorial explains how to deploy Buildly to an existing Minikube cluster.

Once you deploy Buildly to your cluster, it will be able to start receiving requests, and connecting with all of your other services.

Deploy Buildly with Helm

Requirements

The only requirements for this tutorial are:

  1. A Minikube instance up and running in your local machine.
  2. kubectl installed and configured to access your Minikube instance.
  3. Helm also installed and configured.
  4. Have a PostgreSQL database instance up and running.

Ensure minikube and kubectl are running by entering:

minikube status
kubectl cluster-info
kubectl get nodes

Ensure helm is initalized by running:

helm init

Deploy Buildly to Kubernetes clusters

The first thing you need to do is clone Buildly Helm Charts repository, where you can find the right charts to deploy Buildly to any Kubernetes cluster including local Minikube instances.

Run the following command to clone Buildly Helm Charts repository:

git clone https://github.com/buildlyio/helm-charts.git

Now, you need to create a namespace to deploy Buildly and you do it running:

kubectl create namespace buildly

The last but not least, you will execute the Helm charts but you need to pass the database connection information to Buildly when running the charts, otherwise, it won’t work because it wasn’t able to connect to the dabatase. You need to provide the database host, port(defaul=5432), username(base64 encrypted), and password(base64 encrypted). You run the following command replacing the fake data with your database connection info:

helm install . --name buildly-core --namespace buildly \
--set configmap.data.DATABASE_HOST="<db-host>" \
--set configmap.data.DATABASE_PORT="<db-port>" \
--set secret.data.DATABASE_USER="<db-user>" \
--set secret.data.DATABASE_PASSWORD="<db-pass>"

After that you should see a Buildly Core instance running in your Minikube dashboard. It has also created a ClusterIP and Ingress, so if you have a certificate manager and everything setup it should also be exposed externally. If you prefer to create a LoadBalancer instead, you can just delete the Ingress instance that was created.