Introduction
This article is meant for all those that want to get started with Camunda 8 and want to learn more about it.
Additionally, there will be some references, for a start, the ones used to write this same article, which can be found in Camunda's documentation.
The focus is to use a local Kubernetes cluster, as in a real case scenario, it's closer to what is going to be used, even that it has some slight differences, like the Kubernetes environment of choice.
For this specific case, KIND will be used.
There are other kinds of distribuitions/runtimes, such as Docker, but won't be covered in this article.
If you want to pursue that path, you can find more information here.
What will we need?
For the sake of this introductory article, the following components will be needed:
- KIND
- kubectl
- helm
Step 1 - Install Homebrew
Not being strictly necessary, we will start by installing Homebrew.
This tool will make all the necessary package installation smoothly.
To install Homebrew, please check the documentation that suits better your case, here.
In general, Homebrew installation is done, by running one command from a Terminal window:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Step 2 - Install KIND
Now that you have Homebrew locally installed, you just need to run the following command, again from Terminal, to install KIND:
brew install kind
Step 3 - Install Kubectl
To install Kubectl, going back to your Terminal window, please run:
brew install kubectl
Step 4 - Install Helm
Following the same approach, to install helm using Homebrew, you can run the following command from your Terminal:
brew install helm
Step 5 - Deploy Camunda 8
Now that you both have KIND, Kubectl and Helm, please run the following from your Terminal, in order to locally deploy Camunda 8:
Step 5.1 - Create a local Kubernetes cluster:
kind create cluster --name camunda-local
Step 5.2 - Switch to the newly created cluster context
kubectl cluster-info --context kind-camunda-local
Step 5.3 - Deploy Camunda 8
Before you run the command, please download this YAML file (camunda-platform-core-kind-values.yaml) into your local filesystem.
The YAML file will define which components will be or not be used in the helm package installation.
Let's first analyze it:
global:
identity:
auth:
# Disable the Identity authentication for local development
# it will fall back to basic-auth: demo/demo as default user
enabled: false
# Disable identity as part of the Camunda core
identity:
enabled: false
optimize:
enabled: false
operate:
enabled: true
# Reduce for Zeebe and Gateway the configured replicas and with that the required resources
# to get it running locally
zeebe:
clusterSize: 1
partitionCount: 1
replicationFactor: 1
pvcSize: 10Gi
zeebe-gateway:
replicas: 1
connectors:
enabled: true
inbound:
mode: disabled
elasticsearch:
master:
replicaCount: 1
# Request smaller persistent volumes.
persistence:
size: 15Gi
To keep it simpler and as it can be perceived from reading the above file, there's no authentication set using some Identity provider. However, this can be done following Camunda's documentation, which can be found here.
Also, keeping the sake of simplicity, Ingress will not be installed. if you want to install it, please follow Camunda's documentation here.
As you get familiar with Camunda 8 and want to further develop your skills, it's recommended to read the documentation indicated above and follow it, even that in the remaining of this article, we are not going to follow that path.
Keeping the mentioned path, you will need to run next:
helm repo add camunda https://helm.camunda.io
helm repo update
And then, from the same directory where you stored the YAML file:
helm install camunda-platform camunda/camunda-platform \
-f camunda-platform-core-kind-values.yaml
You will now see the that Camunda 8 will be deployed in your local KIND cluster.
It's possible that you may run into some issues, namely if you don't have enough space in your Docker virtual disk.
In order to validate if your installation status, please run the following command from your Terminal:
kubectl get pods
, until you see something like:
NAME READY STATUS RESTARTS AGE
camunda-platform-connectors-dff8f68b4-jhjk6 1/1 Running 0 5m35s
camunda-platform-elasticsearch-master-0 1/1 Running 0 5m35s
camunda-platform-operate-555dcd8c49-kv4nn 1/1 Running 0 5m35s
camunda-platform-tasklist-57ccfbd9c8-gnxzh 1/1 Running 0 5m35s
camunda-platform-zeebe-0 1/1 Running 0 5m35s
camunda-platform-zeebe-gateway-6bf466485f-fcmsf 1/1 Running 0 5m35s
If you get a similar result from the command, that means that you were able to deploy Camunda 8 successfully in your local KIND cluster.
If not, please review your local Docker settings as all images installed by Helm are Docker images and without all the needed resources, the installation may fail.
For instance, without enough virtual disk space, as mentioned, the Docker images pulled by Helm cannot be downloaded and the pods aren't able to be deployed and run.
Step 5.4 - Exposing your Camunda services externally
By default the Helm chart used doesn't expose any of the Camunda services externally, so in order to get access to, for our example: Zeebe, Operate and Tasklist, without Ingress, you need to run the following commands from your Terminal:
> kubectl port-forward svc/camunda-platform-zeebe-gateway 26500:26500 -n default
> kubectl port-forward svc/camunda-platform-operate 8081:80
> kubectl port-forward svc/camunda-platform-tasklist 8082:80
> kubectl port-forward svc/camunda-platform-connectors 8088:8080
Please note that after running one of the above commands, the port forward will lock your screen.
Note:: If you want to use the same Terminal window, you can press CTRL-Z simultaneously and then have the kubectl process running on background typing bg and then press Enter.
At this point, you can open a browser window to acess:
- Operate: http://localhost:8081
- Tasklist: http://localhost:8082
The dafault credentials for both Operate and Tasklist are:
- Username: demo
- Password: demo
As you get familiar with the Camunda platform and helm setup, please refer to the extended settings in Camunda's documentation.
Destroying the local environment
When you are done with your local Camunda 8 cluster is advisable that you release all resources.
In order to do that, please run the following command from your Terminal:
kind delete cluster --name camunda-local
Now, if you run:
kubectl get pods
, you will see that they are not available any longer.
References:
Camunda guide for a local Kubernetes cluster
Accessing components without Ingress
Combined and separated Ingress setup
Comments
0 comments
Please sign in to leave a comment.