Self Managed Setup

Hi Team,
I am trying to run the local self-managed application in my development environment (Windows).
Its gave me the success response. But unable to see any of the URL is running in the browser.
Can anyone help me on this ?
Below is the log of helm install command for deployment
Reference Document:

PS C:\camunda8-environment> helm install camunda-platform camunda/camunda-platform -f camunda-platform-core-kind-values.yaml
NAME: camunda-platform
LAST DEPLOYED: Mon Dec 11 14:45:45 2023
NAMESPACE: default
STATUS: deployed
REVISION: 1
NOTES:

(camunda-platform - 8.3.3)

### ## ## ## ## ## ## ########

## ## ## ### ### ## ## ### ## ## ## ##

## ## #### #### ## ## #### ## ## ## ##

## ## ## ### ## ## ## ## ## ## ## ## ##

######### ## ## ## ## ## #### ## ##

## ## ## ## ## ## ## ## ### ## ## ##

## ## ## ## ####### ## ## ######## ##

###################################################################

Installed Services:

  • Zeebe:
    • Enabled: true
    • Docker Image used for Zeebe: camunda/zeebe:8.3.3
    • Zeebe Cluster Name: “camunda-platform-zeebe”
    • Prometheus ServiceMonitor Enabled: false
  • Operate:
    • Enabled: true
    • Docker Image used for Operate: camunda/operate:8.3.3
  • Tasklist:
    • Enabled: true
    • Docker Image used for Tasklist: camunda/tasklist:8.3.3
  • Optimize:
    • Enabled: false
  • Connectors:
    • Enabled: true
    • Docker Image used for Connectors: camunda/connectors-bundle:8.3.1
  • Identity:
    • Enabled: false
  • Web Modeler:
    • Enabled: false
  • Elasticsearch:

Zeebe

The Cluster itself is not exposed as a service which means that you can use kubectl port-forward to access the Zeebe cluster from outside Kubernetes:

kubectl port-forward svc/camunda-platform-zeebe-gateway 26500:26500 -n default

Now you can connect your workers and clients to localhost:26500

Connecting to Web apps

As part of the Helm charts, an ingress definition can be deployed, but you require to have an Ingress Controller for that Ingress to be Exposed.
In order to deploy the ingress manifest, set <service>.ingress.enabled to true. Example: operate.ingress.enabled=true

If you don’t have an ingress controller you can use kubectl port-forward to access the deployed web application from outside the cluster:

Operate:

kubectl port-forward svc/camunda-platform-operate 8081:80
Tasklist:
kubectl port-forward svc/camunda-platform-tasklist 8082:80

Connectors:

kubectl port-forward svc/camunda-platform-connectors 8088:8080

Now you can point your browser to one of the service’s login pages. Example: http://localhost:8081 for Operate.

Default user and password: “demo/demo”

Console config

PS C:\camunda8-environment> kubectl get pods
NAME READY STATUS RESTARTS AGE
camunda-platform-connectors-76596f4787-wptbj 1/1 Running 0 68m
camunda-platform-elasticsearch-master-0 0/1 Pending 0 68m
camunda-platform-elasticsearch-master-1 0/1 Pending 0 68m
camunda-platform-operate-75646c4dc5-w97lv 0/1 CrashLoopBackOff 11 (2m24s ago) 68m
camunda-platform-tasklist-78479bf9d5-x2mnq 0/1 CrashLoopBackOff 11 (3m7s ago) 68m
camunda-platform-zeebe-0 1/1 Running 0 68m
camunda-platform-zeebe-gateway-6c457775b-hfzv2 1/1 Running 0 68m

Hi @vinothkumar - did you configure any port forwarding or add an ingress controller?

Not yet @nathan.loding ,
This is just a local setup in the dev environment trying

@nathan.loding ,
Can you please share if you have any steps to follow ?

@vinothkumar - it doesn’t matter where it was deployed; Kubernetes requires port forwarding or an ingress controller, otherwise it doesn’t know how/where to route traffic. The output of the helm install command includes some of this information (If you don’t have an ingress controller you can use kubectl port-forward to access the deployed web application from outside the cluster:)

Or, you can refer to our guides for both scenarios:

@nathan.loding ,
Yes. I completely understand. But when I try to check my pod, it is still in pending status always. Elastic Search is not getting up.

PS C:\camunda8-environment> kubectl get pods
NAME READY STATUS RESTARTS AGE
camunda-platform-connectors-76596f4787-wptbj 1/1 Running 0 68m
camunda-platform-elasticsearch-master-0 0/1 Pending 0 68m
camunda-platform-elasticsearch-master-1 0/1 Pending 0 68m
camunda-platform-operate-75646c4dc5-w97lv 0/1 CrashLoopBackOff 11 (2m24s ago) 68m
camunda-platform-tasklist-78479bf9d5-x2mnq 0/1 CrashLoopBackOff 11 (3m7s ago) 68m
camunda-platform-zeebe-0 1/1 Running 0 68m
camunda-platform-zeebe-gateway-6c457775b-hfzv2 1/1 Running 0 68m

@vinothkumar - apologies, I misread your initial post! I saw your comment about not seeing the URLs, but missed that the pods hadn’t started.

What do the events in Kubernetes show for the pods? What do the logs show? Can you share your Helm values.yaml file? What are you running Kubernetes on locally (kind, minikube, etc.)?

I suspect Operate and Tasklist can’t start because Elasticsearch isn’t started, so I would start troubleshooting Elastic first.

I am using Kind,
my yml file is: https://github.com/camunda/camunda-platform-helm/blob/72771dc6a98c3e7ef5714dc04b1e9594d363f159/kind/camunda-platform-core-kind-values.yaml

@vinothkumar - I would recommend checking the events and logs of the pods. There are a few ways to do that. When working locally, I like to use the tool k9s to work with my kind cluster. I find it easier to work with than just using kubectl, but you can get the same information with kubectl, k9s, and other tools.

My first thought is that you need to give Docker more resources; I had to increase the resources from the default Docker configuration on my workstation. But we won’t know until you review the events and logs.

I also have a slightly different values file available in the blog post below. It requires slightly less resources than the one in the GitHub repo, but is nearly identical. The blog also gives a high level overview of k9s if that’s a tool you want to explore.

@nathan.loding ,
Do we have any documentation where we can setup guide step by step for our dev environment at least for basic POC purpose.

@vinothkumar - there will always be small changes that need to be made. It depends on what CPU and how much RAM your workstation has, how much of that you’ve allocated to the containers … there’s likely going to be a small amount of tweaking for some users.

That said, the blog post is a complete guide to getting a simple installation working locally. It is a longer form of this guide in our documentation: Local Kubernetes Cluster | Camunda 8 Docs

I think using Docker is easier to locally, especially if you’re not already comfortable with Kubernetes. Kubernetes has some stricter limits around resource availability, while Docker seems happy to just max everything you gave it. We have a docker-compose configuration that is as ready “out of the box” as possible - just grab the docker-compose file from the repository, and run docker compose up -d and it should work.

Thanks for your detail response.

Hello Guys,

I have the same issue to access to the web apps via the browser.

With the first option port-forward it was ok for me .

But when I want to add ingress it never worked .

How can tell the different steps to make it working . Let’ you know that I installed the nginx-controller I updated my values.yaml file I used the same file on the Camunda site for local install with ingress.

Thanks

Hi @Ritaa, welcome to the forums! We have a guide coming out soon that details how to set up an ingress controller locally with kind, I’ll set a reminder to share it here when it’s released.

For your specific questions, are you running Camunda on kind, or deployed on a different local Kubernetes environment, or somewhere in the cloud?

Hello @nathan.loding

Thanks for your answer . I installed it on a kind cluster . I used docker desktop under Windows.

I have another question about the self-managed installation on air-gapped environnement. How we can use thé helm charts that camunda Share and put thème to our own helm chart repository .

Thanks
Ritaa

Hi @Ritaa - it would be best to start a new topic with your air-gapped install questions.

For kind, it requires some additional steps to configure the ingress controller, which you can find in their docs here:

https://kind.sigs.k8s.io/docs/user/ingress/

The Nginx ingress also requires certificates to work with both HTTP and HTTP/2 traffic, so you will need to add certificates as well.

ok thanks @nathan.loding I will test it and let you know if it works for me.

Just a quick question I want to understand when we do this command
helm install camunda-platform camunda/camunda-platform --values https://helm.camunda.io/camunda-platform/values/values-latest.yaml

which file will be overriden on the camunda/camunda-platfrom helm chart.

Could we update manually on the camunda helm chart values.yaml file with the values that we want and then execute directly without the option of override ?

helm install camunda-platform camunda/camunda-platform

@Ritaa - I believe to do that you would need to fork our charts repository and update the default values. I don’t think I’d recommend that approach, because you would need to keep your fork up to date with all our changes and releases.

You can learn more about how Helm handles charts and values in their documentation:

Thanks @nathan.loding .

If we don’t want to use elasticSearch ou our application so that means we will not be able to use operate , tasklist and optimize web apps , is it right ?

Si if yes the only way to handle the processus instances and usertasks will be only via grpc , is it right ?

Thanks

Hi @Ritaa - that is correct. We are working on OpenSearch support for those applications, but it is not fully supported at this time (I believe the 8.5 release has full OpenSearch support planned, but I could be mistaken).

There are two community-maintained projects, zeebe-simple-tasklist and zeebe-simple-monitor, that do not use Elasticsearch and instead use Hazelcast. Otherwise you would need to build your own frontend (but those two projects provide a good example on how to do that!)

You can configure an exporter for Zeebe, which gives you control over where the data is exported to. There are handful of community exporters already and you can always develop your own also!