Repository navigation
feat(#66): boot Gremlin on a port set by the user's own gremlin-server.yaml in CI - #68
Merged
Merged
Conversation
…r.yaml in CI Adds ci/integration-test-gremlin-external.sh and the integration-gremlin-port-external job (and its latest-image twin) for arcadedb.plugins.gremlin.portManagedExternally. The suite writes a gremlin-server.yaml with port: 8185 on the config volume and restarts the pod, then mounts one with port: 8186 from a ConfigMap via helm upgrade. On each it checks that config-seed keeps the file and sets no port, that the plugin listens on the file's port and not the previous one, and that the Service reaches it. The helpers shared with ci/integration-test-gremlin.sh move to ci/gremlin-lib.sh. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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 #66
Adds a real-pod check for the second route to a non-default Gremlin port,
arcadedb.plugins.gremlin.portManagedExternally: true(#52). Until now it had only helm-unittest coverage. The new jobintegration-gremlin-port-externalinstalls a single node with the plugin on 8185 and runsci/integration-test-gremlin-external.sh. The script covers both ways a user's owngremlin-server.yamlcan reach the server. First it writes the file on the config volume and restarts the pod. Then it useshelm upgradeto mount a second file, withport: 8186, from a ConfigMap on<configDirectory>/gremlin-server.yaml. On each route it checks that config-seed logskeeping existing gremlin-server.yamlwith noset port:line and noGREMLIN_PORTenv, that the plugin listens on the file's port and not the previous one, and that a TCP connect through the Service succeeds. On the volume route it also checks that the file is unchanged byte for byte. The latest-image guard gets the same job asintegration-latest-gremlin-port-external. The helpers shared with the #62 suite (retry,listening,service_connect, the probe pod, and so on) move toci/gremlin-lib.sh. The reusable workflow gains agremlinPortRouteinput (write|external, defaultwrite, so existing jobs are unchanged).Test plan
shellcheck -xonci/gremlin-lib.sh,ci/integration-test-gremlin.sh,ci/integration-test-gremlin-external.sh: cleanactionlint .github/workflows/*.yml: cleanmake lint: passes (chart untouched)portManagedExternally, port 8185):make test-integration-gremlin-externalpasses all of phases 1-4make test-integration-gremlinon awritePortToConfigrelease with port 8183 still passes (8183 then 8184)writePortToConfigrelease on 8185 fails in phase 1 (nothing listens on 8182), so it does detect the chart moving the portintegration-gremlin-port-externalandintegration-gremlin-portgreenCoverage
Invariant: with
portManagedExternally: true, the Gremlin plugin binds the port that the user's owngremlin-server.yamlsets. config-seed never edits that file, and the Service reaches the port.<configDirectory>/gremlin-server.yaml(the route the chart's own error message at_helpers.tpl:751points to)helm upgrade)latest)integration-latest-gremlin-port-externalimage.flavor=native(_helpers.tpl:152)tests/gremlin_port_external_test.yamlservice.external.enabled)gremlin_port_external_test.yamlKnown gaps: None.
Adversarial pass
No subagent tool was available in this unattended run, so the Phase 1.5 independent pass did not run. I reviewed the work myself instead, and it found two things. First, the issue's suggested check covers only the on-volume file. The ConfigMap-mount route is a second real entry point, so it is covered here (phase 4). Second, NetworkPolicy and the native flavor cannot be tested on kind or do not apply; the evidence is in the table above.
Review cycles
b7e2d1a: no review arrived within 15 minutes. NoClaude Code Reviewworkflow runs on this repo: the only run on the branch isCI - Lint, Unit Tests, Integration Tests, and feat(#62): boot Gremlin on a non-default port via writePortToConfig in CI #67 had no bot review either. All CI checks pass, including the newintegration-gremlin-port-external(2m3s).Deferred items
None.
Final state: timeout (no reviewer responded). The developer owns review and merge.
🤖 Generated with Claude Code