Pipeline de build empurrando para o ECR

TLDR: Mudar os workflows reutilizáveis package.yml e ship.yml para buildar e empurrar a imagem para o ECR compartilhado (via OIDC/assume-role) em vez do registry da DigitalOcean, para que a release nova aterrisse onde o EKS puxa — a última peça antes de o DOCR poder ser descomissionado.

Contexto

As imagens já rodam a partir do ECR (<shared-account>.dkr.ecr.us-east-1.amazonaws.com/<app>, criado por src/shared/registry), e o EKS puxa de lá nativamente. Mas o pipeline de build ainda empurrava para o DOCR: package.yml fazia login em registry.digitalocean.com com DOCR_TOKEN e dava push em IMAGE_NAME:<tag>.

Ou seja: toda release nova do gateway (e de qualquer app migrado) atualizava o registry antigo, não o ECR — os pods em execução ficariam obsoletos.

Este era o follow-up mais urgente da descontinuação da DigitalOcean: até ele entrar, um deploy do gateway silenciosamente não fazia efeito no cluster real.

Objetivos

  • package.yml buildando e empurrando para o ECR nos apps cuja imagem vive lá.
  • Autenticação no ECR pela conta shared, preferindo OIDC (assume-role com o usuário de terraform como fallback) — sem chave de longa duração se possível.
  • ship.yml (image set do kustomize / deploy) referenciando a imagem do ECR.
  • IMAGE_NAME resolvido para o host do ECR nos apps migrados.

Fora de escopo

  • Migrar todos os apps de uma vez. O rollout é por app (gateway primeiro), então app não migrado continua no registry antigo até a sua vez.
  • Descomissionar o DOCR e o src/platform/registry — só depois de todos os apps migrarem.

Mudanças

ibft-corp/pipelines

  • package.yml: o passo de login no registry antigo (docker/login-action) dá lugar a aws-actions/amazon-ecr-login, precedido de aws-actions/configure-aws-credentials. O repositório ECR precisa existir — é gerido por src/shared/registry, então o nome do app tem que estar em registry_repositories.
  • ship.yml: mesmo host de registry na referência da imagem deployada.
  • Inputs/secrets: adicionar o caminho de autenticação AWS (ARN da role OIDC ou AWS_* do chamador); remover DOCR_TOKEN quando todos os apps tiverem migrado.

commons

shell/tasks/ci/args/resolve.sh: IMAGE_NAME → <shared-account>.dkr.ecr.<region>.amazonaws.com/<app> para os apps migrados, dirigido por configuração ou flag por app, para permitir rollout gradual.

infrastructure

  • Garantir que cada app em migração tenha repositório ECR (registry_repositories em src/shared/registry/terraform).
  • Se usar OIDC: uma role IAM confiando no provider OIDC do GitHub, com permissão de push (ecr:*) nos repositórios.

Como verificar

  • Um build de release empurra uma tag nova para o ECR (aws ecr describe-images --repository-name gateway).
  • O deploy rola o deployment do EKS para a tag nova; os pods puxam e rodam.
  • O registry antigo não recebe push novo para os apps migrados.

Documentação

— (não registrado na spec original)