feat(#780): migrate OpenShell to Podman driver - #919
Conversation
|
fullsend review is working on this — view logs |
Site previewPreview: https://2915733a-site.fullsend-ai.workers.dev Commit: |
ReviewFindingsLow
Info
Previous runReviewFindingsLow
Info
Previous run (2)Review: #919Head SHA: 31757b0 SummaryThis PR cleanly migrates from K3s-in-Docker (v0.0.36) to a standalone Podman-backed gateway (v0.0.38), aligning with the investigation and benchmarks in #780. The action.yml restructuring, Go code changes, and policy schema updates are all internally consistent and well-motivated. No critical or high findings — the items below are medium/low observations worth considering before or after merge. FindingsMedium
Low
Info
FooterOutcome: comment-only Previous run (3)Review: #919Head SHA: 8579f32 SummaryThis PR correctly migrates the OpenShell gateway from K3s-in-Docker (v0.0.36) to a standalone Podman driver (v0.0.38), aligning with issue #780. The Go code changes ( FindingsCriticalNone. High
Medium
LowNone. Info
FooterOutcome: request-changes Previous run (4)Review: #919Head SHA: 9dab960 SummaryThis PR migrates the OpenShell gateway from K3s-in-Docker (v0.0.36) to a standalone Podman driver (v0.0.38), aligning with issue #780. The Go changes are clean — FindingsCriticalNone. High
Medium
Low
Info
FooterOutcome: request-changes Previous run (5)Review: #919Head SHA: 93cca84 SummaryThis PR migrates the OpenShell gateway from K3s-in-Docker (v0.0.36) to a standalone FindingsHigh
Medium
Low
Info
FooterOutcome: request-changes Previous run (6)Review: #919Head SHA: 73ac265 SummaryThis PR migrates the OpenShell gateway from K3s-in-Docker (v0.0.36) to a standalone FindingsHigh
Medium
Low
FooterOutcome: request-changes Previous run (7)Review: #919Head SHA: 9d60454 SummaryThe PR migrates OpenShell from K3s-in-Docker (v0.0.36) to a standalone Podman-based gateway (v0.0.38), updating FindingsHigh
Medium
Low
Info
FooterOutcome: request-changes Previous run (8)Review: #919Head SHA: 01ac98d SummaryThis PR migrates the OpenShell gateway from K3s-in-Docker (v0.0.36) to a standalone FindingsMedium
Low
Info
FooterOutcome: comment-only Previous run (9)Review: #919Head SHA: 9d60454 SummaryThis PR migrates the OpenShell gateway from Docker/K3s to a standalone Podman driver, addressing issue #780. The core migration pattern (standalone gateway binary, rootless Podman, CLI registration) is sound and follows the prototype validated in the issue discussion. However, the gateway startup configuration is missing several flags present in the tested prototype ( FindingsHigh
Medium
Low
Info
FooterOutcome: request-changes Previous run (10)Review: #919Head SHA: c3923eb SummaryThis PR successfully migrates the OpenShell gateway from a K3s-in-Docker approach (v0.0.36) to a standalone gateway binary with Podman driver (v0.0.38). The core changes are well-structured: action.yml adds proper Podman setup and gateway lifecycle management, FindingsMedium
Low
Info
FooterOutcome: comment-only |
|
fullsend review is working on this — view logs |
|
fullsend fix is working on this — view logs |
- Add --port 8080 and --ssh-gateway-port 8080 flags to gateway startup to match the validated prototype from issue #780 - Set OPENSHELL_SUPERVISOR_IMAGE env var on the gateway process - Pass SSH handshake secret via OPENSHELL_SSH_HANDSHAKE_SECRET env var instead of --ssh-handshake-secret CLI flag (avoids /proc exposure) - Add pre-pull step for supervisor and base sandbox images - Revert unrelated policy file changes (api.anthropic.com endpoint, protocol/access value changes) — these should be in a separate PR with their own justification - Document podman-only diagnostics in sandbox.go Addresses review feedback on #919 Signed-off-by: fullsend-fix <fullsend-code@users.noreply.github.com>
🔧 Fix agent — iteration 1 (bot-triggered)Addressed all 6 review findings: added missing gateway port flags and supervisor image env var from the validated prototype, reverted unrelated policy file changes, added image pre-pull step, moved SSH secret to env var, and documented podman-only diagnostics. Fixed (6):
Tests: passed Decision points
Updated by fullsend fix agent |
|
fullsend review is working on this — view logs |
|
/stop-fix |
01ac98d to
9d60454
Compare
|
fullsend review is working on this — view logs |
|
fullsend review is working on this — view logs |
73ac265 to
4274123
Compare
|
fullsend review is working on this — view logs |
|
fullsend review is working on this — view logs |
…drop IfNotPresent Supervisor image tagged by version starts at 0.0.41; use release commit SHA for 0.0.38. Extract OPENSHELL_VERSION env var so CLI, gateway, and supervisor versions are co-located. Drop --sandbox-image-pull-policy since Podman default (missing) matches intended behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This reverts commit 8579f32.
This reverts commit 93cca84.
Removes name filter so diagnostic logs capture all sandbox containers, not just the one matching the expected name. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The github_artifacts section was added to retro.yaml on main after the PR branched. Rebase preserved it but left it using the old protocol: tcp / access: allow values which are rejected by OpenShell v0.0.38. Update to protocol: rest / access: read-write to match all other policy endpoints. Signed-off-by: Wayne Sun <gsun@redhat.com>
- sandbox.go: CheckGateway captures CombinedOutput and validates non-empty output for better error messages - sandbox.go: Extract collectPodmanLogs helper with name filtering, --tail cap, LookPath guard, timeout, and 1MB size limit - harness.go: ValidateRunnerEnvWith uses LookupEnv semantics to distinguish unset vars from empty-string vars (fixes fix agent HUMAN_INSTRUCTION validation failure) - run.go: Add gateway check timing and wire new lookup function - action.yml: Pin setup-uv to SHA, add arch detection and retry loop for gateway download, mask SSH secret, bind to 127.0.0.1 - policies: Split triage vertex_ai into vertex_ai + github_api, downgrade review/retro github_api access to read-only - docs: Fix fullsend version -> --version, document GITHUB_WORKSPACE and fix agent env vars for local runs, add policy protocol troubleshooting entry Signed-off-by: Wayne Sun <gsun@redhat.com>
- Remove unused RUNNER_ARCH env var from gateway download step - Remove curl from triage github_api binaries for policy consistency - Tighten gitleaks_releases and package_registries to read-only access - Add test for ValidateRunnerEnvWith empty-string-allowed semantics - Report container log collection errors instead of silently skipping - Remove unused OPENSHELL_PODMAN_SOCKET export from GITHUB_ENV - Deduplicate OPENSHELL_VERSION into a single GITHUB_ENV step - Use openssl instead of python3 for handshake secret generation - Add comment header and formatting to prioritize.yaml policy - Surface gateway logs on health check timeout failure Signed-off-by: Wayne Sun <gsun@redhat.com>
31757b0 to
179e6f8
Compare
Local Agent Test Results (post-rebase + review fixes)Branch rebased onto latest Environment: macOS ARM64,
7/7 agents pass. All JSON-producing agents validated against their respective schemas via the built-in Review fixes applied in this push
|
Signed-off-by: Hector Martinez <hemartin@redhat.com>
Summary
Migrate OpenShell gateway from K3s-in-Docker (v0.0.36) to standalone Podman driver (v0.0.38). Closes #780.
Gateway & action.yml
openshell-gatewaybinary + rootless Podman--drivers podmanand register viaopenshell gateway add/select--port,--ssh-gateway-port) andOPENSHELL_SUPERVISOR_IMAGEare omitted — v0.0.38 defaults match the validated prototype valuesOPENSHELL_SSH_HANDSHAKE_SECRETenv var (not CLI flag)Policy files (all 6 agent types)
These changes are required by OpenShell v0.0.38's updated network policy schema:
protocol: tcp→protocol: rest: v0.0.38 enforces protocol-aware inspection.tcpis no longer valid for HTTPS API endpoints.access: allow→access: read-write: v0.0.38 replaces the binaryallow/denymodel with granular access levels.read-writeis the equivalent of the previousallow.api.anthropic.com:443tovertex_ainetwork policy: agents now call the Anthropic API directly (in addition to Vertex AI). This endpoint was previously missing — without it, agent sandbox network requests to Anthropic are blocked by the firewall policy.Go changes
CheckGateway()(sandbox.go): Renamed fromEnsureGateway. Changed from "start-if-needed" to "verify-running" semantics. v0.0.37 removedopenshell gateway start; the gateway must now be pre-started externally. Verifies registration viaopenshell gateway list— liveness is guaranteed by the CI setup step's health check.sandbox.go): On sandbox failure, collectpodman psandpodman logsinstead of Docker equivalents. These are Podman-specific and will silently return nothing if a different driver is used — this is intentional, asopenshell logsmay not be reachable when the sandbox has crashed.Test plan
ubuntu-latestrunnerpodman ps/podman logs