Closed vctrmn closed 1 year ago
Before inspecting this issue, did you try to use the latest batch version for v8.0? 8.0.7
or the latest v8.1? 8.1.1
Hi @aabouzaid,
I tried both (8.0.7
and 8.1.1
), same behaviour
Here is a simplified version of the values.yaml :
# Chart values for the Camunda Platform 8 Helm chart in combined Ingress setup.
# This file deliberately contains only the values that differ from the defaults.
# For changes and documentation, use your favorite diff tool to compare it with:
# https://github.com/camunda/camunda-platform-helm/blob/main/charts/camunda-platform
global:
# Image configuration to be used in each sub chart
image:
# Image.tag defines the tag / version which should be used in the chart
tag: 8.1.1
identity:
auth:
publicIssuerUrl: "https://keycloak.my-domain.com/auth/realms/camunda-platform"
operate:
redirectUrl: "https://operate.my-domain.com"
tasklist:
redirectUrl: "https://tasklist.my-domain.com"
optimize:
redirectUrl: "https://optimize.my-domain.com"
zeebe:
# ClusterSize defines the amount of brokers (=replicas), which are deployed via helm
clusterSize: "1"
# PartitionCount defines how many zeebe partitions are set up in the cluster
partitionCount: "1"
# ReplicationFactor defines how each partition is replicated, the value defines the number of nodes
replicationFactor: "1"
resources:
requests:
cpu: 800m
memory: 1200Mi
limits:
cpu: 800m
memory: 1200Mi
# PvcSize defines the persistent volume claim size, which is used by each broker pod https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims
pvcSize: "16Gi"
zeebe-gateway:
# Replicas defines how many standalone gateways are deployed
replicas: 1
ingress:
enabled: true
className: public-iks-k8s-nginx
annotations:
ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
host: "zeebe.my-domain.com"
tls:
# Ingress.tls.enabled if true, then tls is configured on the ingress resource. If enabled the Ingress.host need to be defined.
enabled: true
# Ingress.tls.secretName defines the secret name which contains the TLS private key and certificate
secretName: my-domain.com
operate:
resources:
requests:
cpu: 600m
memory: 400Mi
limits:
cpu: 600m
memory: 400Mi
ingress:
enabled: true
className: public-iks-k8s-nginx
annotations:
ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
host: "operate.my-domain.com"
tls:
# Ingress.tls.enabled if true, then tls is configured on the ingress resource. If enabled the Ingress.host need to be defined.
enabled: true
# Ingress.tls.secretName defines the secret name which contains the TLS private key and certificate
secretName: my-domain.com
optimize:
# PartitionCount defines how many Zeebe partitions are set up in the cluster and which should be imported by Optimize
partitionCount: "1"
resources:
requests:
cpu: 600m
memory: 1Gi
limits:
cpu: 600m
memory: 1Gi
ingress:
enabled: true
className: public-iks-k8s-nginx
annotations:
ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
host: "optimize.my-domain.com"
tls:
# Ingress.tls.enabled if true, then tls is configured on the ingress resource. If enabled the Ingress.host need to be defined.
enabled: true
# Ingress.tls.secretName defines the secret name which contains the TLS private key and certificate
secretName: my-domain.com
tasklist:
resources:
requests:
cpu: 400m
memory: 1Gi
limits:
cpu: 400m
memory: 1Gi
ingress:
enabled: true
className: public-iks-k8s-nginx
annotations:
ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
host: "tasklist.my-domain.com"
tls:
# Ingress.tls.enabled if true, then tls is configured on the ingress resource. If enabled the Ingress.host need to be defined.
enabled: true
# Ingress.tls.secretName defines the secret name which contains the TLS private key and certificate
secretName: my-domain.com
identity:
ingress:
enabled: true
className: public-iks-k8s-nginx
annotations:
ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
host: "identity.my-domain.com"
tls:
# Ingress.tls.enabled if true, then tls is configured on the ingress resource. If enabled the Ingress.host need to be defined.
enabled: true
# Ingress.tls.secretName defines the secret name which contains the TLS private key and certificate
secretName: my-domain.com
fullURL: "https://identity.my-domain.com"
resources:
requests:
cpu: 600m
memory: 400Mi
limits:
cpu: 600m
memory: 400Mi
keycloak:
ingress:
enabled: true
ingressClassName: public-iks-k8s-nginx
hostname: "keycloak.my-domain.com"
extraEnvVars:
- name: KEYCLOAK_PROXY_ADDRESS_FORWARDING
value: "true"
- name: KEYCLOAK_FRONTEND_URL
value: "https://keycloak.my-domain.com"
elasticsearch:
enabled: true
replicas: 1
volumeClaimTemplate:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 16Gi
esJavaOpts: "-Xmx1g -Xms1g"
resources:
requests:
cpu: 1
memory: 1Gi
limits:
cpu: 2
memory: 2Gi
Same behaviour with a combined ingress :
# Chart values for the Camunda Platform 8 Helm chart in combined Ingress setup.
# This file deliberately contains only the values that differ from the defaults.
# For changes and documentation, use your favorite diff tool to compare it with:
# https://github.com/camunda/camunda-platform-helm/blob/main/charts/camunda-platform
global:
# Image configuration to be used in each sub chart
image:
# Image.tag defines the tag / version which should be used in the chart
tag: 8.1.1
ingress:
enabled: true
className: public-iks-k8s-nginx
host: "my-domain.com"
tls:
# Ingress.tls.enabled if true, then tls is configured on the ingress resource. If enabled the Ingress.host need to be defined.
enabled: true
# Ingress.tls.secretName defines the secret name which contains the TLS private key and certificate
secretName: my-domain.com
identity:
auth:
publicIssuerUrl: "https://my-domain.com/auth/realms/camunda-platform"
operate:
redirectUrl: "https://my-domain.com/operate"
tasklist:
redirectUrl: "https://my-domain.com/tasklist"
optimize:
redirectUrl: "https://my-domain.com/optimize"
zeebe:
# ClusterSize defines the amount of brokers (=replicas), which are deployed via helm
clusterSize: "1"
# PartitionCount defines how many zeebe partitions are set up in the cluster
partitionCount: "1"
# ReplicationFactor defines how each partition is replicated, the value defines the number of nodes
replicationFactor: "1"
resources:
requests:
cpu: 800m
memory: 1200Mi
limits:
cpu: 800m
memory: 1200Mi
# PvcSize defines the persistent volume claim size, which is used by each broker pod https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims
pvcSize: "16Gi"
zeebe-gateway:
# Replicas defines how many standalone gateways are deployed
replicas: 1
ingress:
enabled: true
className: public-iks-k8s-nginx
annotations:
ingress.kubernetes.io/rewrite-target: "/"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
host: "zeebe.my-domain.com"
tls:
# Ingress.tls.enabled if true, then tls is configured on the ingress resource. If enabled the Ingress.host need to be defined.
enabled: true
# Ingress.tls.secretName defines the secret name which contains the TLS private key and certificate
secretName: my-domain.com
operate:
resources:
requests:
cpu: 600m
memory: 400Mi
limits:
cpu: 600m
memory: 400Mi
contextPath: "/operate"
optimize:
# PartitionCount defines how many Zeebe partitions are set up in the cluster and which should be imported by Optimize
partitionCount: "1"
resources:
requests:
cpu: 600m
memory: 1Gi
limits:
cpu: 600m
memory: 1Gi
contextPath: "/optimize"
tasklist:
resources:
requests:
cpu: 400m
memory: 1Gi
limits:
cpu: 400m
memory: 1Gi
contextPath: "/tasklist"
identity:
resources:
requests:
cpu: 600m
memory: 400Mi
limits:
cpu: 600m
memory: 400Mi
contextPath: "/identity"
fullURL: "https://my-domain.com/identity"
keycloak:
extraEnvVars:
- name: KEYCLOAK_PROXY_ADDRESS_FORWARDING
value: "true"
- name: KEYCLOAK_FRONTEND_URL
value: "https://my-domain.com/auth"
elasticsearch:
enabled: true
replicas: 1
volumeClaimTemplate:
accessModes: ["ReadWriteOnce"]
resources:
requests:
storage: 16Gi
esJavaOpts: "-Xmx1g -Xms1g"
resources:
requests:
cpu: 1
memory: 1Gi
limits:
cpu: 2
memory: 2Gi
@vctrmn could you please get the output of the following commands:
kubectl describe pod -l app.kubernetes.io/component=operate
kubectl describe pod -l app.kubernetes.io/component=optimize
kubectl describe pod -l app.kubernetes.io/component=operate
@aabouzaid
Operate :
Name: cwa-operate-78d7f75f6b-7669t
Namespace: default
Priority: 0
Service Account: default
Node: 10.243.64.7/10.243.64.7
Start Time: Tue, 18 Oct 2022 17:54:55 +0200
Labels: app=camunda-platform
app.kubernetes.io/component=operate
app.kubernetes.io/instance=cwa
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=operate
app.kubernetes.io/part-of=camunda-platform
app.kubernetes.io/version=8.1.1
helm.sh/chart=operate-8.0.14
pod-template-hash=78d7f75f6b
Annotations: cni.projectcalico.org/containerID: bb937c1975d303e14cdf6d5a23982d0bd1dd553401fdc0dc28b16af9a919415f
cni.projectcalico.org/podIP: 172.17.120.248/32
cni.projectcalico.org/podIPs: 172.17.120.248/32
kubernetes.io/psp: ibm-privileged-psp
Status: Running
IP: 172.17.120.248
IPs:
IP: 172.17.120.248
Controlled By: ReplicaSet/cwa-operate-78d7f75f6b
Containers:
operate:
Container ID: containerd://a8a9fb7429f15644f1f664132b37cd016ab74e0f18a3628869bddae49bb75518
Image: camunda/operate:8.1.1
Image ID: docker.io/camunda/operate@sha256:02319da8caef515fa76a14c4b269b949716832951e8109c803b7c0ba6d7b51af
Port: 8080/TCP
Host Port: 0/TCP
State: Running
Started: Tue, 18 Oct 2022 17:54:56 +0200
Ready: True
Restart Count: 0
Limits:
cpu: 600m
memory: 400Mi
Requests:
cpu: 600m
memory: 400Mi
Environment:
SPRING_PROFILES_ACTIVE: identity-auth
SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUERURI: http://cwa-keycloak:80/auth/realms/camunda-platform
SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWKSETURI: http://cwa-keycloak:80/auth/realms/camunda-platform/protocol/openid-connect/certs
CAMUNDA_OPERATE_IDENTITY_ISSUER_URL: https://keycloak.my-custom-url/auth/realms/camunda-platform
CAMUNDA_OPERATE_IDENTITY_ISSUER_BACKEND_URL: http://cwa-keycloak:80/auth/realms/camunda-platform
CAMUNDA_OPERATE_IDENTITY_CLIENT_ID: operate
CAMUNDA_OPERATE_IDENTITY_CLIENT_SECRET: <set to the key 'operate-secret' in secret 'cwa-operate-identity-secret'> Optional: false
CAMUNDA_OPERATE_IDENTITY_AUDIENCE: operate-api
Mounts:
/usr/local/operate/config/application.yml from config (rw,path="application.yml")
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-nzcfm (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
config:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: cwa-operate
Optional: false
kube-api-access-nzcfm:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: Guaranteed
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 600s
node.kubernetes.io/unreachable:NoExecute op=Exists for 600s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 2m30s default-scheduler Successfully assigned default/cwa-operate-78d7f75f6b-7669t to 10.243.64.7
Normal Pulled 2m29s kubelet Container image "camunda/operate:8.1.1" already present on machine
Normal Created 2m29s kubelet Created container operate
Normal Started 2m29s kubelet Started container operate
Optimize :
Name: cwa-optimize-6d67bf9978-jdh5d
Namespace: default
Priority: 0
Service Account: default
Node: 10.243.64.10/10.243.64.10
Start Time: Tue, 18 Oct 2022 17:54:55 +0200
Labels: app=camunda-platform
app.kubernetes.io/component=optimize
app.kubernetes.io/instance=cwa
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=optimize
app.kubernetes.io/part-of=camunda-platform
app.kubernetes.io/version=3.9.0-preview-2
helm.sh/chart=optimize-8.0.14
pod-template-hash=6d67bf9978
Annotations: cni.projectcalico.org/containerID: 087092c833c0d80c38b892870c081bb94ac122111f500da5a6ff63f019c99b46
cni.projectcalico.org/podIP: 172.17.114.127/32
cni.projectcalico.org/podIPs: 172.17.114.127/32
kubernetes.io/psp: ibm-privileged-psp
Status: Running
IP: 172.17.114.127
IPs:
IP: 172.17.114.127
Controlled By: ReplicaSet/cwa-optimize-6d67bf9978
Containers:
optimize:
Container ID: containerd://9ef27fe2d4a221f5b93a372c79a7246221d68981c4a7f198409944a2bbc949aa
Image: camunda/optimize:3.9.0-preview-2
Image ID: docker.io/camunda/optimize@sha256:7280013da531f0ff39723730120daf3306719ce10b92d95cfe699bc6b25ac782
Port: 8090/TCP
Host Port: 0/TCP
State: Running
Started: Tue, 18 Oct 2022 17:54:57 +0200
Ready: True
Restart Count: 0
Limits:
cpu: 600m
memory: 1Gi
Requests:
cpu: 600m
memory: 1Gi
Environment:
CAMUNDA_OPTIMIZE_ZEEBE_ENABLED: true
CAMUNDA_OPTIMIZE_ZEEBE_PARTITION_COUNT: 1
OPTIMIZE_ELASTICSEARCH_HOST: elasticsearch-master
OPTIMIZE_ELASTICSEARCH_HTTP_PORT: 9200
SPRING_PROFILES_ACTIVE: ccsm
CAMUNDA_OPTIMIZE_IDENTITY_ISSUER_URL: https://keycloak.my-custom-url/auth/realms/camunda-platform
CAMUNDA_OPTIMIZE_IDENTITY_ISSUER_BACKEND_URL: http://cwa-keycloak:80/auth/realms/camunda-platform
CAMUNDA_OPTIMIZE_IDENTITY_CLIENTID: optimize
CAMUNDA_OPTIMIZE_IDENTITY_CLIENTSECRET: <set to the key 'optimize-secret' in secret 'cwa-optimize-identity-secret'> Optional: false
CAMUNDA_OPTIMIZE_IDENTITY_AUDIENCE: optimize-api
CAMUNDA_OPTIMIZE_API_AUDIENCE: optimize-api
CAMUNDA_OPTIMIZE_API_JWTSETURI: http://cwa-keycloak:80/auth/realms/camunda-platform/protocol/openid-connect/certs
CAMUNDA_OPTIMIZE_SECURITY_AUTH_COOKIE_SAME_SITE_ENABLED: false
CAMUNDA_OPTIMIZE_UI_LOGOUT_HIDDEN: true
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-vm2xs (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-vm2xs:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: Guaranteed
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 600s
node.kubernetes.io/unreachable:NoExecute op=Exists for 600s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 4m55s default-scheduler Successfully assigned default/cwa-optimize-6d67bf9978-jdh5d to 10.243.64.10
Normal Pulled 4m54s kubelet Container image "camunda/optimize:3.9.0-preview-2" already present on machine
Normal Created 4m54s kubelet Created container optimize
Normal Started 4m53s kubelet Started container optimize
Tasklist :
Name: cwa-tasklist-7457bb54ff-rs8kb
Namespace: default
Priority: 0
Service Account: default
Node: 10.243.64.10/10.243.64.10
Start Time: Tue, 18 Oct 2022 17:54:55 +0200
Labels: app=camunda-platform
app.kubernetes.io/component=tasklist
app.kubernetes.io/instance=cwa
app.kubernetes.io/managed-by=Helm
app.kubernetes.io/name=tasklist
app.kubernetes.io/part-of=camunda-platform
app.kubernetes.io/version=8.1.1
helm.sh/chart=tasklist-8.0.14
pod-template-hash=7457bb54ff
Annotations: cni.projectcalico.org/containerID: 56824fa58b1bf005cbebebc641a2ff8ff3379885c156ac47ca8539a2de7e55bb
cni.projectcalico.org/podIP: 172.17.114.126/32
cni.projectcalico.org/podIPs: 172.17.114.126/32
kubernetes.io/psp: ibm-privileged-psp
Status: Running
IP: 172.17.114.126
IPs:
IP: 172.17.114.126
Controlled By: ReplicaSet/cwa-tasklist-7457bb54ff
Containers:
tasklist:
Container ID: containerd://4a5c8e186783553c9dbc07750dbaba02e60b560670c9363b6c772e77893a1d87
Image: camunda/tasklist:8.1.1
Image ID: docker.io/camunda/tasklist@sha256:398720e2991f68129ebe587583b239e72450cb1464eb79c5eb9f0d05eb7d3f6e
Port: 8080/TCP
Host Port: 0/TCP
State: Running
Started: Tue, 18 Oct 2022 17:54:56 +0200
Ready: True
Restart Count: 0
Limits:
cpu: 400m
memory: 1Gi
Requests:
cpu: 400m
memory: 1Gi
Environment:
SPRING_PROFILES_ACTIVE: identity-auth
SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_ISSUERURI: http://cwa-keycloak:80/auth/realms/camunda-platform
SPRING_SECURITY_OAUTH2_RESOURCESERVER_JWT_JWKSETURI: http://cwa-keycloak:80/auth/realms/camunda-platform/protocol/openid-connect/certs
CAMUNDA_TASKLIST_IDENTITY_ISSUER_URL: https://keycloak.my-custom-url/auth/realms/camunda-platform
CAMUNDA_TASKLIST_IDENTITY_ISSUER_BACKEND_URL: http://cwa-keycloak:80/auth/realms/camunda-platform
CAMUNDA_TASKLIST_IDENTITY_CLIENT_ID: tasklist
CAMUNDA_TASKLIST_IDENTITY_CLIENT_SECRET: <set to the key 'tasklist-secret' in secret 'cwa-tasklist-identity-secret'> Optional: false
CAMUNDA_TASKLIST_IDENTITY_AUDIENCE: tasklist-api
GRAPHQL_PLAYGROUND_ENABLED: true
GRAPHQL_PLAYGROUND_SETTINGS_REQUEST_CREDENTIALS: include
Mounts:
/app/resources/application.yml from config (rw,path="application.yml")
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-gswwr (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
config:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: cwa-tasklist
Optional: false
kube-api-access-gswwr:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: Guaranteed
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 600s
node.kubernetes.io/unreachable:NoExecute op=Exists for 600s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 6m27s default-scheduler Successfully assigned default/cwa-tasklist-7457bb54ff-rs8kb to 10.243.64.10
Normal Pulled 6m27s kubelet Container image "camunda/tasklist:8.1.1" already present on machine
Normal Created 6m27s kubelet Created container tasklist
Normal Started 6m27s kubelet Started container tasklist
Hello @aabouzaid ,
I have news on this : there is no 502 Bad Gateway with the default Ingress Controller in OpenShift Container Platform 4.x (based on HAProxy)
I think it is related to the IKS (IBM Kubernetes Service) default Ingress Controller (based on nginx)
Hello @aabouzaid ,
You can close this issue, because this bug only appears with IBM Cloud default Ingress Controller 🙂
@vctrmn thanks a lot for the info :rocket:
I'd say let's keep it open just for visibility in case someone tried to install the charts on IBM Cloud (which is currently not officially supported/tested).
This may be unrelated, but it sounds similar to when using the ingress-gce
on Google Kubernetes Engine which automagically creates LB, backends, etc, and network endpoint groups (NEG) for you. The LB are looking for a 200 from a health check endpoint and if they do not get a ✅ they throw 502s. No matter how many annotations and tweaks I attempt, there is currently no way to configure the NEG or backends to forward all health checks to the metrics
port (82) and the metrics
service does not respond w/ 200 on anything from what I can tell. Port 80 should respond to a health check imo..... at least at /healthz
if not /actuator/health
.
Sidenote, I was able to prove this ^ was the case by setting a gcloud health check to TCP
instead of HTTP
and the LB processed traffic and was able to access the identity component. However, this is a hack, and the cluster will just update the health check back to HTTP within a few minutes.
I'm 90% sure this issue was that you need to increase the nginx proxy-buffer-size. I've seen this 502 Bad Gateway a lot from that proxy-buffer-size option being set to something that's too low by default.
I'm closing this, since it's probably irrelevant.
Describe the bug:
I am unable to open Operate, Tasklist and Optimize in the same browser with KeyCloak authentication. I have to use a different browser (private navigation is not enough), one for each component.
Actual behavior:
If I first open Operate in a window (https://operate.xxxxxxxxxxxxxx.com/), I will have a 502 Bad Gateway for Tasklist (https://tasklist.xxxxxxxxxxxxxx.com/) or Optimize (https://optimize.xxxxxxxxxxxxxx.com/).
Expected behavior:
I should be able to open Operate, Tasklist and Optimize in the same browser.
Environment: