Infra-Kitchen
Nesta etapa apresentamos os processos e práticas adotados para o gerenciamento da infraestrutura utilizada no Tech Challenge 3. Contendo os detalhes para configurar, provisionar e gerenciar o Kubernetes no EKS, bem como as boas práticas para garantir um processo seguro e eficiente. O repositório que contém os manifestor do Terraform o infra-kitchen.
Requisitos e configuração do ambiente
A infraestrutura utiliza uma conta AWS Academy, que possui limitações de recursos e sessões com duração de 4 horas. É essencial seguir rigorosamente os passos abaixo para evitar atrasos ou inconsistências no provisionamento:
-
Configuração de credenciais:
- Inicie o laboratório na AWS Academy.
- Acesse o botão AWS Details e, em seguida, clique em AWS CLI para visualizar as credenciais temporárias.
- Copie e cole o conteúdo exibido diretamente no arquivo
~/.aws/credentials
no terminal.
-
Configuração no HCP:
- Atualize os valores das credenciais AWS nas configurações do HCP:
AWS_ACCESS_KEY_ID
,AWS_SECRET_ACCESS_KEY
eAWS_SESSION_TOKEN
. - Navegue para
Settings > Variable Set
nos workspaces HCP infra-kitchen e insira as variáveis mencionadas.
- Atualize os valores das credenciais AWS nas configurações do HCP:
-
Ferramentas necessárias:
- Certifique-se de ter o Terraform instalado localmente.
- Utilize as versões recomendadas no guia do Tech Challenge.
Validação local
Para garantir a integridade do código e identificar problemas antes de um deploy, utilize os comandos a seguir:
terraform init
: Inicializa o diretório local e prepara os plugins necessários.terraform fmt
: Corrige a formatação dos arquivos.tf
.terraform validate
: Verifica se as configurações são válidas e consistentes.terraform plan
: Gera um plano de execução para prever alterações na infraestrutura.
Integração com o HCP
Visão geral
Utilizamos o HCP Terraform para centralizar e padronizar o gerenciamento da infraestrutura. Este ambiente permite:
- Execuções consistentes do Terraform.
- Colaboração simplificada, com histórico compartilhado de alterações.
- Controle de acesso individualizado para membros da equipe.
Fluxo de trabalho
Fluxo automático
-
Execução automática do
terraform plan
:- A cada push, um plano de execução é gerado para prever mudanças.
- Após o merge de um PR, um novo
terraform plan
e umterraform apply
são executados automaticamente.
-
Monitoramento no HCP:
- Acompanhe os logs detalhados e status de execução através dos runs do HCP.
:material-hand-wrench: Etapas manuais
Em casos de erro, intervenções manuais podem ser necessárias. Certifique-se de registrar qualquer ajuste manual no log ou em uma issue do repositório desse projeto.
Tutorial: Provisionando a infra no EKS
-
Criar e executar merge de um pull request:
- Atualize os valores no HCP e no ambiente local.
- Submeta um PR no repositório e realize o merge na branch principal.
- A execução automática do
terraform plan
eterraform apply
será iniciada.
-
Obter o Kubeconfig:
- Após a infraestrutura estar ativa, utilize os comandos abaixo para configurar o acesso ao cluster Kubernetes:
aws eks --region us-east-1 update-kubeconfig --name EKS-lanchonete-cluster
kubectl cluster-info
❯ kubectl cluster-info
Kubernetes control plane is running at https://8A378062CC9AEEE22CD23D0F97BDBAF3.gr7.us-east-1.eks.amazonaws.com
CoreDNS is running at https://8A378062CC9AEEE22CD23D0F97BDBAF3.gr7.us-east-1.eks.amazonaws.com/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
- Deploy de manifestos no Kubernetes:
- Navegue até o repositório do app service.
- Configure o diretório de manifests com o comando:
Fluxos de destroy
Para evitar exclusões acidentais, os processos de destruição são restritos às configurações do HCP. Siga os passos abaixo:
- Acesse o workspace:
- Entre no HCP infra-kitchen workspace.
- Acione o destroy:
- Navegue para a aba Settings e selecione Destruction and Deletion.
- Programe ou inicie manualmente a destruição da infraestrutura.
Regras do repositório
- Boas práticas de versionamento:
- Utilize mensagens de commit claras e padronizadas.
- Realize revisões de PR com foco em consistência e segurança.
Integração contínua
Verificações automáticas com TFLint
O repositório que provisiona a infra no EKS repositório possui verificações automáticas via GitHub Actions para garantir a qualidade do código IaC. A cada commit, as seguintes ações são executadas:
- Formatação do Código: verificação de padrões estabelecidos para arquivos Terraform.
- Validação Sintática: garantia de que as configurações não contenham erros estruturais.
Certifique-se de revisar os relatórios gerados no plan/apply e tente corrigir quaisquer problemas antes de enviar novas alterações.