Migrar o registry de container para o ECR
TLDR: Criar repositórios ECR na conta AWS shared como registry de container da organização, copiar as imagens em uso do registry antigo e apontar os projetos para o ECR — primeiro passo de descontinuar a DigitalOcean, já que os nós do EKS puxam do ECR nativamente pela role do nó, sem pull secret.
Contexto
A DigitalOcean está sendo descontinuada. O registry da organização era o DOCR (registry.digitalocean.com/wehive, gerido em src/platform/registry). A migração do gateway para o EKS expôs o custo de mantê-lo: pull privado do DOCR no EKS exige credencial explícita, e o token do gateway estava morto.
Decisão do usuário: abandonar completamente o trabalho de credencial e mover as imagens para o ECR na conta shared — a role do nó do EKS já tem AmazonEC2ContainerRegistryReadOnly, então o pull não precisa de configuração nenhuma por projeto.
Objetivos
- Repositórios ECR em
shared--productionpara as imagens da organização, com a lista dirigida por configuração (começando porgateway). - Imagem do gateway copiada para o ECR e seus deployments puxando de lá.
Fora de escopo
- Fazer o pipeline de build dar push no ECR — spec separada (build pipeline para ECR).
- Descomissionar o DOCR e o stack
platform/registry— spec separada (descomissionar DOCR). - Migrar os outros repos (onion-backend etc.) — cada um na sua vez, pelo mesmo caminho.
Mudanças
infrastructure
Novo stack src/shared/registry/terraform: um aws_ecr_repository por nome em var.registry_repositories (default ["gateway"]), imutabilidade de tag desligada (usa latest), scan no push e política de lifecycle mantendo as últimas 20 imagens. Provider com assume-role na TerraformRole da conta shared, chave de state stacks/shared/registry.
CI: filtro registry mais os jobs plan/apply baseados em ward em infra.yml e infra-pr.yml.
Operação pontual
Pull de registry.digitalocean.com/wehive/gateway:latest (com o token de infra — é ação de plataforma) e push em <shared>.dkr.ecr.us-east-1.amazonaws.com/gateway:latest.
gateway
Deployments (terraform + kustomize) com a imagem apontada para o ECR; remoção do trabalho de pull secret, do provider digitalocean e do uso de do_token.
Como verificar
aws ecr describe-repositoriesmostragateway, com a taglatestpresente depois da cópia.- Os pods do gateway no EKS puxam do ECR e chegam a
RunningsemimagePullSecrets. grep -rn digitalocean gateway/.infra/terraform→ nenhum provider restante.
Documentação
CLAUDE.md— seção de mudanças recentes.- Gaps do EKS revelados pela primeira migração de app.
⚠️ Pendência conhecida ao fechar esta spec: os pipelines continuavam empurrando para o DOCR, então um novo deploy do gateway atualizava o registry antigo, não o ECR. O follow-up precisava entrar antes da próxima release do gateway, ou as releases ficariam obsoletas.