Repository navigation
feat(#62): boot Gremlin on a non-default port via writePortToConfig in CI - #67
Merged
robfrank merged 2 commits intoOct 23, 2026
Merged
Conversation
…n CI Add ci/integration-test-gremlin.sh (make test-integration-gremlin) and an integration-gremlin-port job: a single node with the Gremlin plugin on 8183 through arcadedb.plugins.gremlin.writePortToConfig. The suite checks that config-seed ran under readOnlyRootFilesystem and logged the port it wrote, that gremlin-server.yaml carries it, that the plugin listens on it, and that another pod reaches it through the Service; then helm upgrade moves the port to 8184, the pod rolls, and the same checks run, plus 8183 is closed. The latest-image guard runs the same job against latest. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 23, 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 #62
Adds a real-pod check for
arcadedb.plugins.gremlin.writePortToConfig(#58).ci/integration-test-gremlin.sh(make test-integration-gremlin) runs in a newintegration-gremlin-portPR job, and againstlatestin the latest-image guard asintegration-latest-gremlin-port. Both jobs go throughintegration-reusable.ymlwith a newgremlinPortinput (0 = off). The job installs a single node with Gremlin on 8183 throughwritePortToConfigand runs the main suite. The Gremlin suite then checks four things on that port: config-seed ran withreadOnlyRootFilesystem: trueand loggedconfig-seed: set port: 8183 in gremlin-server.yaml;gremlin-server.yamlon the config volume has the single lineport: 8183; the plugin started and listens on 8183; another pod connects totest-arcadedb:8183through the Service. After that,helm upgrade --reuse-values --set arcadedb.plugins.gremlin.port=8184replaces the pod (its UID is checked) and the same checks run on 8184, plus a check that 8183 is no longer listening. The Gremlin plugin stays out of the HA runs, as the issue asked.One difference from the suggested check: the server log does not name the Gremlin port. TinkerPop logs through SLF4J, which has no binding in the image (
SLF4J: Defaulting to no-operation (NOP) logger), so "Channel started at port" is never printed. The suite checks the log forGremlinServerPlugin plugin startedand reads the port from the pod's listening sockets (netstat -ltn) instead.Test plan
ARCADEDB_OPTS_MEMORY=-Xms384M -Xmx768M):REPLICAS=1 make test-integrationpasses all 12 phases with Gremlin on, andGREMLIN_PORT=8183 make test-integration-gremlinpasses all 4 phases (8183, then 8184 after the upgrade)GREMLIN_PORT=8185against a release on 8184 fails at[2/4a]withconfig-seed did not log 'config-seed: set port: 8185 in gremlin-server.yaml'GREMLIN_PORT=70000andGREMLIN_UPGRADE_PORT == GREMLIN_PORTare refusedshellcheck ci/integration-test-gremlin.sh,actionlint .github/workflows/*.yml,make lintintegration-gremlin-portgreen (run 39942395696)Coverage
Invariant: a Gremlin port the chart writes through
writePortToConfigis the port the running plugin binds and that the Service reaches, on install and after an upgrade that changes it.port:underreadOnlyRootFilesystem[2/4a]to[2/4d]helm upgradethat changes the port: config-seed keeps the file on the PVC and rewritesport:, the pod rolls[3/4],[4/4a]to[4/4d][4/4c]gremlin-server.yaml)integration-latest-gremlin-portinlatest-image.ymltests/gremlin_port_write_test.yaml)image.flavor=nativeportManagedExternally: true(#52), the other route to a non-default portKnown gaps:
portManagedExternallyon a real pod, tracked in #66. NetworkPolicy enforcement is argued above.Adversarial pass
The separate reviewer subagent did not run: this session had no subagent tool. I reviewed the patch myself instead. That covers less, because I wrote the code. What I found:
kubectl logs ... | grep -qunderpipefailfailed on the first local run, because grep closed the pipe early and kubectl got SIGPIPE. Fixed in this branch: logs are read into a variable before grep.kubectl runfail with AlreadyExists. Fixed in this branch (fix(#62): wait out a probe pod ...).portManagedExternally, has no real-pod check. Filed as Integration test: boot Gremlin on a port set by the user's own gremlin-server.yaml (portManagedExternally, follow-up to #62) #66.Review cycles
4951d1e- no review arrived within 15 minutes. This repo has noClaude Code Reviewworkflow (gh run list --workflow "Claude Code Review"finds none), and no bot has commented on recent PRs (feat(#56): boot the explicit-token, single-node and >= 26.11.1 root-password-file routes in CI #65) either. Every CI check passed, including the newintegration-gremlin-port(1m28s).Deferred items
None. No review feedback came in.
Final state
timeout: no reviewer bot is configured on this repository. Merging is up to the developer.🤖 Generated with Claude Code