https://github.com/tech-preta/terraform-mimirtool
Utilizando o Terraform para gerenciar configurações e regras de alertas para o Alertmanager do Mimir.
https://github.com/tech-preta/terraform-mimirtool
alertmanager mimir terraform
Last synced: 3 months ago
JSON representation
Utilizando o Terraform para gerenciar configurações e regras de alertas para o Alertmanager do Mimir.
- Host: GitHub
- URL: https://github.com/tech-preta/terraform-mimirtool
- Owner: Tech-Preta
- License: gpl-3.0
- Created: 2025-04-04T16:45:30.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-04-04T18:32:01.000Z (6 months ago)
- Last Synced: 2025-04-10T02:53:52.639Z (6 months ago)
- Topics: alertmanager, mimir, terraform
- Language: HCL
- Homepage: https://nataliagranato.xyz
- Size: 39.1 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Terraform Mimirtool
Este projeto utiliza o Terraform para gerenciar configurações e regras de alertas para o Alertmanager do Mimir. Ele foi projetado para ser genérico e reutilizável, permitindo a configuração de múltiplos ambientes, como `preprod` e `prod`.
## Estrutura do Projeto
A estrutura do projeto está organizada da seguinte forma:
```
terraform-mimirtool/
├── main.tf # Arquivo principal para configuração dos módulos e providers
├── variables.tf # Variáveis globais para configuração dos ambientes
├── versions.tf # Declaração dos providers e suas versões
├── modules/
│ └── mimirtool/ # Módulo genérico para configuração do Alertmanager
│ ├── main.tf # Configuração do recurso mimirtool_alertmanager
│ ├── variables.tf # Variáveis específicas do módulo
│ └── versions.tf # Declaração dos providers no módulo
├── environments/ # Diretório contendo arquivos de configuração específicos de cada ambiente
│ ├── preprod/
│ │ └── config/
│ │ ├── alertmanager_rules.yaml
│ │ └── alertmanager_config.yaml
│ └── prod/
│ └── config/
│ ├── alertmanager_rules.yaml
│ └── alertmanager_config.yaml
└── README.md # Documentação do projeto
```## Funcionalidades
- Configuração de múltiplos ambientes (`preprod` e `prod`) para o Alertmanager do Mimir.
- Gerenciamento de regras de alertas e configurações do Alertmanager.
- Modularização para facilitar a reutilização e manutenção.## Objetivos
- Automatizar a configuração do Alertmanager do Mimir usando Terraform.
- Tornar o projeto genérico e reutilizável para diferentes ambientes.
- Facilitar a manutenção e a escalabilidade das configurações.## Pré-requisitos
- Terraform instalado na máquina.
- Arquivos de configuração YAML para o Alertmanager disponíveis nos diretórios `environments/preprod/config` e `environments/prod/config`.## Como usar
1. **Clone o repositório**:
```bash
git clone https://github.com/Tech-Preta/terraform-mimirtool.git
cd terraform-mimirtool
```2. **Configure os arquivos YAML**:
Certifique-se de que os arquivos `alertmanager_rules.yaml` e `alertmanager_config.yaml` estão presentes nos diretórios `environments/preprod/config` e `environments/prod/config`.3. **Inicialize o Terraform**:
```bash
terraform init
```4. **Valide a configuração**:
```bash
terraform validate
```5. **Planeje a aplicação**:
```bash
terraform plan
```6. **Aplique a configuração**:
```bash
terraform apply
```
```mermaid
sequenceDiagram
participant Dev as Desenvolvedor
participant GH as GitHub
participant WF as Workflow (terraform.yml)
participant TF as Terraform
Dev->>GH: Push para a branch "main"
GH->>WF: Aciona workflow de CI
WF->>WF: Checkout do código com actions/checkout@v3
WF->>WF: Setup do Terraform (v1.4.6) com hashicorp/setup-terraform@v2
WF->>TF: Executa "terraform init"
WF->>TF: Executa "terraform validate"
WF->>TF: Executa "terraform plan"
WF-->>GH: Reporta status do CI
``````mermaid
sequenceDiagram
participant S as Script (alerts.sh)
participant FS as Sistema de Arquivos
participant TF as Arquivo terraform.tfvars
S->>FS: Executa comando "find" para localizar arquivos YAML
FS-->>S: Retorna lista de arquivos YAML de regras
S->>TF: Atualiza variável "alertmanager_rules_files" em terraform.tfvars
```
## Testes
Este projeto utiliza o Terratest para validar as configurações do Terraform.
### Para executar os testes:
1. **Inicialize um módulo Go no diretório do projeto**:
No terminal, navegue até o diretório do projeto e execute:```bash
go mod tidy
```2. **Adicione o pacote necessário**:
Após inicializar o módulo, execute o comando para adicionar o pacote:```bash
go get github.com/gruntwork-io/terratest/modules/terraform
```3. **Execute os testes**:
Agora, execute os testes para verificar se o projeto está funcionando corretamente:```bash
go test -v
```## Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.
## Licença
Este projeto está licenciado sob a licença MIT. Consulte o arquivo `LICENSE` para mais informações.