Este repositório público gerencia, via Terraform, a infraestrutura de DNS do domínio observatudo.com.br, utilizando práticas de GitOps e Infraestrutura como Código (IaC).
🎯 Este projeto faz parte do meu portfólio técnico e demonstra minha capacidade de estruturar, versionar e automatizar a gestão de recursos em nuvem de forma profissional.
- Criação da zona DNS pública do domínio
observatudo.com.brno Google Cloud DNS - Registros
AeCNAMEpara subdomínios como:observatudo.com.brwww.observatudo.com.brjdias.observatudo.com.br
- (Futuramente) Registros
TXT,MX, ou outros, conforme evolução do domínio
- Terraform para definição declarativa da infraestrutura
- Google Cloud Platform (GCP) como provedor de DNS
- GitHub Actions (em breve) para validar e aplicar alterações com controle de versionamento
- GitOps como estratégia principal: todas as alterações passam por revisão via Pull Request antes de serem aplicadas
manage-dns/
├── infra-base/ # Infraestrutura de suporte (bucket, SA, IAM)
│ ├── bucket.tf
│ ├── iam.tf
│ ├── service-account.tf
│ └── variables.tf
├── zones/ # Zonas DNS públicas gerenciadas via Terraform
│ ├── observatudo.com.br/
│ │ ├── backend.tf # Configuração do state remoto
│ │ ├── zone.tf # Criação da zona DNS
│ │ ├── root-and-www.tf # Registros principais (A e CNAME)
│ │ └── jdias.tf # Subdomínio específico
│ ├── foo.com.br/
└── .github/workflows/ # Automação com GitHub Actions (em construção)- Nenhuma credencial sensível está armazenada neste repositório
- O acesso à aplicação do Terraform (
terraform apply) é feito com uma Service Account do GCP via CI/CD (em construção) - Este repositório ignora automaticamente arquivos sensíveis como
.tfstate,.tfvars, chaves e configurações locais via.gitignore
Todo o acesso à infraestrutura é feito por autenticação segura, utilizando service accounts com permissões mínimas no GCP.
Antes de aplicar qualquer configuração de DNS, é necessário ter um projeto GCP com billing ativado e permissões para:
- Criar buckets no Cloud Storage
- Criar Service Accounts
- Gerenciar permissões IAM
Você pode usar um projeto já existente ou criar manualmente pelo Console GCP.
Este passo cria os recursos necessários para o Terraform funcionar corretamente:
- Bucket GCS para armazenamento do state remoto
- Service Account para uso no CI/CD
- Permissões IAM mínimas
cd infra-base
terraform init
terraform plan
terraform applyApós isso, o bucket e a conta estarão prontos para uso com as zonas em zones/.
⚠️ A variávelproject_iddeve ser definida viaterraform.tfvarsou com a flag-var="project_id=seu-projeto", conforme sua estrutura local.
💡 Após a aplicação, o bucket de state remoto estará criado e a Service Account configurada para uso seguro nos pipelines de CI/CD.
Este repositório faz parte do meu portfólio pessoal.
Sou Engenheiro de Software especialista em transformação digital, com foco em sistemas distribuídos e ênfase em plataformas e ecossistemas para a construção de organizações biônicas.
🌐 Acesse: https://jdias.observatudo.com.br
- GitHub: @JJDSNT
- LinkedIn: https://www.linkedin.com/in/jdiasneto/