- VPC com 3 subredes com faixas de ip secundárias para GKE
- Cluster GKE regional em multiAZ
- Roles IAM para Workload Identity
- CloudSql com read replica, politicas de backups e acesso privado.
- Regras de firewall.
Provisionar infraestrutura para um ambiente kubernetes GKE, usando IAC com Terraform, com infra modularizada, reaproveitável e multi-ambiente.
- Crie o arquivo terraform.tfvars com os valores para as variáveis do variables.tf do main, seguindo o exemplo:
vpc_name = "nome_da_sua_vpc"-
Crie uma key para sua service account na gcp e salve na raiz com o nome credentials.json
-
crie o arquivo providers como abaixo:
provider "google" {
project = "id_projeto_google_cloud"
credentials = file("./credentials.json")
region = "região_onde_serão_criados_resources"
}- Crie seu bucket no GCS e crie o arquivo de backend como abaixo:
terraform {
backend "gcs" {
bucket = "nome_seu_bucket"
prefix = "terraform/state"
credentials = "./credentials.json"
}
}
data "terraform_remote_state" "remote" {
backend = "gcs"
config = {
bucket = "nome_seu_bucket"
prefix = "prod"
}
}- Antes de aplicar exporte a service_account correspondente
export TF_VAR_gke_service_account = "<serviceAccount>"
#formato: <nome>@<projeto>.iam.gserviceaccount.comterraform apply -var-file ./env/dev/dev.tfvars
terraform apply -var-file ./env/prod/prod.tfvars
terraform apply -var-file ./env/mgmt/mgmt.tfvars
terraform destroy -var-file ./env/dev/dev.tfvars
terraform destroy -var-file ./env/prod/prod.tfvars
terraform destroy -var-file ./env/mgmt/mgmt.tfvars- Comando para buscar o número do projeto GCP
gcloud projects describe <ProjectID> --format="value(projectNumber)"
