오늘날 대부분의 인프라 코드는 Terraform을 통해 수행됩니다. 꽤 오랫동안 존재했고 강력한 커뮤니티를 갖고 있으며 멀티클라우드입니다. 그러나 Terraform 코드를 테스트할 때 상황이 까다로워지기 시작합니다. Terraform은 자체 언어(HCL)를 사용하지만 백엔드는 Golang으로 작성됩니다.
Terraform 모듈 테스트를 위한 좋은 패턴은 terratest이지만 짐작할 수 있듯이 Golang으로 이를 작성해야 합니다. 여기에서는 기존 Terraform HCL 코드에서 강력하지만 간단한 라이브러리 tftest와 함께 일반 Python을 사용하는 방법을 보여줄 것입니다.
Tftest는 Google의 작은 Python 라이브러리입니다. 이를 통해 프로그래밍 방식으로 Terraform 작업(계획|배포|파괴)을 수행하고 실행 계획, 출력 변수 등을 검색할 수 있습니다.
tftest의 힘은 다음과의 잠재적인 콤보에 있습니다. pytest. 게다가 Python은 다양한 클라우드 제공업체에 대해 정말 좋은 SDK 지원을 제공하므로 클라우드 인프라를 테스트하는 데 적합합니다.
설정에는 간단한 Cloud Run API(서버리스 컨테이너 런타임)가 포함되지만 배포하는 모든 인프라에 위의 방법을 적용할 수 있습니다!
간단한 인프라 테스트
첫 번째 예에서는 간단한 테스트를 수행하여 주변을 둘러볼 것입니다. tftest. 다음을 시도해보자
만들기 plan고정물
컨테이너 이미지의 출력 이름이 예상한 것과 일치하는지 확인
출력 변수가 예상되는지 확인하십시오.
계획 픽스처는 단순히 조회해야 하는 terraform 모듈/디렉토리를 살펴보고 수행해야 합니다. apply 명령) 출력 변수를 개체로 사용할 수 있도록 합니다.