camunda / camunda-bpm-platform

Flexible framework for workflow and decision automation with BPMN and DMN. Integration with Quarkus, Spring, Spring Boot, CDI.
https://camunda.com/
Apache License 2.0
4.12k stars 1.56k forks source link

Issue with Kubernetes Namespaces #2546

Open ThorbenLindhauer opened 3 years ago

ThorbenLindhauer commented 3 years ago

This issue was imported from JIRA:

Field Value
JIRA Link CAM-12842
Reporter QYWdpdy
What is this name? This pseudonym name was generated based on the user name in JIRA to protect the personal data of our JIRA users. You can use this identifier to search for issues by the same reporter.
Has restricted visibility comments true

Platform: AWS EKS

We have built Camunda 7.13 using Spring Boot and deployed in EKS. With our own process application, and Camunda Rest Api, we enabled Cockpit and deployed in EKS. The deployment went fine. It is to note that we have configured the namespace based on our Environments which could be devw, testb etc.. But when we tried to access Camunda, our application comes up fine but when we access Cockpit, it seem to ignore the namespace and defaults to the root (hostname) and which is reserved for the Kubernetes console. Our ingress is configured to route to the API name and tried to set webapp settings within Spring config but Camunda cockpit seem to default to root hostname instead of being aware of the Kubernetes namespace. I am not sure where we need to configure this if it is within Camunda Spring config.

Endpoint for API : <host>/<namespace>/<apiname>/claimsProcess

The Camunda webapp should be accessible via the following URL: https://dev-eks.escloud.co.uk/devw//camunda/app/welcome , where devw is the namespace corresponding the a certain environment.

We have nginx running that, with a rewrite rule, removes the namespace (devw) from the URL and routes the request appropriately. The Camunda webapp does not load because, within the index.html file, resources are loaded via URLs similar to the one below:

https://dev-eks.escloud.co.uk//camunda/app/welcome/scripts/config.js - as you may notice, the namespace is no longer present, therefore nginx cannot route the request anymore. We tried to replicate the problem by creating a static HTML file that loads a PNG file, see the HTML content below:

<!DOCTYPE html>
<html lang=“en”>
<head>
    <meta charset=“UTF-8">
    <title>Title</title>
</head>
<body>
    <img src=“images/purple_devil.png” height=“222" width=“227”/>
</body>
</html>

The page loads correctly at this URL: https://dev-eks.escloud.co.uk/devw//test.html, with the image displaying correctly. Please let me know if you have seen this issue before and help us resolve this.

Links:

ThorbenLindhauer commented 3 years ago

This comment was imported from JIRA and written by user @epollum


Hello!

Can you confirm for me what version of Camunda engine and webapps you are using?

You can alter the web application's path in a Spring project via application.yaml with the folllowing property:

The default for the property is /camunda. You can review this in our documentation.

You may also want to change the application path for the REST API, you can do so with the property

Let me know if you have further questions, Emma