Skip to content

igor-rl/gcp-cicd-terraform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

banner

GKE - GIT HUB ACTIONS - TERRAFORM

Um projeto com pipe line CI-CD para implantar projetos na Google Cloud Platform automatizado com Terraform.

Google Cloud Terraform kubernets GitHub GitHub Actions



Índice


Sobre o projeto

Esse projeto foi desenvolvido como base de estudo e aplicação prática voltada para produção. Neste projeto vamos (1) criar uma conta e um novo projeto no GCP, (2) criar um cluster kubernetes GKE usando o Terraform, (3) criar certificados tls e manipular o DNS e (4) criar um balanceador de carga para nossos serviços kubernetes, (5) implantar nosso projeto automaticatimente usando 'Git Actons'.

1. Pré-requisitos:

  • Instale o Terraform e inicialize-o em seu ambiente.
  • Instale a CLI gcloud e configure-o em sua máquina.
  • Construa a infraestrutura do projeto no GCP.
  • Certifique-se de que você está está logado no gcloud CLI e conectado com seu cluster GKE.
gcloud init
gcloud auth login
gcloud container clusters get-credentials NOME_DO_CLUSTER --project=SEU_PROJETO --zone=SUA_ZONA

2. Criando o Cluster no GCP

Com o cluster e o projeto criados e selecionados no seu terminal, crie o novo cluster de forma automatizada usando Terraform:

cd gcp/terraform
terraform init
terraform apply

Digite "yes" para prosseguir com a criação do seu cluster. Obs.: Isso pode demorar um pouco.


3. Cert-Manager

kubectl get pods --namespace cert-manager --watch

4. Ingress e Cluster Issuer

kubectl get service ingress-nginx-controller --namespace=ingress-nginx
  • Insira o ip do ingress-nginx-controller no ipv4 do seu seu domínio. Caso precise de um gerenciador de domínios e DNS, utilize o Cloudflare.

  • Aplique o manifesto do cluster-issuer e ingress:

kubectl apply -f gcp/k8s/ingress/cluster-issuer.yaml
kubectl apply -f gcp/k8s/ingress/ingress.yaml
  • Recuperar certificados e aguardar status = true:
kubectl get certificates --watch
  • Detalhar certificado:
kubectl describe certificate letsencrypt-tls

5. Pipeline CI-CD

As pipe lines de CI-CD serão acionadas automaticamente quando um novo commit na branch 'master' dos respectivos projetos são enviados. Esse gatilho inicia um novo build da imagem docker no projeto e faz o apply no GKE com a nova versão do projeto.

footer

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages