Skip to content

test: second topology e2e leg cannot pass for multi-orchestration topologies (shared Web Modeler, no per-leg cluster selection) #6910

Description

@eamonnmoloney

Problem

For a topology with more than one orchestration release, the topology e2e phase runs one leg per
orchestration release. The second leg cannot pass, because process data is created through a
single shared Web Modeler that deploys to one cluster, while each leg asserts against its own
cluster's Operate and Tasklist.

Observed on multinamespace-2orch (mns2) on GKE, chart 8.10. All three releases deployed
successfully; both e2e legs failed:

leg passed failed skipped duration
orcha 16 3 5 18.9m
orchb 7 12 4 27.4m

Leg 2's failures are overwhelmingly data-visibility, not UI:

View Process Instance in Operate, assert it completes and assert result expression
Complete User Task in Tasklist & assert process complete in Operate
Navigate to Tasklist and Make Sure that the Two Deployed Processes Are Accessible
View Process Instance in Operate and complete User Task in Tasklist
Assert Diagram Has Successfully Completed in Operate
Ensure Modeler is not Accessible
… 13 in total

with 314 occurrences of not found in table, and one instance retried for 610s across 21 attempts
before giving up.

Root cause

The Hub's Web Modeler has both orchestration clusters registered:

$ kubectl -n <hub-ns> exec pod/postgresql-… -- \
    psql -d webmodeler -t -A -c 'SELECT name FROM clusters ORDER BY name'
Orchestration A
Orchestration B
hub

The suite has no way to select a cluster per leg. It creates its fixture processes through Modeler,
which deploys to whichever cluster it resolves, so only the leg whose cluster happens to match can
observe its own data. The other leg queries an Operate that never received the records — hence
not found in table rather than an assertion or timing failure.

Ensure Modeler is not Accessible failing fits the same picture: that test's assumption does not hold
when one Modeler is shared across clusters reached on different hosts.

Scope

This is a property of the suite, not of any chart change. It is the same class of gap as the suite not
being Physical-Tenant aware: it is not cluster-aware either, because
global.topology.clusters[].components.orchestration is singular and the suite resolves apps against
a single baseURL plus per-app context paths.

Attribution note: this surfaced while validating an unrelated values change. That change renders the
affected releases byte-identically, and the Camunda exporter feeding Operate reads
orchestration.index.prefix, which it does not touch.

Options

  1. Run a single e2e leg for multi-orchestration topologies. Cheapest, and honest about the
    coverage boundary: one cluster gets exercised, the rest get deploy-only verification. Worth a
    comment in the scenario file so the next reader knows why.
  2. Teach the suite to target a named cluster per leg, e.g. a CLUSTER_NAME env var the Modeler
    deployment step honours. Correct fix, but it is a change in
    c8-cross-component-e2e-tests plus an npm release, so cross-repo.

Until one of these lands, enabling two legs for a multi-orchestration topology enables a leg that
cannot pass, which reads as a product failure when it is a harness limitation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/internalGeneral internal work and improvements (not customer facing)likelihood/highA recurring issueseverity/midMarks a bug as having a noticeable impact but with a known workaroundtriage:completed

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions