Update pipeline yaml for terraform steps
This commit is contained in:
+19
-5
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user