Skip to content

Latest commit

 

History

History
54 lines (37 loc) · 2.44 KB

README.md

File metadata and controls

54 lines (37 loc) · 2.44 KB

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 "*" "*"