Skip to content

Remap all sidecar images across Docker and Kubernetes - #173

Open
warp-agent-staging[bot] wants to merge 4 commits into
mainfrom
factory/sidecar-image-mappings
Open

warp-agent-staging[bot] wants to merge 4 commits into
mainfrom
factory/sidecar-image-mappings

Conversation

@warp-agent-staging

@warp-agent-staging warp-agent-staging Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Allow self-hosted workers to redirect every sidecar image to an operator registry on Docker and Kubernetes. This covers the main agent, coding-agent CLIs/ACP adapters, computer use, and future additional sidecars.

Implements REMOTE-3571.

What changed

  • Add backend.docker.sidecar_image_mappings and backend.kubernetes.sidecar_image_mappings, with Helm's kubernetesBackend.sidecarImageMappings equivalent.
  • Match normalized source repositories without tags/digests. Unpinned destinations retain the assigned tag/digest; pinned destinations replace the version entirely, as requested when mirrors do not contain every server-selected tag.
  • Apply mappings once to assigned sidecars, preserving order and mount options. Leave task, preflight, and pod-template service images unchanged.
  • Compile legacy sidecar_image and Kubernetes coding_cli_sidecars into mappings for official Warp agent and harness CLI/ACP repositories. Reject combining legacy options with explicit mappings. Legacy options no longer inject absent sidecars or override arbitrary source images by mount path; this compatibility change keeps one runtime resolution path.
  • Use the existing Docker credential configuration for destination-registry sidecar pulls. Kubernetes continues to use pod-template imagePullSecrets.
  • Reject malformed references, versioned source keys, and duplicate normalized source repositories before worker/backend startup.

Operators must keep mirrored versions available and ensure pinned images remain compatible with the server and agent.

Validation

  • GOMAXPROCS=2 go test -p 2 ./... -count=1 passed.
  • go vet ./..., go build ./..., and golangci-lint run passed (0 issues); changed Go files formatted with gofmt.
  • Helm 4.1.3 lint and default/custom renders passed.
  • Fake Docker Engine requests verify mapped pull references, destination credentials, and mounts. Fake Kubernetes Job creation verifies init-copy and native image-volume references. No live Docker daemon, Kubernetes cluster, or UI verification was used.

Plans:

@cla-bot cla-bot Bot added the cla-signed label Oct 19, 2026
@warp-agent-staging

Copy link
Copy Markdown
Contributor Author

This PR was generated with Warp.

Comment @warp-staging-factory on this PR to send it follow-up work.

View run View conversation View on Slack

@warp-agent-staging warp-agent-staging Bot added the factory:eng-factory-slim Label associated to the "eng-factory-slim" factory label Oct 19, 2026
@warp-agent-staging
warp-agent-staging Bot requested a review from bnavetta October 19, 2026 15:33
@warp-agent-staging
warp-agent-staging Bot marked this pull request as ready for review October 19, 2026 15:33
Comment thread charts/oz-agent-worker/values.yaml Outdated
Comment thread internal/worker/sidecar_image_mappings_test.go Outdated
Reject mixing legacy options with explicit mappings. Resolve only assigned official Warp repositories and remove mount-based overrides and missing-sidecar injection, as approved in review. Clarify the Helm mapping comment.
@warp-agent-staging
warp-agent-staging Bot requested a review from bnavetta October 20, 2026 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed factory:eng-factory-slim Label associated to the "eng-factory-slim" factory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant