Not able to access Operate and Tasklist UI together in AKS

Hi Everyone,
I am new to Zeebe. I tried to install Zeebe full helm chart on AKS with private endpoint for ingress.

Steps:
Login to azure using Az login

az aks get-credentials -g $ResourceGroupName -n $ClusterName --overwrite-existing

# install Zeebe
kubectl create namespace zeebe
helm repo add zeebe https://helm.camunda.io
helm repo update
helm upgrade --namespace zeebe --install --wait --timeout 10m0s zb zeebe/zeebe-full-helm -f values.yaml

Below is my Values.yaml:

global:
  zeebe: "{{ .Release.Name }}-zeebe" 

cloudevents:
  enabled: false
tasklist:
  enabled: true
zeeqs:
  enabled: false

ingress-nginx:
  controller:
    service:
      annotations:
        service.beta.kubernetes.io/azure-load-balancer-internal: "true"

My expectation was that I can browse both Operate and Tasklist UI together but its not working. Only one of them is accessable via the ingress External IP.

Has anyone able to acess both Tasklist and operate Ui together in AKS or its not possible at this time?

Thanks and Regrads,
Naresh

Hey Naresh!
You need to change the Tasklist port in order to access it. You can do so within your values.yaml. See here: camunda-cloud-helm/values.yaml at main · camunda-community-hub/camunda-cloud-helm · GitHub
Of course the new port need to be different than the one for Operate.

Hopefully this resolves your problem. :slight_smile:
Best,
Thomas

Hi Thomas,
Thanks for replying. I did give a try but it does not work. I am using ingress here and changing the port in kubernetes service will not work as the ingress.yaml is hardcoded as 80.

Best Regards,
Naresh

Hey Naresh! - Sorry for the late reply. I have been on vacation for a week. :slight_smile:
Have you checked out this values yaml?

If you use it I would try to set the configuration for tasklist like this.

# Tasklist configuration for the tasklist sub chart.
tasklist:
  # Enabled if true, the tasklist deployment and its related resources are deployed via a helm release
  enabled: true

  # Service configuration to configure the tasklist service.
  service:
    # Service.type defines the type of the service https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
    type: ClusterIP
    # Service.port defines the port of the service, where the tasklist web application will be available
    port: 90

Let me know if this works. Otherwise @Zelldon might have a better idea. :wink:
-Thomas

Hi Thomas,
Thanks again for replying and I am very sorry for my late reply. I was sick for almost 10 days.

Your suggestion did not work. Because the ingress port is hardcoded to 80 as I have mentioned in my last comment.
I am using ingress controller here and one external ip to access the zeebe UIs . The default ingress configuration in the full helm chart doesnot work to access both Operate and Tasklist UI.

Naresh:~$ kubectl  get services -n zeebe
NAME                                    TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)                        AGE
elasticsearch-master                    ClusterIP      10.2.7.186   <none>        9200/TCP,9300/TCP              18m
elasticsearch-master-headless           ClusterIP      None         <none>        9200/TCP,9300/TCP              18m
zb-ingress-nginx-controller             LoadBalancer   10.2.7.241   10.2.5.129    80:30022/TCP,443:30766/TCP     18m
zb-ingress-nginx-controller-admission   ClusterIP      10.2.7.215   <none>        443/TCP                        18m
zb-zeebe                                ClusterIP      None         <none>        9600/TCP,26502/TCP,26501/TCP   18m
zb-zeebe-gateway                        ClusterIP      10.2.7.114   <none>        9600/TCP,26500/TCP             18m
zb-zeebe-operate-helm                   ClusterIP      10.2.7.176   <none>        80/TCP                         18m
zb-zeebe-tasklist-helm                  ClusterIP      10.2.7.225   <none>        80/TCP                         18m

Naresh:~$ kubectl get ingress -n zeebe
NAME                     CLASS   HOSTS   ADDRESS      PORTS   AGE
zb-zeebe-operate-helm    nginx   *       10.2.5.129   80      18m
zb-zeebe-tasklist-helm   nginx   *       10.2.5.129   80      18m

I can share my values.yaml that I used:

global:
  zeebe: "{{ .Release.Name }}-zeebe"
  
cloudevents:
  enabled: false
tasklist:
  enabled: true
zeeqs:
  enabled: false 

ingress-nginx:
  controller:
    service:
      annotations:
        service.beta.kubernetes.io/azure-load-balancer-internal: "true"

zeebe-tasklist-helm:
  service:
    type: ClusterIP
    port: 80

  ingress:
    enabled: true
    annotations:
      ingress.kubernetes.io/ingress.class: nginx
      ingress.kubernetes.io/rewrite-target: "/$2"
      nginx.ingress.kubernetes.io/ssl-redirect: "false"    
    path: /tasklist
    host: 
    tls:
      enabled: false
      secretName:

zeebe-operate-helm:
  service:
    type: ClusterIP
    port: 80

  ingress:
    enabled: true
    annotations:
      ingress.kubernetes.io/ingress.class: nginx
      ingress.kubernetes.io/rewrite-target: "/"
      nginx.ingress.kubernetes.io/ssl-redirect: "false"    
    path: /
    host: 
    tls:
      enabled: false
      secretName:

Let me know if you able to replicate this issue.

Hi Everyone,
I found the solution. I was trying to use only path parameter to differentiate the ingress flow between operate and task UI. But it seems that this does not work here. That is my bad. When I used different host name for tasklist and operate then it starts working.

@Hafflgav Thank you very much for your help.

My solution is as follows, I adjusted the values.yaml for Zeebe-full-helm-chart:

global:
  zeebe: "{{ .Release.Name }}-zeebe"

cloudevents:
  enabled: false
tasklist:
  enabled: true
zeeqs:
  enabled: false 

ingress-nginx:  
  controller:
    service:
      annotations:
        service.beta.kubernetes.io/azure-load-balancer-internal: "true"

zeebe-tasklist-helm:
  ingress:
    enabled: true
    annotations:
      ingress.kubernetes.io/ingress.class: nginx
      ingress.kubernetes.io/rewrite-target: "/"
      nginx.ingress.kubernetes.io/ssl-redirect: "false"    
    path: /
    host: tasklist.zeebe.weud
    tls:
      enabled: false
      secretName:

zeebe-operate-helm:
  ingress:
    enabled: true
    annotations:
      ingress.kubernetes.io/ingress.class: nginx
      ingress.kubernetes.io/rewrite-target: "/"
      nginx.ingress.kubernetes.io/ssl-redirect: "false"    
    path: /
    host: operate.zeebe.weud
    tls:
      enabled: false
      secretName:
1 Like

I have written a blog on deploying Camunda 8 using helm charts. Hope this helps