-
Primeiramente configure as credenciais e/ou o AWS CLI caso vá rodar localmentel, segue a doc
-
Faça um clone do projeto com
git clone --recursive [email protected]:juam-sv/aws-eks.git
-
Altere o arquivo de configuração do cluster caso ache necessário,
-
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
...
- Faça o deploy do cluster usando o terraform/opentofu
$ cd terraform
$ tofu init
$ tofu apply
- 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
- 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
- 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
- Verifique a tag do deploy.
kubectl describe deployments api-labs
- Para deletar o ambiente.
kubectl delete -f k8s/app.yaml
cd terraform
tofu destroy -auto-approve
- Links Adicionais
-
Doc da API de teste https://github.com/juam-sv/api-labs
-
Doc do Modulo criado de EKS/VPC- README