rootlyhq/terraform-provider-rootly

GitHub: rootlyhq/terraform-provider-rootly

Rootly 官方 Terraform Provider,将事件管理、值班排班、告警路由等配置纳入基础设施即代码管理。

Stars: 17 | Forks: 12

# Rootly 提供商 [Rootly](https://rootly.com/) provider 用于与 Rootly 支持的资源进行交互。在使用之前,需要使用正确的凭证配置该 provider。它要求 terraform 1.0 或更高版本。 ## 用法 请参阅 [Terraform Registry 文档](https://registry.terraform.io/providers/rootlyhq/rootly/latest/docs) 或 [examples/](examples)。 ``` terraform { required_providers { rootly = { source = "rootlyhq/rootly" } } } provider "rootly" { # We recommend using the `ROOTLY_API_TOKEN` env var to set the API Token # when interacting with Rootly's API. # api_token = var.rootly_api_key } ``` ## 迁移脚本 我们提供了一个迁移脚本,以帮助从已弃用的 Rootly 资源迁移到新的等效资源。该脚本自动执行通过 Rootly API 获取现有资源并生成带有 import 语句的 Terraform 配置的过程。 **当前支持的迁移:** - `alert_routing_rules_to_alert_routes` - 从已弃用的 `rootly_alert_routing_rule` 迁移到 `rootly_alert_route` 有关详细的使用说明,请参阅 [迁移脚本文档](scripts/migration/README.md)。 ## 开发 ### 构建命令 | 命令 | 描述 | |---------|-------------| | `make build` | 完整构建:生成代码、编译 provider、重新生成文档 | | `make codegen` | 下载 schema 并自动生成客户端代码和 provider 资源 | | `make codegen `| 下载 schema 并为指定资源自动生成客户端代码和 provider | | `make docs` | 从 provider schema 重新生成 Terraform 文档 | | `make test` | 运行单元测试 | | `make testacc` | 运行验收测试 | | `make help` | 显示所有可用命令 | ### 测试你的更改 通过运行验收测试来测试你的更改。 例如,要测试 `provider/resource_alerts_source_test.go` 中的 alerts source 资源: ``` ROOTLY_API_TOKEN="xxx" make testacc TESTARGS="-run TestAccResourceAlertsSource" ``` 要针对你选择的 API URL 运行测试,请设置 `ROOTLY_API_URL` 环境变量。 要启用 debug 日志,请设置 `TF_LOG=DEBUG`。 ### 更新 provider `make build` 会根据 Rootly 的 JSON-API schema 自动生成代码,编译 provider 代码,并重新生成文档。 如果某些 API 资源位于 `tools/generate.js` 的忽略列表中,则它们将被排除在代码生成之外。如果是这样,这些资源将需要手动更新。 测试通常无法通过代码生成。如果是这样,请将它们添加到 `tools/generate.js` 的忽略列表中并手动实现。 ### 版本管理 该项目使用带有 git 标签的 [语义化版本控制](https://semver.org)。请使用以下命令管理版本: #### 版本命令 ``` make version-show # Show current and next versions make version-patch # Bump patch version (1.2.3 → 1.2.4) make version-minor # Bump minor version (1.2.3 → 1.3.0) make version-major # Bump major version (1.2.3 → 2.0.0) ``` #### 发布命令 ``` make release-patch # Bump patch version + push tag (triggers CI release) make release-minor # Bump minor version + push tag (triggers CI release) make release-major # Bump major version + push tag (triggers CI release) ``` #### 使用示例 ``` # 检查当前版本 make version-show # 当前版本:v3.1.0 # 下一个补丁:3.1.1 # 提升补丁版本 make version-patch # 创建并推送 v3.1.1 tag # 或者一步完成提升和推送 tag (触发 CI release) make release-patch # 提升至 v3.1.1,推送 tag,CI 构建并发布 release ``` **重要提示**:请使用 `make version-*` 命令,而不是手动创建 git 标签。这可确保版本的一致性和正确的验证。 ### 发布 / 发布到 Terraform Registry 当推送新标签时,版本会自动发布到 Terraform Registry。上述版本管理命令负责处理此过程: 1. **版本升级**:`make version-*` 命令创建并推送 git 标签 2. **CI 触发**:推送的标签触发 CI/GoReleaser 工作流 3. **自动发布**:CI 构建版本并将其发布到 GitHub 和 Terraform Registry 4. **版本注入**:在 CI 构建期间,正确的版本会自动注入到 provider 二进制文件中
标签:API集成, EC2, EVTX分析, EVTX分析, Go语言, HashiCorp, IaC, Incident Management, On-Call, Rootly, SRE, Terraform Provider, 事件管理, 代码生成, 偏差过滤, 可观测性, 告警管理, 告警路由, 工作流自动化, 待命管理, 日志审计, 渗透测试工具, 程序破解, 站点可靠性工程, 迁移脚本, 运维自动化