Enabling Web-Modeler in Self-Managed environment

Hello,
We are trying to include web-modeler component as part of our Self-Managed cluster in GCP.

Is there a set of default values.yaml tags and env variables we need to include for the web-modeler? We used this for starters with no luck.

webModeler:
  contextPath: "/modeler"
  fullURL: "https://dev-camunda.abcdefg.dev/modeler"
  enabled: true
  replicas: 1
  restapi:
    mail:
      fromAddress: "noreply@abcdefg.com"

There are several dependent components to get web-modeler to work. And each of these components have several environment variables.

  • web app
  • modeler
  • rest
  • web sockets
  • postgres

Any insights on what values.yaml to choose?

Best regards,
Atul

If you could tell specific variable, we can help you.

Web-Modeler needs database to store all the projects.

Are you using existing keycloak for your setup. Keycloak also needs postgres for storing the data.

Thanks for your response. All components are working, except web-modeler. These components are working as expected:

  • Keycloak with postgres
  • optimize
  • tasklist
  • operate
  • zeebe
  • zeebe-gateway
  • connectors
  • console

We have also deployed BPMNs and executed them successfully with several process instances.

The error we get is this when we try to enable WebModeler in our values.yaml; file. Strangely, 3 services are enabled but there are no deployments or pods for any of these:

  • camunda-web-modeler-webapp
  • camunda-web-modeler-websockets
  • camunda-web-modeler-restapi
 failed to create resource: Deployment.apps "camunda-web-modeler-restapi" is invalid: spec.template.spec.containers[0].env[2].valueFrom.secretKeyRef.name: Invalid value: "": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')

Any thoughts?

As the error clearly states that your subdomain entry is invalid in the restapi setup. Source of the issue is on restapi configuration.

We have set no environment variables other than the license_key. This is all I have under webModeler. What domain are you referring to? Also, web-app appears to ignore license-key env variable

webModeler:
  contextPath: "/modeler"
  fullURL: "https://dev-camunda.abcdefg.dev/modeler"
  enabled: true
  replicas: 1
  restapi:
    mail:
      fromAddress: "noreply@abcdefg.com"
  env:
  # License
    - name: CAMUNDA_LICENSE_KEY
      value: |
        --------------- BEGIN CAMUNDA LICENSE KEY ---------------
        fake-license-key;
        customer = xxxxxxxxxxxxxxxx;
        expiryDate = 2025-02-10;
        cawemo = true;
        optimize = true;
        camundaBPM = true;
        ---------------  END CAMUNDA LICENSE KEY  ---------------

For web-modeler-webapp pod, I get License errors even if I have that setup above.

{"message":"Master started","timestamp":"2024-11-27T13:02:33.478Z","severity":"INFO","pid":1}
{"message":"Using configuration {\n \"ssl\": {\n \"enabled\": false\n },\n \"httpPort\": 8070,\n \"httpWorkers\": 2,\n \"managementSsl\": {\n \"enabled\": false\n },\n \"managementHttpPort\": 8071,\n \"shutdownTimeout\": 5000,\n \"maintenanceMode\": false,\n \"camundaCloudBaseDomain\": \"example.com\",\n \"server\": {\n \"httpsOnly\": true,\n \"redirectHosts\": false,\n \"host\": \"localhost\",\n \"url\": \"https://dev-camunda.abcdefg.dev/modeler\",\n \"additionalRedirectHosts\": [],\n \"additionalDestinationHosts\": [],\n \"basePath\": \"/modeler\"\n },\n \"log\": {\n \"levelClient\": \"WARN\",\n \"levelWebapp\": \"INFO\"\n },\n \"restapi\": {\n \"sslEnabled\": false,\n \"host\": \"camunda-web-modeler-restapi\",\n \"port\": 80,\n \"managementSslEnabled\": false,\n \"managementPort\": 8091,\n \"requestTimeout\": 30000,\n \"requestSizeLimitBytes\": 3145728\n },\n \"oAuth2\": {\n \"clientId\": \"web-modeler\",\n \"type\": \"keycloak\",\n \"token\": {\n \"audience\": \"web-modeler-api\",\n \"issuer\": \"https://dev-camunda.abcdefg.dev/auth/realms/camunda-platform\",\n \"jwksUrl\": \"http://camunda-keycloak:80/auth/realms/camunda-platform/protocol/openid-connect/certs\"\n },\n \"m2m\": {\n \"connectorsApi\": {\n \"audience\": \"audience\",\n \"scope\": \"scope\"\n },\n \"operateApi\": {\n \"audience\": \"audience\"\n },\n \"tasklistApi\": {\n \"audience\": \"audience\"\n }\n }\n },\n \"pusher\": {\n \"appId\": \"web-modeler\",\n \"key\": \"erCk0ICoFfXruiEU13bc\",\n \"secret\": \"*****\",\n \"host\": \"camunda-web-modeler-websockets\",\n \"port\": \"80\"\n },\n \"client\": {\n \"pusher\": {\n \"key\": \"erCk0ICoFfXruiEU13bc\",\n \"host\": \"localhost\",\n \"port\": \"8085\",\n \"path\": \"/\",\n \"forceTLS\": false\n },\n \"sentry\": {\n \"enabled\": false,\n \"key\": \"*****\",\n \"environment\": \"dev\"\n }\n },\n \"mixpanel\": {\n \"enabled\": false,\n \"apiHost\": \"https://api-eu.mixpanel.com\",\n \"stage\": \"dev\",\n \"token\": \"token\"\n },\n \"play\": {\n \"enabled\": true\n },\n \"osano\": {\n \"token\": \"token\"\n },\n \"appcues\": {\n \"enabled\": true\n },\n \"sentry\": {\n \"enabled\": false,\n \"key\": \"*****\",\n \"environment\": \"dev\"\n },\n \"openai\": {\n \"apiKey\": \"*****\"\n },\n \"features\": {\n \"assetRefreshEnabled\": true,\n \"trackTopbarEnabled\": true,\n \"modelingTrackingEnabled\": true\n },\n \"identity\": {\n \"baseUrl\": \"http://camunda-identity:80/identity\"\n },\n \"zeebe\": {\n \"bpmnDeploymentEnabled\": true,\n \"dmnDeploymentEnabled\": true\n },\n \"importResources\": {\n \"maxCountOfFiles\": 20,\n \"maxAllowedSize\": 3145728\n },\n \"marketplace\": {\n \"enabled\": true,\n \"apiBaseUrl\": \"https://marketplace.cloud.camunda.io/api/v1\"\n },\n \"targetEnv\": \"dev\",\n \"statsig\": {\n \"enabled\": false,\n \"sdkKey\": \"sdkKey\"\n },\n \"license\": {\n \"isValid\": false\n }\n}","timestamp":"2024-11-27T13:02:33.480Z","severity":"INFO","pid":1}
{"message":"Master setting up 2 worker(s)...","timestamp":"2024-11-27T13:02:33.492Z","severity":"INFO","pid":1}
{"message":"Management server listening on port 8071","timestamp":"2024-11-27T13:02:33.510Z","severity":"INFO","pid":1}
{"message":"Worker 13 is online","timestamp":"2024-11-27T13:02:33.607Z","severity":"INFO","pid":1}
{"message":"Worker 14 is online","timestamp":"2024-11-27T13:02:33.719Z","severity":"INFO","pid":1}
{"message":"CAMUNDA_LICENSE_KEY is not set","timestamp":"2024-11-27T13:02:36.911Z","severity":"ERROR","pid":13}
{"message":"Worker started","timestamp":"2024-11-27T13:02:36.969Z","severity":"INFO","pid":13}
{"message":"CAMUNDA_LICENSE_KEY is not set","timestamp":"2024-11-27T13:02:37.180Z","severity":"ERROR","pid":14}

Are we missing and environment variable to set this domain name? And why is the license key not getting picked up through the values.yaml?

Please make sure that you have purchased license to use web-modeler along with your other modules… From the license-key, web-modeler is not listed and hence it’s showing camunda_license_key is not set.

Thanks again. We are working on getting a valid license. However, we still the same error even though our webModeler section in values.yaml has the correct domain

webModeler:
  enabled: true
  contextPath: "/modeler"
  fullURL: "https://dev-camunda.abcdefg.dev/modeler"
  # replicas: 1
  service:
    annotations:
      cloud.google.com/neg: '{"ingress": true}' # Creates a NEG after an Ingress is created
      cloud.google.com/backend-config: '{"default": "camunda-hc-modeler"}' # Attach the backend config to the service
  postgresql:
    enabled: true
  restapi:
    mail:
      smtpHost: smtp.abcdefg.dev
      smtpPort: 587
      smtpUser: user
      smtpPassword: xxxxxx
      # Email address to be displayed as sender of emails from Web Modeler
      fromAddress: no-reply@abcdefg.dev

The error is:

Error: INSTALLATION FAILED: 1 error occurred:
	* Deployment.apps "camunda-web-modeler-restapi" is invalid: spec.template.spec.containers[0].env[2].valueFrom.secretKeyRef.name: Invalid value: "": a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character (e.g. 'example.com', regex used for validation is '[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*')

What domain is it refering to? Is there another environment variable for restapi to be set?

Thanks,
Atul