Rootly Provider
요약
Rootly Provider는 Rootly 리소스와 상호작용하기 위해 사용되는 Terraform 프로바이더입니다. 이 가이드는 해당 프로바이더의 기본 사용법과 함께, 사용 중단된 리소스를 최신 동등 리소스로 마이그레이션하는 스크립트 사용 방법을 안내합니다. 또한 `make` 명령어를 활용한 개발 및 테스트 절차도 상세히 설명하고 있습니다.
핵심 포인트
- Rootly Provider는 Rootly API와 상호작용하는 Terraform 도구입니다.
- 마이그레이션 스크립트를 통해 구형 리소스를 최신 버전으로 자동 변환할 수 있습니다.
- `make build` 등 다양한 명령어로 개발, 테스트, 문서 생성이 가능합니다.
Rootly Provider
Rootly provider는 Rootly가 지원하는 리소스와 상호 작용하는 데 사용됩니다. 이 프로바이더를 사용하려면 적절한 자격 증명(credentials)으로 구성해야 합니다. 또한 terraform 1.0 이상이 필요합니다.
사용법 (Usage)
Terraform Registry documentation 또는 examples/를 참조하십시오.
terraform {
required_providers {
rootly = {
...
마이그레이션 스크립트 (Migration Script)
마이그레이션 스크립트를 사용하여 사용 중단된(deprecated) Rootly 리소스를 최신 동등 리소스로 마이그레이션하는 데 도움을 받을 수 있습니다. 이 스크립트는 Rootly API를 통해 기존 리소스를 가져오고, import statement가 포함된 Terraform 구성을 생성하는 과정을 자동화합니다.
현재 지원되는 마이그레이션:
alert_routing_rules_to_alert_routes- 사용 중단된rootly_alert_routing_rule에서rootly_alert_route로 마이그레이션
자세한 사용 지침은 Migration Script Documentation를 참조하십시오.
개발 (Develop)
빌드 명령어 (Build Commands)
| 명령어 | 설명 |
|---|---|
make build | 전체 빌드: 코드 생성, 프로바이더 컴파일, 문서 재생성 |
make codegen | 스키마 다운로드 및 클라이언트 코드와 프로바이더 리소스 자동 생성 |
make codegen <RESOURCE=resource_name> | 스키마 다운로드 및 지정된 리소스에 대한 클라이언트 코드와 프로바이더 자동 생성 |
make docs | 프로바이더 스키마로부터 Terraform 문서 재생성 |
make test | 단위 테스트 실행 |
make testacc | 수용 테스트(acceptance tests) 실행 |
make help | 사용 가능한 모든 명령어 표시 |
변경 사항 테스트하기 (Test your changes)
수용 테스트를 실행하여 변경 사항을 테스트하십시오.
예를 들어, provider/resource_alerts_source_test.go에 있는 alerts source 리소스를 테스트하려면:
ROOTLY_API_TOKEN=
Slack Canvas 워크플로우-액션 수락 테스트를 실행하려면 해당 API 기능이 활성화된 조직과 명시적인 `ROOTLY_TEST_SLACK_CANVAS=1` 옵트인(opt-in)이 필요합니다. 해당 조직에 대해 `ROOTLY_API_URL` 및 `ROOTLY_API_TOKEN`을 설정한 후 다음 명령어를 실행하세요:
```bash
TF_ACC=1 ROOTLY_TEST_SLACK_CANVAS=1 go test ./provider -run '^TestAccResourceWorkflowTask(Create|Update)SlackCanvas$' -v
이 테스트들은 비활성화된 워크플로우와 액션을 생성하고, 구성 업데이트, 가져오기(import), 작업 공간 지우기를 검증한 다음, 해당 테스트 리소스를 삭제합니다. Slack 액션은 실행하지 않습니다. 공유 CI는 이 기능에 옵트인할 때까지 이러한 테스트를 건너뜁니다.
Provider 업데이트하기
make build는 Rootly의 JSON-API 스키마로부터 코드를 자동 생성하고, provider 코드를 컴파일하며, 문서를 재생성합니다.
일부 API 리소스는 tools/generate.js에 무시 목록(ignore-lists)으로 포함된 경우 코드 생성에서 제외됩니다. 이 경우 해당 리소스들은 수동으로 업데이트해야 합니다.
테스트의 경우 종종 코드 생성이 불가능할 수 있습니다. 이 경우 tools/generate.js의 무시 목록에 추가하고 수동으로 구현해야 합니다.
버전 관리
이 프로젝트는 git 태그와 함께 Semantic Versioning을 사용합니다. 다음 명령어를 사용하여 버전을 관리하세요:
버전 명령어
make version-show # 현재 및 다음 버전 표시
make version-patch # 패치 버전 증가 (1.2.3 → 1.2.4)
make version-minor # 마이너 버전 증가 (1.2.3 → 1.3.0)
...
릴리스 명령어
make release-patch # 패치 버전 증가 + 태그 푸시 (CI 릴리스 트리거)
make release-minor # 마이너 버전 증가 + 태그 푸시 (CI 릴리스 트리거)
make release-major # 메이저 버전 증가 + 태그 푸시 (CI 릴리스 트리거)
사용 예시
# 현재 버전 확인
make version-show
# 현재 버전: v3.1.0
...
중요: 수동으로 git 태그를 생성하는 대신 make version-* 명령어를 사용하세요. 이렇게 해야 버전 일관성과 적절한 검증이 보장됩니다.
릴리스 / Terraform 레지스트리에 게시하기
새로운 태그가 푸시될 때마다 Terraform Registry에 자동으로 릴리스가 게시됩니다. 위에서 설명한 버전 관리 명령어들이 이 과정을 처리합니다:
- 버전 증분 (Version Bumping):
make version-*명령은 git 태그를 생성하고 푸시합니다. - CI 트리거: 푸시된 태그는 CI/GoReleaser 워크플로우를 트리거합니다.
- 자동 릴리스: CI가 빌드를 수행하고 GitHub와 Terraform Registry에 릴리스를 게시합니다.
- 버전 주입 (Version Injection): 올바른 버전이 CI 빌드 과정에서 프로바이더 바이너리에 자동으로 설정됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 개발 자료 GitHub · 505f08fd의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기