Skip to content

chore(docker): refactor docker-compose topologies with Hubble - #3149

Merged
imbajin merged 8 commits into
apache:masterfrom
bitflicker64:hubble-compose-addon
Aug 31, 2026
Merged

chore(docker): refactor docker-compose topologies with Hubble#3149
imbajin merged 8 commits into
apache:masterfrom
bitflicker64:hubble-compose-addon

Conversation

@bitflicker64

@bitflicker64 bitflicker64 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

What changed

Hubble is now a normal service in each supported Docker Compose topology.

Three Docker Compose topologies: standalone, minimal HStore, and HA reference
Topology Before After
Default 1 PD + 1 Store + 1 HStore Server + Hubble 1 RocksDB Server + Hubble
Minimal HStore Duplicated development stack 1 PD + 1 Store + 1 Server + Hubble, with a thin source-build override
HA reference 3 PD + 3 Store + 3 Server 3 PD + 3 Store + 3 Server + Hubble

The administrator password is the only authentication switch:

non-empty HUGEGRAPH_ADMIN_PASSWORD -> Server auth on -> Hubble detects auth
empty or absent password           -> Server auth off -> Hubble detects anonymous mode

The redesign also:

  • gives each topology one normal Compose network and ordinary named volumes;
  • persists standalone RocksDB data and Hubble H2/uploads;
  • requires one shared JWT secret across authenticated HA Server replicas and fails fast when it is missing;
  • keeps Hubble image selection independent through HUBBLE_IMAGE;
  • replaces the copied development Compose file with a thin HStore build override;
  • removes the separate add-on lifecycle, external resources, copied non-auth topology, and ineffective auth.enabled configuration.

Validation

Local runtime validation used only the current published latest images.

  • Standalone auth-on: Server and Hubble healthy; /versions 200; Graph API 401/200; Hubble detected authenticated mode and login succeeded; RocksDB and Hubble state survived recreation.
  • Standalone auth-off: anonymous Graph API 200; Hubble reported ANONYMOUS / NON_AUTH.
  • Minimal HStore auth-on: PD, Store, Server, and Hubble healthy; Graph API 401/200; Hubble detected authenticated mode and login succeeded; graph and Hubble state survived recreation.
  • Minimal HStore auth-off: all services healthy; anonymous Graph API 200; Hubble reported ANONYMOUS / NON_AUTH.
  • HA 3+3+3+1: intentionally not started locally because of the available resource limit. Its complete auth-on model is covered by Compose rendering, exact static contracts, and independent review only.

Chrome UI acceptance

The non-HA matrix was also tested through the real Hubble UI in Chrome:

Topology Auth UI entry Demo import UI readback
Standalone on admin login success 8 vertices, 6 edges, all names
Standalone off anonymous, no login page success 8 vertices, 6 edges, all names
Minimal HStore on admin login through PD mode success 8 vertices, 6 edges, all names
Minimal HStore off anonymous through PD mode success 8 vertices, 6 edges, all names

Each case used fresh Compose projects and volumes. The built-in “人物与软件 Demo 图” importer created the data, and Hubble's Gremlin JSON view read it back.

Focused checks passed locally:

  • bash docker/test-compose.sh render
  • bash docker/test-compose.sh smoke
  • bash docker/test-compose.sh smoke-auth-off
  • docker run --rm -v "$PWD:/src" -w /src ubuntu:24.04 bash hugegraph-server/hugegraph-dist/docker/docker-entrypoint-test.sh
  • shellcheck docker/test-compose.sh hugegraph-server/hugegraph-dist/docker/docker-entrypoint{,-test}.sh
  • actionlint -ignore 'SC2086' .github/workflows/server-ci.yml
  • git diff --check
  • mvn editorconfig:check apache-rat:check -ntp -DskipTests

Default PR CI renders all three topologies and runs real auth-on smoke tests for standalone and minimal HStore. It does not start HA or add an auth-off matrix. The previous head completed with all required checks green; CI for the latest review-fix commit is running.

Independent review

Five read-only review lanes covered the complete diff: two global reviews, Compose/auth/config, CI/tests/docs, and one adversarial review.

  • No blocking issue remained.
  • HA render checks now assert STORE_REST, the HStore backend, and all three PD peers for every Server replica.
  • The README now clarifies that changing .env does not rotate an existing administrator password.
  • The latest review passes added bounded curl timeouts, an HA-only shared-secret fail-fast guard, and restored the complete HA Server healthcheck timing lost through shallow YAML merge.
  • The developer render command now runs the deterministic auth-on contracts directly; other simplification comments were closed with runtime evidence or confirmed scope decisions.
  • Broader control-plane hardening, historical topology migration, and a full user-management guide remain intentionally outside this focused Compose redesign.

Scope

This PR intentionally does not redesign control-plane exposure, external PD-aware client addressing, image publication, or HA failover. Approval and merge are outside the validation scope.

@dosubot dosubot Bot added size:L This PR changes 100-499 lines, ignoring generated files. feature New feature labels Aug 10, 2026
@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 37.76%. Comparing base (8e167c7) to head (9cf8de7).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #3149      +/-   ##
============================================
+ Coverage     32.69%   37.76%   +5.07%     
- Complexity     5517     6551    +1034     
============================================
  Files           789      800      +11     
  Lines         67750    68929    +1179     
  Branches       8955     9157     +202     
============================================
+ Hits          22151    26034    +3883     
+ Misses        42987    39838    -3149     
- Partials       2612     3057     +445     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@imbajin imbajin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: yes. Summary: The Compose add-on has a false-green authentication check and operational failover and attachment gaps that can make a healthy-looking deployment unusable. Evidence: exact-head static review across six independent lanes; docker-entrypoint.sh:93-98 requires a 32-byte token, Hubble LiveOperationsCollector uses one pd.server, and the add-on has no data volume.

Comment thread .github/workflows/server-ci.yml Outdated
Comment thread docker/README.md Outdated
Comment thread docker/hugegraph-hubble-3x3.properties
Comment thread docker/hugegraph-hubble-3x3.properties
Comment thread docker/README.md Outdated
Comment thread docker/docker-compose-hubble.yml Outdated

@imbajin imbajin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: yes. Summary: The cluster quickstart currently fails after generating its own credentials, and the Hubble add-on mounts the H2 database outside the path used by Hubble; additional deployment and CI gaps can leave a false-green or state-inconsistent setup. Evidence: exact-head static review across six independent lanes plus Docker Compose render and guard checks; live container startup was unavailable.

Comment thread docker/README.md Outdated
Comment thread docker/docker-compose-hubble.yml Outdated
Comment thread docker/docker-compose-3pd-3store-3server.yml Outdated
Comment thread docker/docker-compose-3pd-3store-3server.yml Outdated
Comment thread docker/docker-compose-hubble.yml Outdated
Comment thread docker/README.md Outdated
Comment thread docker/docker-compose-3pd-3store-3server.yml
Comment thread .github/workflows/server-ci.yml Outdated
Comment thread .github/workflows/server-ci.yml Outdated
Comment thread .github/workflows/server-ci.yml Outdated

@imbajin imbajin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: yes. Summary: Four previously reported deployment blockers remain on this head: incompatible cached images can leave authentication false-green, PD/Store control-plane ports remain exposed without real authentication, PD-registered Server URLs are not resolvable outside Docker DNS, and CI remains render-only. Evidence: exact head 950f645; 21 GitHub checks passed; fresh Docker Compose render, credential guard, topology, and dotenv-parser checks passed locally; six independent review lanes were unavailable because the local review gateway repeatedly failed.

@dosubot dosubot Bot added size:XL This PR changes 500-999 lines, ignoring generated files. and removed size:L This PR changes 100-499 lines, ignoring generated files. labels Aug 23, 2026
@bitflicker64

Copy link
Copy Markdown
Contributor Author

Pushed 6b6c3a3c. All four blocking findings from the last review are fixed in this PR rather than deferred, and the PR description is updated to match.

  • Auth false-green: images pull by default and Server readiness requires 401 unauthenticated plus 200 authenticated, so an image that ignores PASSWORD never becomes healthy.
  • Control plane: PD, Store, and Server ports bind to 127.0.0.1, widened only through HUGEGRAPH_CONTROL_PLANE_HOST / HUGEGRAPH_SERVER_PUBLISH_HOST.
  • Advertised addresses: each replica's PD-registered URL is configurable, defaults unchanged.
  • Render-only CI: a live smoke job starts the cluster, attaches Hubble, and asserts the above.

The cluster also goes back to being authenticated by default, per your point that this is the file people copy. Running without auth is now an explicit opt-in, docker-compose-3x3.non-auth.yml plus a matching Hubble properties file, documented beside the default flow with a copy-paste prompt for people who hand this to an assistant.

Tested on a clean Docker host, from zero images: 9/9 healthy, 401/200 on all three replicas, ports on loopback, three PD peers and three Stores Up, Hubble attached without recreating a single cluster container, H2 state surviving recreation across both flows, and the non-auth path returning 200 with no credentials anywhere in the container environment.

Testing caught three bugs that rendering never would have, one of them a half-authenticated cluster where only server0 lost its credentials because !reset does not survive a YAML anchor on every Compose version. That one is the clearest argument for the smoke job, so I would rather keep it than trim it.

@bitflicker64 bitflicker64 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the Compose files, the CI additions, and the docs end to end, and ran the render
checks and several of the README shell blocks locally.

The shape of this is good: an add-on file rather than a forked topology, an external
network so attach never recreates the cluster, and readiness that proves authentication
instead of trusting a tag. The CI render checks are unusually thorough.

I think it needs another pass before merge. Most of what I found is in the seams around
that core: teardown and the non-auth flow leave the operator without a working path, two
documented overrides cannot work as described, and one paragraph promises a safety net
across three files that only one of them has. Details inline.

One thing that has no inline anchor: the Healthcheck Endpoints table further down (Server
row) still says GET /versions -> 200 OK. The cluster Server healthcheck is now the
401/200 pair, so that row needs a separate touch; it sits outside the diff.

Minor, take or leave: the combined render's jq is a 21-clause conjunction that fails with
a bare exit 1 naming no clause, while the same function already has named-error helpers
(assert_guard, assert_props); and the token_fixture length check guards a literal
two lines above it, so it can only fire if someone edits that literal.

Comment thread docker/docker-compose-3pd-3store-3server.yml Outdated
Comment thread docker/README.md Outdated
Comment thread docker/docker-compose-hubble.yml Outdated
Comment thread docker/README.md Outdated
Comment thread docker/README.md Outdated
Comment thread .github/workflows/server-ci.yml Outdated
Comment thread .github/workflows/server-ci.yml Outdated
Comment thread docker/README.md Outdated
Comment thread docker/README.md Outdated
Comment thread docker/docker-compose-hubble.yml Outdated
@bitflicker64

Copy link
Copy Markdown
Contributor Author

Fixed in 9616037, verified against a real cluster.

The advertised-address point is the important one and you were right: HG_SERVER_REST_URL becomes restserver.url, which is the bind address. Running the cluster with the documented override crash-looped that replica on java.net.BindException: Cannot assign requested address while the two defaults stayed healthy. The three variables are gone and the README documents the limitation instead. My earlier reply on that thread was wrong.

Also fixed: healthcheck no longer pins to the seeded password (401-only, so password rotation cannot brick readiness), Hubble volumes are external so down -v from either flow cannot destroy shared state, pull policy is overridable for offline use, the non-auth flow documents network/volumes/teardown, the dotenv reader rejects unquoted values and runs in a subshell, and CI unsets the variables it asserts defaults for, covers the non-auth properties, and gates the smoke test to contract changes.

@imbajin imbajin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: no. Summary: The documented no-credentials attach flow still requires external Hubble volumes to exist in advance. Evidence: exact-head review of the Compose file and README; the attach path is actionable but approval is withheld because the required independent lanes were unavailable and a latest-head CI job is failing.

Comment thread docker/README.md Outdated
@bitflicker64

Copy link
Copy Markdown
Contributor Author

Pushed d2a12bc1. Commit-by-commit, since this branch has grown a lot since the last review.

0d1e67ba: back to authenticated by default. The two commits before it had made the 3-node cluster anonymous. Reverted on top rather than rewritten, so every thread here keeps its anchor. Anonymous is still supported, as an explicit opt-in rather than the default.

c3115579: the four blocking findings. Images pull by default and readiness proves the running image enforces auth, so a cached older image cannot look healthy while serving the graph APIs open. PD, Store and Server ports bind to loopback, widened only through HUGEGRAPH_CONTROL_PLANE_HOST / HUGEGRAPH_SERVER_PUBLISH_HOST. And a live smoke job replaces the render-only checks.

10c6c6b5: corrections the smoke job found in itself. Running it against a real cluster showed two of its own assertions were wrong: /v1/cluster returns PD peers, not graph servers, so the registration check could never pass; and the persistence check passed even when the two flows used different volumes. Now it asserts three PD peers and three Stores Up, and proves shared state by writing a marker through one flow and reading it back through the other.

7ea0efe2: the port reference contradicted the code. It still said cluster ports bind every interface after they had moved to loopback. Also, the documented no-auth placeholder token was long enough to pass validation, so copying those two lines into docker/.env would produce a cluster that looked authenticated while signing tokens with a key printed in this repo. The placeholder is now deliberately too short for the Server to accept.

6b6c3a3c: the no-auth override only disabled auth on one Server. The three services shared a YAML anchor, and !reset does not survive an alias on every Compose version: on 5.1.2 only server0 lost its credentials, so the cluster came up half authenticated, while 5.1.4 reset all three. The healthcheck override propagated either way, which is what hid it. Spelled out per service.

96160375: the seams around the contract. Chiefly: HG_SERVER_REST_URL becomes restserver.url, which is the bind address, so the advertised-address option crash-looped a replica on java.net.BindException; those variables are gone and the limitation is documented. Readiness no longer pins to the seeded admin password, which would have bricked every replica after a password rotation. Hubble's volumes became external, because Compose deletes a fixed-name volume on down -v from any project declaring the name, so leaving one flow destroyed the other's database. Plus the offline pull escape hatch, the no-auth flow's missing network and teardown, a dotenv reader that returned an empty password for malformed values, and a verification block whose exit 1 closed the operator's shell.

05715714: a claim that covered files it did not. The version-pinning paragraph promised an image ignoring PASSWORD never reports healthy across three Compose files. Only the cluster has that check; the single-node files probe /versions, which stays open either way.

d2a12bc1: your latest finding. Making the volumes external fixed data loss but broke the flow that needs them most: external volume "hugegraph-hubble-upload-files" not found. The attach section now creates both first, honouring HUBBLE_DB_VOLUME and HUBBLE_UPLOAD_VOLUME, inspect-then-create so it is safe to repeat. Reproduced the failure and confirmed the fix against a running cluster.

Everything above was verified by running it, not by reading. On the current head: ten containers healthy, 401 unauthenticated and 200 authenticated on all three replicas, wrong password 401, three PD peers and three Stores Up, the H2 database inside its mount, Hubble attaching without recreating a cluster container, and shared state surviving the teardown that used to destroy it.

One note on CI: docker-build (Dockerfile-hstore) is red, and it is a Maven build inside that Dockerfile. This branch changes no Java, no pom and no Dockerfile, and the same job passes on current master, so I believe it is unrelated to this diff. This push re-runs it.

@bitflicker64
bitflicker64 requested a review from imbajin August 26, 2026 21:06
@bitflicker64

Copy link
Copy Markdown
Contributor Author

@imbajin one open question before this is mergeable, on the PD-registered Server addresses. The inline thread is marked outdated (the lines it pointed at are gone), so raising it here where it is visible: #3149 (comment)

Your ask was a configurable advertised address, or an external client path that resolves. I could not do either from Compose: HG_SERVER_REST_URL becomes restserver.url, which is also the address the REST server binds, so an externally reachable value crash-loops the replica on java.net.BindException: Cannot assign requested address. I confirmed that by running it. Splitting bind from advertise needs a Server-side setting.

So, which way do you want it closed?

A. Accept it as a documented limitation. External clients use the published Server ports; PD discovery stays correct for anything on hugegraph-net, which is the Hubble case this add-on exists for.

B. I open a Server issue for a real advertised-address option and link it here.

I lean A for this PR, since B is a Server change that would hold up the add-on. Happy to file B regardless if you want it tracked.

@imbajin imbajin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: no. Summary: The documented Hubble no-auth flow does not disable Hubble's own API authentication, and the pull-policy and volume-management instructions need correction. Evidence: exact-head static review of the Hubble configuration and README; Compose configuration rendering passed; latest ordinary CI completed with only the non-blocking codecov/project failure; required independent review lane evidence is incomplete.

Comment thread docker/hugegraph-hubble-3x3.non-auth.properties Outdated
Comment thread docker/README.md Outdated
Comment thread docker/README.md Outdated
Comment thread docker/README.md Outdated

@bitflicker64 bitflicker64 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: no. Summary: The Compose contract, the credential setup block, the non-auth override and the Hubble properties files hold up under reading — the .env parser reads values as data rather than sourcing them, the !reset blocks are spelled out per service for the reason given, the external network and volumes are created in every documented flow, and the render assertions tie the mounted properties files back to the rendered model; the two problems left are both in the new CI, where the smoke-test gate does not gate on push builds and the no-recreation assertion is placed where it cannot fail. Evidence: read of .github/workflows/server-ci.yml (:3-9 triggers, :50 fetch-depth, :143-386 render checks, :390-402 change gate, :404-502 smoke test), docker/docker-compose-3pd-3store-3server.yml, docker/docker-compose-hubble.yml, docker/docker-compose-3x3.non-auth.yml, both hugegraph-hubble-3x3 properties files and docker/README.md at d2a12bc; gh -R apache/hugegraph pr checks 3149 (all green except non-blocking codecov/project).

Comment thread .github/workflows/server-ci.yml Outdated
Comment thread .github/workflows/server-ci.yml Outdated
@imbajin
imbajin requested a balanced review from Copilot August 30, 2026 11:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

- run one RocksDB Server with Hubble by default
- persist Server and Hubble data in named volumes
- configure Hubble for direct Server discovery
- add a one PD, one Store, one Server topology
- keep Hubble in the same Compose project
- reduce the developer file to build overrides
- register all Server replicas through PD
- share authentication settings across Server replicas
- add focused render and auth-on smoke validation
- lead with the standalone topology
- document authentication and persistence lifecycle
- explain HStore development and focused validation
@imbajin
imbajin force-pushed the hubble-compose-addon branch from 2399ee4 to 5fd400b Compare August 30, 2026 18:48
@imbajin imbajin changed the title feat(docker): add attachable Hubble Compose add-on for the 3-node cluster feat(docker): rebuild Compose topologies with Hubble Aug 30, 2026
- bind Hubble to host loopback by default
- fail fast while generating the JWT secret
- add repeatable local auth-off smoke checks
@dosubot dosubot Bot removed the size:XL This PR changes 500-999 lines, ignoring generated files. label Aug 30, 2026
@dosubot dosubot Bot added the size:XXL This PR changes 1000+ lines, ignoring generated files. label Aug 30, 2026
@imbajin
imbajin requested a balanced review from Copilot August 30, 2026 19:04

This comment was marked as outdated.

- assert HStore backend and PD peers for every replica
- verify the shared Store REST target
- clarify first-start administrator password behavior

@imbajin imbajin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocking: yes. Compose render contracts and CI pass, but five current-head deployment gaps can prevent Hubble startup, expose an unauthenticated API, or make HA and upgrade behavior unsafe. These need explicit configuration or migration coverage before merge.

Comment thread docker/conf/hubble/standalone.properties
Comment thread docker/docker-compose.yml
Comment thread docker/docker-compose-3pd-3store-3server.yml
Comment thread docker/test-compose.sh Outdated
Comment thread docker/docker-compose.yml
- require a shared token secret for authenticated HA servers
- cover HA auth-on and auth-off entrypoint behavior
- bound Compose smoke requests with curl timeouts

@bitflicker64 bitflicker64 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at a02886c6. Mostly a simplification pass, framed as questions rather than requests: I rendered the Compose files and mutation-tested test-compose.sh to check each one, but you know the intent better than I do, so please confirm whether these actually hold.

Two are not simplifications and should be read first:

  1. The three per-server healthcheck overrides added to the HA file drop the anchor's interval, timeout, retries and start_period, because YAML merge keys are shallow. up -d --wait on HA can fail as a result, and deleting the overrides is both the fix and the smaller diff.
  2. In the new hstore file, Server, PD and Store publish to 0.0.0.0 while Hubble alone is loopback-gated.

The rest are ordinary laziness: the Hubble healthcheck collapses from 6 lines to 1 in all three files, the README repeats its lifecycle commands three times and hand rolls a render loop that test-compose.sh render already does better, and the .env block carries two lines that set -eu covers. Call it 100 lines on a PR that is already net negative.

One item is a correction rather than a finding. I expected to argue that the jq render contracts are change detectors, mutation testing said otherwise, and the details are in the comment on test-compose.sh.

Comment thread docker/docker-compose-3pd-3store-3server.yml Outdated
Comment thread docker/docker-compose-hstore.yml
Comment thread docker/docker-compose.yml
Comment thread docker/README.md
Comment thread docker/README.md Outdated
Comment thread docker/README.md
Comment thread docker/test-compose.sh
Comment thread docker/docker-compose-3pd-3store-3server.yml
- inherit complete health timing for every HA server
- assert the rendered HA timing and HStore cluster
- use the deterministic auth-on render command in docs

@imbajin imbajin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

submit a new issue for the individual hstore test error

@imbajin

imbajin commented Aug 31, 2026

Copy link
Copy Markdown
Member

The latest HStore failure is independent of this Compose PR: the exact base/master SHA and multiple other master SHAs fail the same VertexCoreTest.testQueryByJointIndexesWithSearchAndTwoRangeIndexesAndWithin assertion (expected 3, actual 1), while other heads on this branch pass. The recurring HStore issue, test history, and investigation boundary are tracked in #3180. I am rerunning the failed HStore job; no PR code change is warranted for this failure.

@imbajin imbajin changed the title feat(docker): rebuild Compose topologies with Hubble chore(docker): refactor docker-compose topologies with Hubble Aug 31, 2026
@imbajin
imbajin merged commit 98477f0 into apache:master Aug 31, 2026
32 of 36 checks passed
bitflicker64 added a commit to bitflicker64/hugegraph that referenced this pull request Sep 1, 2026
Picks up apache#3159 (321ba4d), the REST API adaptation for Hubble and the
k8s-mode enhancements that the pending confirmation pass depends on,
along with apache#3140, apache#3153, apache#3173, apache#3171, apache#3177, apache#3176, apache#3178 and apache#3149.

No conflicts, and no change to helm/.
bitflicker64 added a commit to bitflicker64/actions that referenced this pull request Sep 3, 2026
apache/hugegraph#3149 reworked the docker directory and turned
docker/docker-compose.dev.yml into a thin build overlay for the HStore
topology. That file no longer defines environment, networks or ports on
its own, so starting it alone leaves pd and store unconfigured:

  hg-pd    | ERROR: missing required env 'HG_PD_GRPC_HOST'
  hg-store | ERROR: missing required env 'HG_STORE_PD_ADDRESS'

Both containers exit immediately and the strict-mode job fails at
"Start compose stack with local images". The scheduled latest publish
has failed on master every night since that change landed.

Use docker/docker-compose-hstore.yml as the base topology and layer the
dev file on top when both are present. Source revisions that still ship
a self-contained dev file keep working through the existing fallback.

Ported from e2e52c0 on the topling-runtime-variant branch of hugegraph#28,
without the hunk for the restart-persistence step, which does not exist
on master.

Co-authored-by: dark <jin@apache.org>
bitflicker64 added a commit to hugegraph/hugegraph that referenced this pull request Sep 5, 2026
Brings the nine commits helm-dev was behind: apache#3140, apache#3149, apache#3159, apache#3171,
apache#3173, apache#3176, apache#3177, apache#3178 and apache#3182. The three conflicts were early copies
of apache#3159 and apache#3171 already carried on this branch (docker-build-ci.yml,
Dockerfile-hstore, ApiVersion.java) and resolve to the master side, so the
tree now differs from master only in the chart, its CI workflow, the README
pointer to it and the tgz excludes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] Add a Hubble Compose add-on to attach the dashboard to a running cluster

3 participants