Este repositório contém pipelines automatizadas para a construção, versionamento e deploy de imagens Docker no Oracle Kubernetes Engine (OKE). Abaixo estão descritos os principais workflows e instruções para o funcionamento das pipelines.
Este workflow é responsável por versionar automaticamente, construir e publicar as imagens Docker do serviço pagamentos.
-
Disparo:
- Ao abrir um pull request ou push na branch
mainque contenha alterações na pastapagamentos/. - Manualmente via
workflow_dispatch.
- Ao abrir um pull request ou push na branch
-
Etapas Principais:
- Checkout do Código: Faz o checkout do repositório para garantir que o código esteja disponível na pipeline.
- Configuração do Buildx: Configura o Docker Buildx para permitir builds multiplataforma.
- Login no Docker Hub: Autentica no Docker Hub usando as credenciais configuradas nos secrets.
- Versionamento Semântico: Gera uma nova versão baseada no último patch, incrementando automaticamente.
- Commit da Nova Versão: Atualiza o arquivo
VERSIONno repositório e comita a nova versão. - Build e Push da Imagem: Constrói e envia a imagem Docker para o Docker Hub com as tags de versão e
latest. - Scan de Vulnerabilidades: Utiliza o Snyk para escanear a imagem Docker em busca de vulnerabilidades.
Este workflow realiza o deploy da aplicação pagamentos no cluster Oracle Kubernetes Engine (OKE).
-
Disparo:
- Automático após a conclusão bem-sucedida da pipeline de build e push de imagem Docker.
-
Etapas Principais:
- Checkout do Código: Faz o checkout do repositório para garantir que a configuração necessária esteja disponível.
- Configuração do Kubectl: Autentica no OKE e configura o
kubectlpara operar com o cluster. - Deploy: Atualiza a imagem da aplicação no cluster Kubernetes com a versão
lateste verifica o status do rollout.
As pipelines utilizam secrets e variáveis de ambiente para garantir a segurança e flexibilidade:
- DOCKER_HUB_USERNAME: Nome de usuário do Docker Hub.
- DOCKER_HUB_PASSWORD: Senha do Docker Hub.
- OCI_CLI_USER: ID do usuário OCI para autenticação.
- OCI_CLI_TENANCY: Tenancy OCID no Oracle Cloud.
- OCI_CLI_FINGERPRINT: Impressão digital da chave OCI.
- OCI_CLI_KEY_CONTENT: Conteúdo da chave privada OCI.
- OKE_CLUSTER_OCID: OCID do cluster no Oracle Kubernetes Engine.
- SNYK_TOKEN: Token para autenticação no Snyk para scans de vulnerabilidades.
A pipeline de build e push é automaticamente acionada ao realizar um push ou pull request na branch main com alterações na pasta pagamentos/. Ela também pode ser executada manualmente pelo workflow_dispatch na interface do GitHub Actions.
A pipeline de deploy é automaticamente disparada após o sucesso da pipeline de build e push, garantindo que a imagem Docker mais recente seja implantada no cluster Kubernetes.