From e7e97a62672f4cefecf03e9de60cd4b567176fa7 Mon Sep 17 00:00:00 2001 From: Martin Evgeniev Date: Tue, 5 Feb 2019 11:42:36 +0100 Subject: [PATCH] Store terraform state in S3 --- deploy/aws/main.tf | 8 ++++++++ deploy/aws/pre-build/bucket.tf | 24 ++++++++++++++++++++++++ deploy/aws/pre-build/variables.tf | 1 + 3 files changed, 33 insertions(+) create mode 100644 deploy/aws/pre-build/bucket.tf create mode 120000 deploy/aws/pre-build/variables.tf diff --git a/deploy/aws/main.tf b/deploy/aws/main.tf index 4e5ab0523..61a2750ee 100644 --- a/deploy/aws/main.tf +++ b/deploy/aws/main.tf @@ -18,6 +18,14 @@ resource "null_resource" "prebuild" { } } +# Bucket config must be here: https://github.com/hashicorp/terraform/issues/13589 +terraform { + backend "s3" { + bucket = "terraform-qed-cluster" + key = "terraform.tfstate" + region = "eu-west-1" + } +} module "leader" { source = "./modules/qed" diff --git a/deploy/aws/pre-build/bucket.tf b/deploy/aws/pre-build/bucket.tf new file mode 100644 index 000000000..3b9bd14ba --- /dev/null +++ b/deploy/aws/pre-build/bucket.tf @@ -0,0 +1,24 @@ +terraform { + required_version = ">= 0.11.11" +} + +provider "aws" { + version = ">= 1.56.0, < 2.0" + region = "eu-west-1" + profile = "${var.aws_profile}" +} +resource "aws_s3_bucket" "terraform-qed-cluster" { + bucket = "terraform-qed-cluster" + + versioning { + enabled = true + } + + lifecycle { + prevent_destroy = true + } + + tags { + Name = "S3 Remote Terraform State Store" + } +} \ No newline at end of file diff --git a/deploy/aws/pre-build/variables.tf b/deploy/aws/pre-build/variables.tf new file mode 120000 index 000000000..3a65dccd2 --- /dev/null +++ b/deploy/aws/pre-build/variables.tf @@ -0,0 +1 @@ +../variables.tf \ No newline at end of file