Repository navigation
fix(#47): stop rendering -Darcadedb.gremlin.port; refuse a Gremlin port other than 8182 - #53
Merged
Merged
Conversation
… port other than 8182 The Gremlin plugin reads its port from gremlin-server.yaml and gremlin.* context keys, never from a -D system property, so the flag was a no-op while the Service and NetworkPolicy followed arcadedb.plugins.gremlin.port. Drop the flag, fail the render on any other port, and remove the key from the drift-guard allowlist. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 22, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #47
With
arcadedb.plugins.gremlin.enabled: truethe chart rendered-Darcadedb.gremlin.port=<port>, which the server never reads:GremlinServerPlugintakes its port fromgremlin-server.yaml(the image's sets none, so TinkerPop's default 8182) and fromgremlin.*context keys, and no-Dbecomes a context key.server-configuration.jsonis no way in either, sinceContextConfiguration.fromJSONdrops keys that are notGlobalConfigurationsettings. So the chart cannot move the port. This PR stops rendering the flag, fails the render whenarcadedb.plugins.gremlin.portis anything other than 8182 (so the Services and NetworkPolicy can no longer point at a port nothing listens on), documents the constraint invalues.yamland the README, and removesarcadedb.gremlin.portfromci/config-keys-allowlist.txt. Making the port configurable is tracked in #52.Test plan
helm unittest charts/arcadedb: 22 suites, 348 tests pass (newtests/gremlin_port_test.yaml;helpers_test.yamlnow asserts the flag is absent)helm lint charts/arcadedbbash ci/check-config-keys.shagainstarcadedata/arcadedb:26.10.2with the allowlist entry removed:OK: every rendered -Darcadedb.* key is a setting of arcadedata/arcadedb:26.10.2./home/arcadedb/config/gremlin-server.yamlhas noport:line (onlyhost: 0.0.0.0), so 8182 is TinkerPop's defaultCoverage
Invariant: the chart never advertises a Gremlin port (Service, NetworkPolicy) other than the one the server listens on, and renders no
-Darcadedb.*key the server does not read.Every consumer of
arcadedb.plugins.gremlin.portgoes through_arcadedb.plugin.ports:arcadedb.plugin.parameters)gremlin_port_test,helpers_test)arcadedb.plugin.service)service.external.enabled)arcadedb.plugin.networkPolicy)networkPolicy.enabled)"7777")intSiblings: the other plugin
-Dport keys (arcadedb.bolt.port,arcadedb.postgres.port,arcadedb.mongo.port,arcadedb.redis.port) areGlobalConfigurationsettings, whichci/check-config-keys.shconfirms against 26.10.2 (0 unknown keys, empty allowlist).A note on the tests: Helm renders every template of a release and
statefulset.yamlis always one of them, so thefailshows up atstatefulset.yamleven underhelm template -s templates/service.yaml. The failure tests therefore assert on the StatefulSet, with the Service and NetworkPolicy variants enabled.Known gaps
gremlin-server.yamlon the config volume with a differentport, which used to work whenarcadedb.plugins.gremlin.portwas set to match. Tracked in Allow a Gremlin port other than 8182 (follow-up to #47) #52 (core setting, chart-managedgremlin-server.yaml, or an opt-out).Adversarial pass
Not run: this agent session had no Task/subagent tool, so the independent Phase 1.5 reviewer could not be spawned. I checked the edge cases myself instead:
port: 0/false/unset all resolve to 8182 throughdefault; a string port is compared by value; a disabled entry is ignored.Review cycles
7b52137, initial fix. Noclaudereview arrived within 15 minutes. The repo has no Claude Code Review workflow (.github/workflowsholds onlyintegration-reusable.yml,latest-image.yml,lint.yml,release.yml), and fix(#39): seed server-groups.json and gremlin-server.* into the config volume #50 and fix(#49): seed server-groups.json on the native image from the JVM image #51 got no bot review either. CI ("Lint, Unit Tests, Integration Tests") passed: 5 checks green.Deferred items
None (no review feedback received).
Final state
timeout: no bot reviewer is configured on this repo, so this needs a human review.🤖 Generated with Claude Code