Staging Plan:
stage: Staging Plan
script:
- echo "Run Terraform Plan for Staging"
rules:
- if: '$CI_COMMIT_BRANCH =~ /^(master|production)$/'
Staging Plan:
stage: Staging Plan
script:
- cd deploy/
- export TF_VAR_ecr_image_api=$ECR_REPO:$CI_COMMIT_SHORT_SHA
- terraform init
- terraform workspace select staging || terraform workspace new staging
- terraform plan
rules:
- if: '$CI_COMMIT_BRANCH =~ /^(master|production)$/'
terraform에 필요한 환경변수들을 ~.tf
파일에서
사전에 정의할 수 있다.
하지만 도커 이미지를 빌드하고 run에 필요한 환경변수들은 다른 방식으로 지정해야 한다. (끊임없이 변하는 도커 이미지 태그 등)
다음과 같이 말이다.
export TF_VAR_ecr_image_api=$ECR_REPO:$CI_COMMIT_SHORT_SHA
Staging Plan 과
Production Plan의 job은
내용이 매우매우 흡사하다.
Staging Plan 코드를 수정하는 김에 함께 수정하자.
Production Plan:
stage: Production Plan
script:
- echo "Run Terraform Plan for Production"
rules:
- if: '$CI_COMMIT_BRANCH == "production"'
Production Plan:
stage: Production Plan
script:
- cd deploy/
- export TF_VAR_ecr_image=$ECR_REPO:$CI_COMMIT_SHORT_SHA
- terraform init
- terraform workspace select production || terraform workspace new production
- terraform plan
rules:
- if: '$CI_COMMIT_BRANCH == "production"'