Terraform Module 문서화 자동화

이민석's avatar
Oct 09, 2024
Terraform Module 문서화 자동화

개요

(주) 에딘트에서의 Terraform 도입기를 다룬 Terraform Journey in Startup
(주) 캐리버스에서 중간 점검을 위해 작성한 스타트업 스타트업 Terraform 도입기에서 가장 큰 차이점은 Terraform Module을 더 적극적으로 사용했다는 점입니다.

공용 Terraform Module을 만들고 사용하며
각 Terraform Module에 대한 문서화의 자동화가 필요해졌습니다.
이에 대한 대안으로 terraform-docs를 사용하여 각 모듈에 대한 문서화 자동화를 했습니다.

Installation

MacOS를 사용하기 때문에 다음과 같이 terraform-docs를 설치했습니다

brew install terraform-docs/tap/terraform-docs

Get Started

Terraform Docs의 사용은 매우 간단합니다.

terraform-docs markdown /path/to/module

저는 componentes/, modules/ 두 경로에 개별 모듈을 관리하고 있습니다.
각 폴더의 하위에는 천여개의 크고 작은 모듈이 존재하기에 간단한 ShellScript를 작성했습니다.

DIR=$1
if [ -z "$1" ]; then
    echo "[ERROR]./docs.sh DIR 중에서 DIR이 누락되었습니다."
    exit 127
fi

TF_DIRS=$(find "$DIR" -type f -name "*.tf" -exec dirname {} \; | sort -u)
for TF_DIR in $TF_DIRS; do
    echo $TF_DIR
    terraform-docs markdown $TF_DIR > "$TF_DIR/README.md"
done

스크립트 실행은 다음과 같습니다.

chmod +x script.sh
./script.sh components
./script.sh modules

이제 이 파일을 Terraform CI/CD의 적합한 부분에 추가하는 것으로 손쉽게 모듈 문서화가 가능합니다.

Share article

Unchaptered