머지 리퀘스트에서의 OpenTofu 통합
머지 리퀘스트에서의 OpenTofu 통합에 대해 설명합니다.
Infrastructure as Code(IaC) 변경사항을 두고 협업하려면 코드 변경사항과 예상되는 인프라 변경사항을 모두 검토하고 승인해야 합니다. GitLab은 머지 리퀘스트 페이지를 통해 OpenTofu 코드 변경사항과 그 예상 효과를 함께 검토할 수 있는 방법을 제공합니다. 따라서 IaC 워크플로를 간소화하려고 별도의 도구를 만들거나 서드파티 솔루션에 의존할 필요가 없습니다. 머지 리퀘스트에 OpenTofu Plan 정보 출력 # GitLab Terraform/OpenTofu Report 아티팩트 를 사용하면 tofu plan 실행의 세부 정보를 머지 리퀘스트 위젯에 직접 노출할 수 있으며, 이를 통해 OpenTofu가 생성, 수정, 삭제하는 리소스의 통계를 확인할 수 있습니다. Warning 다른 job 아티팩트와 마찬가지로 OpenTofu 플랜 데이터는 리포지터리에서 Guest 권한을 가진 사용자라면 누구나 볼 수 있습니다. OpenTofu와 GitLab 모두 기본적으로 플랜 파일을 암호화하지 않습니다. OpenTofu plan.json 또는 plan.cache 파일에 비밀번호, 액세스 토큰, 인증서와 같은 민감한 데이터가 포함된다면 플랜 출력을 암호화하거나 프로젝트 가시성 설정을 변경해야 합니다. 또한 공개 파이프라인 을 비활성화하고 아티팩트의 공개 플래그를 false로 설정 해야 합니다( public: false ). 이 설정을 적용하면 GitLab 관리자와 Reporter, Developer, Maintainer, Owner 권한을 가진 프로젝트 멤버만 아티팩트에 액세스할 수 있습니다. OpenTofu 보고서 아티팩트 구성 # GitLab은 OpenTofu CI/CD 컴포넌트를 통해 OpenTofu와 통합 됩니다. 이 컴포넌트는 GitLab이 관리하는 OpenTofu 상태를 사용해 머지 리퀘스트에 OpenTofu 변경사항을 표시합니다. OpenTofu 보고서 아티팩트 자동 구성 # plan job에서 OpenTofu 보고서 아티팩트를 자동으로 구성하는 OpenTofu CI/CD 컴포넌트 를 사용합니다. OpenTofu 보고서 아티팩트 수동 구성 # 빠르게 설정하려면 사전 빌드된 이미지를 사용자 지정하고 gitlab-tofu 헬퍼를 활용합니다. GitLab OpenTofu Report 아티팩트를 수동으로 구성하는 방법은 다음과 같습니다. 해당 파일들을 여러 번 참조할 수 있도록 재사용 가능한 변수를 정의합니다. variables: PLAN: plan.cache PLAN_JSON: plan.json 가볍고 유연한 커맨드라인 JSON 프로세서 인 jq 를 설치합니다. tofu plan 출력에서 추출하려는 정보를 파싱하는 특정 jq 명령의 별칭을 만듭니다. before_script: - apk --no-cache add jq - alias convert_report="jq -r '([.resource_changes[]?.change.actions?]|flatten)|{\"create\":(map(select(.==\"creat