{"id":27156721,"url":"https://github.com/tech-preta/terraform-mimirtool","last_synced_at":"2025-07-23T00:06:36.984Z","repository":{"id":286171983,"uuid":"960562633","full_name":"Tech-Preta/terraform-mimirtool","owner":"Tech-Preta","description":"Utilizando o Terraform para gerenciar configurações e regras de alertas para o Alertmanager do Mimir.","archived":false,"fork":false,"pushed_at":"2025-04-04T18:32:01.000Z","size":40,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-10T02:53:52.639Z","etag":null,"topics":["alertmanager","mimir","terraform"],"latest_commit_sha":null,"homepage":"https://nataliagranato.xyz","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tech-Preta.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"nataliagranato","ko_fi":"nataliagranato","buy_me_a_coffee":"nataliagranato","pix":"fada126d-7311-495f-bda2-55ec79b0a39b"}},"created_at":"2025-04-04T16:45:30.000Z","updated_at":"2025-04-04T18:32:04.000Z","dependencies_parsed_at":"2025-04-10T02:40:48.915Z","dependency_job_id":null,"html_url":"https://github.com/Tech-Preta/terraform-mimirtool","commit_stats":null,"previous_names":["tech-preta/terraform-mimirtool"],"tags_count":1,"template":false,"template_full_name":"Tech-Preta/repository_sample","purl":"pkg:github/Tech-Preta/terraform-mimirtool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech-Preta%2Fterraform-mimirtool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech-Preta%2Fterraform-mimirtool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech-Preta%2Fterraform-mimirtool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech-Preta%2Fterraform-mimirtool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tech-Preta","download_url":"https://codeload.github.com/Tech-Preta/terraform-mimirtool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tech-Preta%2Fterraform-mimirtool/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266592214,"owners_count":23953109,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alertmanager","mimir","terraform"],"created_at":"2025-04-08T20:32:51.292Z","updated_at":"2025-07-23T00:06:36.976Z","avatar_url":"https://github.com/Tech-Preta.png","language":"HCL","funding_links":["https://github.com/sponsors/nataliagranato","https://ko-fi.com/nataliagranato","https://buymeacoffee.com/nataliagranato","fada126d-7311-495f-bda2-55ec79b0a39b"],"categories":[],"sub_categories":[],"readme":"# Terraform Mimirtool\n\nEste 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`.\n\n## Estrutura do Projeto\n\nA estrutura do projeto está organizada da seguinte forma:\n\n```\nterraform-mimirtool/\n├── main.tf                # Arquivo principal para configuração dos módulos e providers\n├── variables.tf           # Variáveis globais para configuração dos ambientes\n├── versions.tf            # Declaração dos providers e suas versões\n├── modules/\n│   └── mimirtool/         # Módulo genérico para configuração do Alertmanager\n│       ├── main.tf        # Configuração do recurso mimirtool_alertmanager\n│       ├── variables.tf   # Variáveis específicas do módulo\n│       └── versions.tf    # Declaração dos providers no módulo\n├── environments/          # Diretório contendo arquivos de configuração específicos de cada ambiente\n│   ├── preprod/\n│   │   └── config/\n│   │       ├── alertmanager_rules.yaml\n│   │       └── alertmanager_config.yaml\n│   └── prod/\n│       └── config/\n│           ├── alertmanager_rules.yaml\n│           └── alertmanager_config.yaml\n└── README.md              # Documentação do projeto\n```\n\n## Funcionalidades\n\n- Configuração de múltiplos ambientes (`preprod` e `prod`) para o Alertmanager do Mimir.\n- Gerenciamento de regras de alertas e configurações do Alertmanager.\n- Modularização para facilitar a reutilização e manutenção.\n\n## Objetivos\n\n- Automatizar a configuração do Alertmanager do Mimir usando Terraform.\n- Tornar o projeto genérico e reutilizável para diferentes ambientes.\n- Facilitar a manutenção e a escalabilidade das configurações.\n\n## Pré-requisitos\n\n- Terraform instalado na máquina.\n- Arquivos de configuração YAML para o Alertmanager disponíveis nos diretórios `environments/preprod/config` e `environments/prod/config`.\n\n## Como usar\n\n1. **Clone o repositório**:\n   ```bash\n   git clone https://github.com/Tech-Preta/terraform-mimirtool.git\n   cd terraform-mimirtool\n   ```\n\n2. **Configure os arquivos YAML**:\n   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`.\n\n3. **Inicialize o Terraform**:\n   ```bash\n   terraform init\n   ```\n\n4. **Valide a configuração**:\n   ```bash\n   terraform validate\n   ```\n\n5. **Planeje a aplicação**:\n   ```bash\n   terraform plan\n   ```\n\n6. **Aplique a configuração**:\n   ```bash\n   terraform apply\n   ```\n```mermaid\nsequenceDiagram\n  participant Dev as Desenvolvedor\n  participant GH as GitHub\n  participant WF as Workflow (terraform.yml)\n  participant TF as Terraform\n  Dev-\u003e\u003eGH: Push para a branch \"main\"\n  GH-\u003e\u003eWF: Aciona workflow de CI\n  WF-\u003e\u003eWF: Checkout do código com actions/checkout@v3\n  WF-\u003e\u003eWF: Setup do Terraform (v1.4.6) com hashicorp/setup-terraform@v2\n  WF-\u003e\u003eTF: Executa \"terraform init\"\n  WF-\u003e\u003eTF: Executa \"terraform validate\"\n  WF-\u003e\u003eTF: Executa \"terraform plan\"\n  WF--\u003e\u003eGH: Reporta status do CI\n```\n\n```mermaid\nsequenceDiagram\n  participant S as Script (alerts.sh)\n  participant FS as Sistema de Arquivos\n  participant TF as Arquivo terraform.tfvars\n  S-\u003e\u003eFS: Executa comando \"find\" para localizar arquivos YAML\n  FS--\u003e\u003eS: Retorna lista de arquivos YAML de regras\n  S-\u003e\u003eTF: Atualiza variável \"alertmanager_rules_files\" em terraform.tfvars\n```\n   \n\n## Testes\n\nEste projeto utiliza o Terratest para validar as configurações do Terraform.\n\n### Para executar os testes:\n\n1. **Inicialize um módulo Go no diretório do projeto**:\n   No terminal, navegue até o diretório do projeto e execute:\n\n   ```bash\n   go mod tidy\n   ```\n\n2. **Adicione o pacote necessário**:\n   Após inicializar o módulo, execute o comando para adicionar o pacote:\n\n   ```bash\n   go get github.com/gruntwork-io/terratest/modules/terraform\n   ```\n\n3. **Execute os testes**:\n   Agora, execute os testes para verificar se o projeto está funcionando corretamente:\n\n   ```bash\n   go test -v\n   ```\n\n## Contribuição\n\nContribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests.\n\n## Licença\n\nEste projeto está licenciado sob a licença MIT. Consulte o arquivo `LICENSE` para mais informações.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftech-preta%2Fterraform-mimirtool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftech-preta%2Fterraform-mimirtool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftech-preta%2Fterraform-mimirtool/lists"}