Update pipeline yaml for terraform steps

This commit is contained in:
Umang Mistry
2024-04-18 16:27:01 -05:00
parent ab20ee14cc
commit 34b36e1f4d
+19 -5
View File
@@ -2,12 +2,26 @@ definitions:
steps:
- step: &terraform_plan_apply
name: "Plan and Apply Terraform"
image: zenika/terraform-aws-cli:latest
image: python:3.8
script:
- terraform --version
# terraform steps here
trigger: automatic # uncomment after testing
# trigger: manual
- python -m pip install --upgrade pip
- apt-get update && apt-get install -y jq git
- pip install awscli
- pip install terraform
- export AWS_ROLE_ARN=arn:aws:iam::$AWS_ACCOUNT_NO:role/$OIDC_ROLE
- export AWS_WEB_IDENTITY_TOKEN_FILE=$(pwd)/web-identity-token
- echo $BITBUCKET_STEP_OIDC_TOKEN > $(pwd)/web-identity-token
- export STS_OUTPUT=$(aws sts assume-role-with-web-identity --role-arn $AWS_ROLE_ARN --role-session-name BitbucketPipeline --web-identity-token "$BITBUCKET_STEP_OIDC_TOKEN" --duration-seconds 3600)
- export AWS_ACCESS_KEY_ID=$(echo $STS_OUTPUT | jq -r '.Credentials.AccessKeyId')
- export AWS_SECRET_ACCESS_KEY=$(echo $STS_OUTPUT | jq -r '.Credentials.SecretAccessKey')
- export AWS_SESSION_TOKEN=$(echo $STS_OUTPUT | jq -r '.Credentials.SessionToken')
- aws sts get-caller-identity
- terraform init -migrate-state -backend-config="access_key=$AWS_ACCESS_KEY_ID" -backend-config="secret_key=$AWS_SECRET_ACCESS_KEY" -backend-config="region=us-east-2" -backend-config="dynamodb_table=doczyai-use2-d-infra-dyd-terraform-lock" -backend-config="bucket=doczyai-use2-d-infra-s3-terraform-state" -backend-config="key=devops-pipeline/terraform.tfstate"
- terraform validate
- BRANCH_NAME_LOWER=$(echo $BITBUCKET_BRANCH | tr '[:upper:]' '[:lower:]')
- terraform apply -auto-approve -no-color -var 'access_key=$AWS_ACCESS_KEY_ID' -var 'secret_key=$AWS_SECRET_ACCESS_KEY' -var 'aws_region=us-east-2' -var 'environment=$BRANCH_NAME_LOWER'
# trigger: automatic # uncomment after testing
trigger: manual
- step: &snowflake_deploy
name: "Deploy Snowflake Changes"
image: python:3.7