Skip to content
This repository has been archived by the owner on Jul 30, 2024. It is now read-only.
/ techmedicos-iac Public archive

Repositório dedicado ao projeto Hackaton da FIAP

License

Notifications You must be signed in to change notification settings

g12-4soat/techmedicos-iac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TECHMEDICOS

Tech Medicos IaC

Projeto Hackaton

Este repositório contém o código Terraform necessário para provisionar a infraestrutura na AWS e automatizar o deploy contínuo (CD) da nossa aplicação do Hackaton da FIAP - Turma 4SOAT.

Descrição

Este projeto faz parte do desafio hackaton do curso de pós-graduação em Arquitetura de Software oferecido pela FIAP. Nosso objetivo é demonstrar a utilização de práticas modernas de infraestrutura como código (IaC) e integração contínua/entrega contínua (CI/CD) para implantar e gerenciar aplicativos em um ambiente de Kubernetes na AWS. Em resumo o objetivo central é demonstrar como a integração dessas práticas pode melhorar o ciclo de vida dos aplicativos, abrangendo desde o desenvolvimento até a produção, e promover um fluxo de trabalho ágil e eficiente através da aplicação de metodologias e ferramentas modernas para a construção de sistemas robustos, escaláveis e automatizados.

Documentação

Conteúdo:

src/: Este diretório contém todos os arquivos Terraform necessários para provisionar a infraestrutura na AWS.

k8s/: Aqui você encontrará os arquivos de manifesto Kubernetes necessários para implantar nossa aplicação nos clusters provisionados.

Stack

Como executar o terraform local?

Executando o Projeto

O procedimento para executar o Terraform local é simples e leva poucos passos:

  1. Clone o repositório: https://github.com/g12-4soat/techmedicos-iac

  2. Abra a pasta via linha de comando no diretório escolhido no passo 1. Ex.: c:> cd “c:/techmedicos-iac”

Rodando Terraform

Da raiz do repositório, entre no diretório ./src (onde se encontram todos os scripts Terraform), e execute os seguintes comandos no terminal:

Iniciando o Terraform

c:\techmedicos-iac/src/terraform> terraform init

Validando script Terraform

c:\techmedicos-iac/src/terraform> terraform validate

Verificando plano de implantação do script

c:\techmedicos-iac/src/terraform> terraform plan

Aplicando plano de implantação do script

c:\techmedicos-iac> terraform apply

Como configurar os pods no cluster AWS?

Instalar AWS CLI

Certifique-se de ter o AWS CLI instalado e configurado em seu sistema. Você pode baixá-lo e instalá-lo seguindo as instruções fornecidas em AWS CLI Installation.

Configurar o AWS CLI

Após a instalação, você precisa configurar o AWS CLI com suas credenciais. Isso pode ser feito executando o comando aws configure no seu terminal e fornecendo as credenciais da AWS quando solicitado. Certifique-se de configurar o AWS CLI com as credenciais que têm permissões para acessar o cluster EKS.

Configurar o kubectl

O kubectl é uma ferramenta de linha de comando usada para interagir com clusters Kubernetes. Você precisa configurá-lo para acessar o cluster EKS. Isso pode ser feito executando o comando aws eks update-kubeconfig com o nome do seu cluster e a região onde ele está localizado. Por exemplo: aws eks update-kubeconfig --name <NOME_DO_CLUSTER_EKS> --region <REGIÃO>

Verificar a conexão

Após configurar o kubectl, você pode verificar se está conectado ao cluster corretamente executando um comando como kubectl get nodes. Isso deve retornar uma lista dos nós (nodes) no seu cluster EKS.

Executar apply Kubernetes

Da raiz do repositório, entre no diretório ./k8s (onde se encontram todos os manifestos .yaml para execução no kubernetes), dê um duplo clique no arquivo "apply-all.sh" ou execute o seguinte comando no terminal:

Windows

PS c:\tech-medicos\k8s> sh apply-all.sh

Unix Systems (Linux distros | MacOS)

$ exec apply-all.sh

Versões

Software

  • Terraform - >= 0.13

Dependências


Pipeline Status

Pipeline Status
Deploy AWS Infrastructure Deploy Infrastructure
Apply K8s Deployments Apply Deployments

Visite a nossa Wiki