HomePhabricator
Diffusion Comm f4714809479b

[services][terraform] Introduce S3 backend

Description

[services][terraform] Introduce S3 backend

Summary:
Part of ENG-3549. This diff sets up Terraform to use the S3 backend, located on the Terraform/Infra AWS account in the commapp-terraform bucket.
Logged in to that account, the AWS provider 'assumes role' on the target (staging/prod) accounts in order to perform actions.

The following steps were made:

  1. Created a new S3 bucket commapp-terraform in the Terraform/Infra AWS account
  2. Set up appropriate permissions to access the bucket
  3. Both staging and prod accounts have a Terraform IAM role, assumable by the Terraform/Infra account
  4. Set up the code in this diff.
  5. Log in to the Terraform/Infra account with CLI and ran terraform init -migrate-state to copy local state to S3.

Depends on D8667

Test Plan:

  1. Logged in to the Terraform/Infra AWS account with AWS CLI
  2. Cleared local files and dirs: terraform.tfstate, .terraform/, .terraform.tfstate.d/
  3. Ran terraform init and terraform workspace select production. They succeeded.
  4. Ran terraform plan - it succeeded and showed the changes that would be applied.
  5. Entered S3 console and verified that the state files were last updated during the tf apply.

Reviewers: jon, varun

Reviewed By: jon

Subscribers: ashoat, tomek

Differential Revision: https://phab.comm.dev/D8669

Details

Provenance
bartekAuthored on Jul 30 2023, 7:36 AM
Reviewer
jon
Differential Revision
D8669: [services][terraform] Introduce S3 backend
Parents
rCOMMcb9abbe8c9c5: [services][terraform] Add Identity service
Branches
Unknown
Tags
Unknown