Hi everyone, thanks for reading this.
There are two problems:
- Even if I setup the ingress and the controller, the UI is not accessible from the browser. With port forward, it works
- Even if I port forwarded the task list and zeebe gateway, the spring boot application doesn’t deploy my process. It doesn’t give any error but it doesn’t deploy.
Environment description
- Running on MacBook pro i9 8cores, 36 Gb ram
- Docker limits 8 cores - 24 Gb ram, swap 1Gb
- /etc/hosts has the following records:
127.0.0.1 camunda.local
127.0.0.1 zeebe.camunda.local
- camunda-platform-core-kind-values.yaml
global:
identity:
auth:
# Disable the Identity authentication for local development
# it will fall back to basic-auth: demo/demo as default user
enabled: false
publicIssuerUrl: "https://camunda.local/auth/realms/camunda-platform"
operate:
redirectUrl: "https://camunda.local/operate"
tasklist:
redirectUrl: "https://camunda.local/tasklist"
optimize:
redirectUrl: "https://camunda.local/optimize"
webModeler:
redirectUrl: "https://camunda.local/modeler"
console:
redirectUrl: "https://camunda.local/console"
# Disable identity as part of the Camunda core
identity:
enabled: false
contextPath: "/identity"
fullURL: "https://camunda.local/identity"
operate:
contextPath: "/operate"
optimize:
enabled: false
contextPath: "/optimize"
tasklist:
contextPath: "/tasklist"
webModeler:
contextPath: "/modeler"
console:
contextPath: "/console"
zeebe:
clusterSize: 1
partitionCount: 1
replicationFactor: 1
pvcSize: 10Gi
zeebeGateway:
replicas: 1
contextPath: "/zeebe"
connectors:
enabled: true
inbound:
mode: disabled
elasticsearch:
master:
replicaCount: 1
persistence:
size: 15Gi
# Ingress configuration
ingress:
enabled: true
className: nginx
annotations:
kubernetes.io/ingress.class: "nginx"
hosts:
- host: "camunda.local"
paths:
- path: "/"
pathType: ImplementationSpecific
backend:
service:
name: camunda-platform-tasklist
port:
number: 80
- path: "/operate"
pathType: ImplementationSpecific
backend:
service:
name: camunda-platform-operate
port:
number: 80
- path: "/tasklist"
pathType: ImplementationSpecific
backend:
service:
name: camunda-platform-tasklist
port:
number: 80
- path: "/identity"
pathType: ImplementationSpecific
backend:
service:
name: camunda-platform-keycloak
port:
number: 80
- Kind config:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
kubeadmConfigPatches:
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true"
extraPortMappings:
- containerPort: 80
hostPort: 80
- containerPort: 443
hostPort: 443
- containerPort: 26500
hostPort: 26500
- containerPort: 18080
hostPort: 18080
- deployment script:
#!/bin/zsh
# Function to run a command in a new Terminal window
run_in_new_window() {
osascript -e "tell application \"Terminal\" to do script \"$1\""
}
kind delete cluster --name camunda-platform-local
# Set the directory containing the YAML and config files
CONFIG_DIR="$(pwd)"
# Function to check for command availability
function check_command() {
command -v $1 >/dev/null 2>&1 || { echo >&2 "I require $1 but it's not installed. Aborting."; exit 1; }
}
echo "Checking for required commands..."
check_command helm
check_command kind
check_command kubectl
echo "Adding the Camunda Helm repository..."
helm repo add camunda https://helm.camunda.io
echo "Updating Helm repositories..."
helm repo update
echo "Creating a Kind cluster..."
kind create cluster --name camunda-platform-local --config $CONFIG_DIR/kind.config
echo "Applying NGINX Ingress..."
helm install -f ingress_nginx_values.yml \
ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--version "4.9.0" \
--namespace ingress-nginx \
--create-namespace
echo "Waiting for NGINX Ingress to be ready..."
kubectl wait --namespace ingress-nginx \
--for=condition=ready pod \
--selector=app.kubernetes.io/component=controller \
--timeout=120s
echo "Installing Camunda BPM platform..."
helm install camunda-platform camunda/camunda-platform \
-f $CONFIG_DIR/camunda-platform-core-kind-values.yaml
echo "Setup complete. You can now access the Camunda Tasklist UI at http://localhost."
echo "Start port forwardings"
The result is that all the pods are running, no visible errors but the tasklist web app is not reachable from the browser. It gives nginx 404.
with port forwarding, I can access the task list web app:
port-forward svc/camunda-platform-tasklist 8080:80
port-forward svc/camunda-platform-zeebe-gateway 26500:26500
Then, when I run the spring boot application with this properties file:
spring.datasource.url: jdbc:h2:file:./camunda-h2-database
spring:
application:
name: bpm-orchestration
datasource:
url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
driver-class-name: org.h2.Driver
username: sa
password:
jpa:
database-platform: org.hibernate.dialect.H2Dialect
hibernate:
ddl-auto: update
show-sql: true
camunda:
bpm:
client:
request-timeout: 5000 # Milliseconds
base-url: http://camunda.local/zeebe # URL to your Zeebe gateway
worker:
id: default-worker
max-tasks: 100
lock-duration: 10000 # Milliseconds
enabled: true # Enables Camunda Bpm Client
zeebe:
client:
worker:
hazelcast:
enabled: false
job:
worker:
name: default-worker
max-jobs-active: 32
timeout: 30000 # Milliseconds
poll-interval: 100 # Milliseconds
cloud:
enabled: false
broker:
gateway-address: camunda.local:26500 # Adjust the port if different
security:
plaintext: true
and this code:
package com.dungbeetle.configuration;
import org.camunda.bpm.engine.RepositoryService;
import org.camunda.bpm.engine.repository.Deployment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
@Component
public class ProcessDeployer implements CommandLineRunner {
@Autowired
private RepositoryService repositoryService;
@Override
public void run(String... args) {
deployProcess("llm-demo.bpmn");
}
private void deployProcess(String resourcePath) {
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource(resourcePath)
.name("My Process Deployment")
.deploy();
System.out.println("Deployed process definition id: " + deployment.getId());
}
}
Please, forgive the System out
The logs are:
2024-05-11T21:16:38.380+10:00 INFO 39273 --- [ main] com.dungbeetle.Application : Starting Application using Java 17.0.8.1 with PID 39273 (/Users/danilo/Documents/repos/mono-llm/applications/bpm-orchestration/target/classes started by danilo in /Users/danilo/Documents/repos/mono-llm)
2024-05-11T21:16:38.385+10:00 INFO 39273 --- [ main] com.dungbeetle.Application : No active profile set, falling back to 1 default profile: "default"
2024-05-11T21:16:39.669+10:00 INFO 39273 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8085 (http)
2024-05-11T21:16:39.678+10:00 INFO 39273 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2024-05-11T21:16:39.679+10:00 INFO 39273 --- [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.10]
2024-05-11T21:16:39.780+10:00 INFO 39273 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2024-05-11T21:16:39.782+10:00 INFO 39273 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1351 ms
2024-05-11T21:16:39.804+10:00 INFO 39273 --- [ main] .c.b.s.b.s.r.CamundaJerseyResourceConfig : Configuring camunda rest api.
2024-05-11T21:16:39.824+10:00 INFO 39273 --- [ main] .c.b.s.b.s.r.CamundaJerseyResourceConfig : Finished configuring camunda rest api.
2024-05-11T21:16:40.094+10:00 INFO 39273 --- [ main] org.camunda.bpm.spring.boot : STARTER-SB040 Setting up jobExecutor with corePoolSize=3, maxPoolSize:10
2024-05-11T21:16:40.150+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.cfg : ENGINE-12003 Plugin 'CompositeProcessEnginePlugin[genericPropertiesConfiguration, camundaProcessEngineConfiguration, camundaDatasourceConfiguration, camundaJobConfiguration, camundaHistoryConfiguration, camundaMetricsConfiguration, camundaAuthorizationConfiguration, camundaDeploymentConfiguration, failedJobConfiguration, eventPublisherPlugin, ApplicationContextClassloaderSwitchPlugin, SpringBootSpinProcessEnginePlugin]' activated on process engine 'default'
2024-05-11T21:16:40.958+10:00 INFO 39273 --- [ main] org.camunda.bpm.spring.boot : STARTER-SB021 Auto-Deploying resources: [file [/Users/danilo/Documents/repos/mono-llm/applications/bpm-orchestration/target/classes/process.bpmn], file [/Users/danilo/Documents/repos/mono-llm/applications/bpm-orchestration/target/classes/cognitive-load-build-process.bpmn], file [/Users/danilo/Documents/repos/mono-llm/applications/bpm-orchestration/target/classes/cognitive-load-extrction.bpmn], file [/Users/danilo/Documents/repos/mono-llm/applications/bpm-orchestration/target/classes/llm-demo.bpmn]]
2024-05-11T21:16:40.961+10:00 INFO 39273 --- [ main] o.c.b.s.b.s.event.EventPublisherPlugin : EVENTING-001: Initialized Camunda Spring Boot Eventing Engine Plugin.
2024-05-11T21:16:40.961+10:00 INFO 39273 --- [ main] o.c.b.s.b.s.event.EventPublisherPlugin : EVENTING-003: Task events will be published as Spring Events.
2024-05-11T21:16:40.961+10:00 INFO 39273 --- [ main] o.c.b.s.b.s.event.EventPublisherPlugin : EVENTING-005: Execution events will be published as Spring Events.
2024-05-11T21:16:40.961+10:00 INFO 39273 --- [ main] o.c.b.s.b.s.event.EventPublisherPlugin : EVENTING-009: Listeners will not be invoked if a skipCustomListeners API parameter is set to true by user.
2024-05-11T21:16:40.966+10:00 INFO 39273 --- [ main] o.c.b.s.b.s.event.EventPublisherPlugin : EVENTING-007: History events will be published as Spring events.
2024-05-11T21:16:40.969+10:00 INFO 39273 --- [ main] org.camunda.spin : SPIN-01010 Discovered Spin data format provider: org.camunda.spin.impl.json.jackson.format.JacksonJsonDataFormatProvider[name = application/json]
2024-05-11T21:16:41.127+10:00 INFO 39273 --- [ main] org.camunda.spin : SPIN-01010 Discovered Spin data format provider: org.camunda.spin.impl.xml.dom.format.DomXmlDataFormatProvider[name = application/xml]
2024-05-11T21:16:41.204+10:00 INFO 39273 --- [ main] org.camunda.spin : SPIN-01009 Discovered Spin data format: org.camunda.spin.impl.xml.dom.format.DomXmlDataFormat[name = application/xml]
2024-05-11T21:16:41.204+10:00 INFO 39273 --- [ main] org.camunda.spin : SPIN-01009 Discovered Spin data format: org.camunda.spin.impl.json.jackson.format.JacksonJsonDataFormat[name = application/json]
2024-05-11T21:16:41.325+10:00 INFO 39273 --- [ main] org.camunda.bpm.dmn.feel.scala : FEEL/SCALA-01001 Spin value mapper detected
2024-05-11T21:16:41.420+10:00 INFO 39273 --- [ main] org.camunda.feel.FeelEngine : Engine created. [value-mapper: CompositeValueMapper(List(org.camunda.feel.impl.JavaValueMapper@a047bdb, org.camunda.spin.plugin.impl.feel.integration.SpinValueMapper@14dbfdb1)), function-provider: org.camunda.bpm.dmn.feel.impl.scala.function.CustomFunctionTransformer@76134b9b, clock: SystemClock, configuration: Configuration(false)]
2024-05-11T21:16:41.505+10:00 INFO 39273 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2024-05-11T21:16:41.700+10:00 INFO 39273 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:testdb user=SA
2024-05-11T21:16:41.701+10:00 INFO 39273 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
Standard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts
2024-05-11T21:16:43.877+10:00 INFO 39273 --- [ main] org.camunda.bpm.connect : CNCT-01004 Discovered provider for connector id 'http-connector' and class 'org.camunda.connect.httpclient.impl.HttpConnectorImpl': 'org.camunda.connect.httpclient.impl.HttpConnectorProviderImpl'
2024-05-11T21:16:43.885+10:00 INFO 39273 --- [ main] org.camunda.bpm.connect : CNCT-01004 Discovered provider for connector id 'soap-http-connector' and class 'org.camunda.connect.httpclient.soap.impl.SoapHttpConnectorImpl': 'org.camunda.connect.httpclient.soap.impl.SoapHttpConnectorProviderImpl'
2024-05-11T21:16:44.020+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.persistence : ENGINE-03016 Performing database operation 'create' on component 'engine' with resource 'org/camunda/bpm/engine/db/create/activiti.h2.create.engine.sql'
2024-05-11T21:16:44.051+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.persistence : ENGINE-03016 Performing database operation 'create' on component 'history' with resource 'org/camunda/bpm/engine/db/create/activiti.h2.create.history.sql'
2024-05-11T21:16:44.058+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.persistence : ENGINE-03016 Performing database operation 'create' on component 'identity' with resource 'org/camunda/bpm/engine/db/create/activiti.h2.create.identity.sql'
2024-05-11T21:16:44.067+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.persistence : ENGINE-03016 Performing database operation 'create' on component 'case.engine' with resource 'org/camunda/bpm/engine/db/create/activiti.h2.create.case.engine.sql'
2024-05-11T21:16:44.070+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.persistence : ENGINE-03016 Performing database operation 'create' on component 'case.history' with resource 'org/camunda/bpm/engine/db/create/activiti.h2.create.case.history.sql'
2024-05-11T21:16:44.073+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.persistence : ENGINE-03016 Performing database operation 'create' on component 'decision.engine' with resource 'org/camunda/bpm/engine/db/create/activiti.h2.create.decision.engine.sql'
2024-05-11T21:16:44.077+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.persistence : ENGINE-03016 Performing database operation 'create' on component 'decision.history' with resource 'org/camunda/bpm/engine/db/create/activiti.h2.create.decision.history.sql'
2024-05-11T21:16:44.101+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.persistence : ENGINE-03067 No history level property found in database
2024-05-11T21:16:44.103+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.persistence : ENGINE-03065 Creating historyLevel property in database for level: HistoryLevelFull(name=full, id=3)
2024-05-11T21:16:44.118+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine : ENGINE-00001 Process Engine default created.
2024-05-11T21:16:44.243+10:00 WARN 39273 --- [ main] org.camunda.bpm.engine.cfg : ENGINE-12016 definitionKey: bpm-orchestration-process; You are using the default TTL (Time To Live) of 180 days (six months); the history clean-up feature will delete your data after six months. We recommend adjusting the TTL configuration property aligned with your specific requirements.
2024-05-11T21:16:44.296+10:00 WARN 39273 --- [ main] org.camunda.bpm.engine.cfg : ENGINE-12016 definitionKey: llm-demo-process; You are using the default TTL (Time To Live) of 180 days (six months); the history clean-up feature will delete your data after six months. We recommend adjusting the TTL configuration property aligned with your specific requirements.
2024-05-11T21:16:44.319+10:00 WARN 39273 --- [ main] org.camunda.bpm.engine.cfg : ENGINE-12016 definitionKey: cognitive-load-build-process; You are using the default TTL (Time To Live) of 180 days (six months); the history clean-up feature will delete your data after six months. We recommend adjusting the TTL configuration property aligned with your specific requirements.
2024-05-11T21:16:44.337+10:00 WARN 39273 --- [ main] org.camunda.bpm.engine.cfg : ENGINE-12016 definitionKey: llm-demo-process2; You are using the default TTL (Time To Live) of 180 days (six months); the history clean-up feature will delete your data after six months. We recommend adjusting the TTL configuration property aligned with your specific requirements.
2024-05-11T21:16:44.669+10:00 INFO 39273 --- [ main] o.c.b.s.b.s.w.f.LazyInitRegistration : lazy initialized org.camunda.bpm.spring.boot.starter.webapp.filter.LazySecurityFilter@11dcd42c
2024-05-11T21:16:44.670+10:00 INFO 39273 --- [ main] o.c.b.s.b.s.w.f.LazyInitRegistration : lazy initialized org.camunda.bpm.spring.boot.starter.webapp.filter.LazyProcessEnginesFilter@715a70e9
2024-05-11T21:16:44.735+10:00 INFO 39273 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8085 (http) with context path ''
2024-05-11T21:16:44.748+10:00 INFO 39273 --- [ main] com.dungbeetle.Application : Started Application in 6.801 seconds (process running for 7.223)
2024-05-11T21:16:44.762+10:00 WARN 39273 --- [ main] org.camunda.bpm.engine.cfg : ENGINE-12016 definitionKey: llm-demo-process; You are using the default TTL (Time To Live) of 180 days (six months); the history clean-up feature will delete your data after six months. We recommend adjusting the TTL configuration property aligned with your specific requirements.
Deployed process definition id: f33ae78b-0f87-11ef-a900-22d9f49eaec3
2024-05-11T21:16:44.769+10:00 INFO 39273 --- [ main] org.camunda.bpm.engine.jobexecutor : ENGINE-14014 Starting up the JobExecutor[org.camunda.bpm.engine.spring.components.jobexecutor.SpringJobExecutor].
2024-05-11T21:16:44.770+10:00 INFO 39273 --- [ingJobExecutor]] org.camunda.bpm.engine.jobexecutor : ENGINE-14018 JobExecutor[org.camunda.bpm.engine.spring.components.jobexecutor.SpringJobExecutor] starting to acquire jobs
2024-05-12T09:38:17.844+10:00 WARN 39273 --- [l-1 housekeeper] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Retrograde clock change detected (housekeeper delta=29s773ms), soft-evicting connections from pool.
but the task list doesn’t show any process deployed.
In a local installation of the camunda server, the process didn’t even need to be deployed by the class. They were deployed automatically.
Please,help me out. Thanks.