Skip to content

Latest commit

 

History

History
100 lines (73 loc) · 2.76 KB

README.md

File metadata and controls

100 lines (73 loc) · 2.76 KB

aws-eks

Diagrama.

Alt text

Instruções.

  1. Primeiramente configure as credenciais e/ou o AWS CLI caso vá rodar localmentel, segue a doc

  2. Instale o terraform ou opentofu

  3. Faça um clone do projeto com

git clone --recursive [email protected]:juam-sv/aws-eks.git
  1. Altere o arquivo de configuração do cluster caso ache necessário,

  2. Opcionalmente, caso tenha criado novos workspaces no arquivo config.yaml. crie os correspondentes no terraform.

$ tofu workspace new dev-produto1-us-east-1
$ tofu workspace select dev-produto1-us-east-1
# config.yaml
workspaces:
  default: #workspace default
    region: "us-east-1"
    eks:
      - name: cluster1 #Nome do cluster
...
      - name: cluster2
...
  workspace1:
    region: "us-west-1"
    eks:
      - name: cluster3
...
  1. Faça o deploy do cluster usando o terraform/opentofu
$  cd  terraform
$  tofu  init
$  tofu  apply
  1. Opcionalmente, Gere o kubeconfig e faça o deploy do manifesto localmente, se não rode direto a pipe que ela também faz o deploy da aplicação.
$  aws eks update-kubeconfig --region us-east-1 --name cluster1
$  kubectl apply -f k8s/app.yaml
deployment.apps/api-labs  created
service/external-api-labs-service  created
horizontalpodautoscaler.autoscaling/api-labs  created
  1. Verifique e teste o endpoint gerado.
$  kubectl  get  svc
NAME  TYPE  CLUSTER-IP  EXTERNAL-IP  PORT(S)  AGE
external-api-labs-service  LoadBalancer  123.456.789.123  endpoint.elb.us-east-1.amazonaws.com  5000:30808/TCP  69m
kubernetes  ClusterIP  123.20.0.1  <none>  443/TCP  83m

$  curl  http://endpoint.elb.us-east-1.amazonaws.com:5000/time
  1. Para rodar o pipeline configure as seguinte secrets no github e faça algum commit ou rode a pipe manualmente (Actions > Workflows > build-and-deploy > Run Workflow), também é possivel alterar as ENVs.
  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • DOCKER_PASSWORD

  • DOCKER_USERNAME

  1. Verifique a tag do deploy.
kubectl describe deployments api-labs
  1. Para deletar o ambiente.
kubectl delete -f k8s/app.yaml
cd terraform
tofu destroy -auto-approve
  1. Links Adicionais