-
Notifications
You must be signed in to change notification settings - Fork 0
/
_bootstrap.tf
40 lines (33 loc) · 973 Bytes
/
_bootstrap.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Bucket used to store our state file
resource "aws_s3_bucket" "state_file" {
bucket = var.state_file_bucket_name
lifecycle {
prevent_destroy = false
}
}
# Enabling bucket versioning to keep backup copies of the state file
resource "aws_s3_bucket_versioning" "state_file" {
bucket = aws_s3_bucket.state_file.id
versioning_configuration {
status = "Enabled"
}
}
# Table used to store the lock to prevent parallel runs causing issues
resource "aws_dynamodb_table" "state_file_lock" {
name = var.state_file_lock_table_name
read_capacity = 5
write_capacity = 5
hash_key = "LockID"
attribute {
name = "LockID"
type = "S"
}
}
# (Optional) KMS Key and alias to use instead of default `alias/s3` one.
resource "aws_kms_key" "terraform" {
description = "Key used for Terraform state files."
}
resource "aws_kms_alias" "terraform" {
name = "alias/terraform"
target_key_id = aws_kms_key.terraform.key_id
}