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, 事件管理, 代码生成, 偏差过滤, 可观测性, 告警管理, 告警路由, 工作流自动化, 待命管理, 日志审计, 渗透测试工具, 程序破解, 站点可靠性工程, 迁移脚本, 运维自动化