Pipeline de build empurrando para o ECR
TLDR: Mudar os workflows reutilizáveis
package.ymleship.ymlpara 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.ymlbuildando 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_NAMEresolvido 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 aaws-actions/amazon-ecr-login, precedido deaws-actions/configure-aws-credentials. O repositório ECR precisa existir — é gerido porsrc/shared/registry, então o nome do app tem que estar emregistry_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); removerDOCR_TOKENquando 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_repositoriesemsrc/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)