Skip to content

Publish + pull arbor images from ghcr.io#109

Open
jee7s wants to merge 1 commit into
mainfrom
ghcr-image-publish
Open

Publish + pull arbor images from ghcr.io#109
jee7s wants to merge 1 commit into
mainfrom
ghcr-image-publish

Conversation

@jee7s

@jee7s jee7s commented Jun 13, 2026

Copy link
Copy Markdown
Collaborator

What

Moves arbor's agent + migrate images from ECR → private ghcr.io (ghcr.io/innovationtreehouse/arbor-agent). Part of the egress/ghcr migration; companion to infra PR #72 (drops ECR VPC endpoints, adds repositoryCredentials to the task defs) — merge/apply that first.

Changes

  • deploy-dev.yml / promote-prod.yml: amazon-ecr-logindocker/login-action against ghcr.io (packages: write, GITHUB_TOKEN); all image build/tag/push + task-def image swaps use ghcr.io; existence checks use docker buildx imagetools inspect.
  • Fargate migrate run-taskassignPublicIp=ENABLED (it pulls the private ghcr image over the public internet now that the ECR endpoint is gone; previously relied on the ECR PrivateLink endpoint with DISABLED).
  • packages/lambda/src/index.ts ensureAgentRunning(): env-gated RunTask. With ECS_CAPACITY_PROVIDER set (prod → arbor-prod-provider) it launches on that capacity provider with no networkConfiguration (host-mode agent egresses via the instance's public IP). Unset (dev) keeps the existing Fargate + awsvpc + public-IP path. Backward-compatible.

⚠️ Required out-of-band / follow-ups

  • ghcr packages arbor-agent must exist and be writable by the repo's GITHUB_TOKEN (or set a PAT), and readable by the infra ghcr-pull-credentials secret used in ECS.
  • Prod Lambda env: set ECS_CAPACITY_PROVIDER=arbor-prod-provider on arbor-webhook-prod (wherever the Lambda env is configured) so the prod agent launches host-mode. Leave it unset on dev.
  • Not CI-validated here (no runner); the unused ACCOUNT/REGION env on the register-task-def steps were left in place to minimize the diff.

🤖 Generated with Claude Code

Switches the dev deploy and prod promotion to build/push and reference the
agent + migrate images on ghcr.io/innovationtreehouse/arbor-agent instead of
ECR. Companion to the infra PR that drops the ECR VPC endpoints and adds
repositoryCredentials to the task defs.

- deploy-dev.yml / promote-prod.yml: replace amazon-ecr-login with a ghcr.io
  docker/login-action (packages: write); image tags + task-def image swaps now
  use ghcr.io; image-existence checks use `docker buildx imagetools inspect`.
- Fargate migrate run-task now uses assignPublicIp=ENABLED (it pulls the
  private ghcr image over the public internet now that the ECR endpoint is gone).
- lambda ensureAgentRunning(): env-gated RunTask. If ECS_CAPACITY_PROVIDER is
  set (prod → arbor-prod-provider) it launches on that capacity provider with
  no networkConfiguration (host-mode agent egresses via the instance IP); unset
  (dev) keeps the Fargate + awsvpc + public-IP behavior. Backward-compatible.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jee7s jee7s requested a review from dkaygithub June 17, 2026 02:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant