Initial commit.
This commit is contained in:
22
init-state/.terraform.lock.hcl
generated
Normal file
22
init-state/.terraform.lock.hcl
generated
Normal file
@ -0,0 +1,22 @@
|
||||
# This file is maintained automatically by "terraform init".
|
||||
# Manual edits may be lost in future updates.
|
||||
|
||||
provider "registry.terraform.io/hashicorp/aws" {
|
||||
version = "4.21.0"
|
||||
constraints = "~> 4.21"
|
||||
hashes = [
|
||||
"h1:eeuRCgJ2aEsVvCl0UOU99Rx58L2NMpM4Q5XdsfO4sr8=",
|
||||
"zh:16529a8ac663845da9214a75f5a32a2d0daf393612e46259b6dff10f1b8b50ed",
|
||||
"zh:1ae36386d4862a489a3981a482a537c16f8a1588a445b60f173d1f13fcc3552e",
|
||||
"zh:5ab0f63784f7216528855272b341d3cbfbf378dc6ee23796debead505aff58a2",
|
||||
"zh:5f28fec15d2e58623b0cdb610e36703b3035fb3a61289c6d8a4705fca5144cb8",
|
||||
"zh:60b664b6d34b27609b3b4273dffa41ff2c6d15bb01e326bcd6a40944f9cc9839",
|
||||
"zh:6a9010783b1c4574956e047d9981e96f8d4bbdd7057496ad35bb81acc0efa862",
|
||||
"zh:8631ceb0187605305e2045f1f6aded046ba17e0cad64663011dd55c8a20330ec",
|
||||
"zh:891ac1b0053c435b939462b1872ab383e72a8de05454164def2b96a362f7a729",
|
||||
"zh:92bccfd7517abeda2ac6ddb78f1819742cafdba87af2074929d57cd7f2256c22",
|
||||
"zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
|
||||
"zh:ad169953f8b9441624064815bd4b82b12ab20ba3e2f033ecf019d6a25ae42175",
|
||||
"zh:b46eccb3bec96ace8863cd0302de475dd22e4bdd2176ddb82e76f998424e7ac3",
|
||||
]
|
||||
}
|
16
init-state/README.md
Normal file
16
init-state/README.md
Normal file
@ -0,0 +1,16 @@
|
||||
# state
|
||||
|
||||
This terraform infra creates mandatory s3 bucket & dynamo db for locks to handle terraform's states.
|
||||
|
||||
## Usage
|
||||
|
||||
```sh
|
||||
$ terraform init
|
||||
$ terraform plan -out tf.plan
|
||||
$ terraform apply tf.plan
|
||||
...
|
||||
|
||||
$
|
||||
```
|
||||
|
||||
|
13
init-state/main.tf
Normal file
13
init-state/main.tf
Normal file
@ -0,0 +1,13 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = "~> 4.21"
|
||||
}
|
||||
}
|
||||
required_version = ">= 1.2.4"
|
||||
}
|
||||
|
||||
provider "aws" {
|
||||
region = var.aws_region
|
||||
}
|
36
init-state/state-s3.tf
Normal file
36
init-state/state-s3.tf
Normal file
@ -0,0 +1,36 @@
|
||||
resource "aws_dynamodb_table" "terraform_locks" {
|
||||
name = "${var.bucket_name}-locks"
|
||||
billing_mode = "PAY_PER_REQUEST"
|
||||
hash_key = "LockID"
|
||||
attribute {
|
||||
name = "LockID"
|
||||
type = "S"
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_s3_bucket" "terraform_state" {
|
||||
bucket = var.bucket_name
|
||||
|
||||
# lifecycle {
|
||||
# prevent_destroy = true
|
||||
# }
|
||||
|
||||
force_destroy = true
|
||||
}
|
||||
|
||||
resource "aws_s3_bucket_versioning" "terraform_state" {
|
||||
bucket = aws_s3_bucket.terraform_state.id
|
||||
versioning_configuration {
|
||||
status = "Enabled"
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_s3_bucket_server_side_encryption_configuration" "terraform_state" {
|
||||
bucket = aws_s3_bucket.terraform_state.bucket
|
||||
|
||||
rule {
|
||||
apply_server_side_encryption_by_default {
|
||||
sse_algorithm = "AES256"
|
||||
}
|
||||
}
|
||||
}
|
9
init-state/variables.tf
Normal file
9
init-state/variables.tf
Normal file
@ -0,0 +1,9 @@
|
||||
variable "aws_region" {
|
||||
type = string
|
||||
default = "eu-west-3"
|
||||
}
|
||||
|
||||
variable "bucket_name" {
|
||||
type = string
|
||||
default = "avx-pmarie-aws-infra-state"
|
||||
}
|
Reference in New Issue
Block a user