Skip to content

FIAP-3SOAT-G15/infra-eks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IaC for EKS

IaC provisionada de EKS cluster na AWS com Terraform.

Repositório principal: tech-challenge

Recursos criados

Cluster do Elastic Kubernetes Service (EKS), com adição de AWS Secrets and Configuration Provider (ASCP) para utilização de secrets do Secrets Manager e parâmetros do SSM Parameter Store como um volume montado nos pods (conforme configuração de secret provider em manifesto do Kubernetes), AWS Load Balancer Controller (ao invés de in-tree controller) para uso de annotations para definir configurações como nome do load balancer, e uma IAM role para service account com as policies necessárias.

Dependências

  • VPC e as subnets privadas
  • Secrets (username e password) no SecretsManager e parâmetros (endpoint e nome do BD) no SSM Parameter Store para o RDS
  • Secrets da integração com o Mercado Pago no Secrets Manager

Essas dependências são criadas nos outros repositórios de infraestrutura da organização e são utilizadas neste repositório através remote state como data source.

Estrutura

.
├── .github/
│   └── workflows/
│       ├── manifest.yml      # deployment dos manifestos do Kubernetes
│       └── provisioning.yml  # provisionamento de IaC com Terraform
├── manifests/                # manifestos do Kubernetes
└── terraform/                # IaC com Terraform

Desenvolvimento

Para usar o kubectl, atualize o kubeconfig:

aws eks update-kubeconfig --name tech-challenge --region us-east-1 --profile my-profile

Considerando o profile definido em ~/.aws/credentials:

[my-profile]
aws_access_key_id     = **************
aws_secret_access_key = **************
region                = us-east-1

É necessário que este usuário IAM esteja configurado como IAM access entry no cluster, com a access policy AmazonEKSClusterAdminPolicy.

Teste de acesso:

kubectl auth can-i "*" "*"