Updates from bitrot livestream (#16)

- Remove minor version pin for postgres versions (i.e. 12.5 -> 12)
- Update s3 config to use separate versioning and encryption terraform resources
- Use bucket_prefix instead of bucket for bucket naming to avoid name conflicts

Stream: https://youtu.be/KWwKPYuOGBw
This commit is contained in:
sidpalas
2023-01-13 12:43:41 -05:00
committed by GitHub
parent 7a3fdaca72
commit 9949d314f3
13 changed files with 56 additions and 45 deletions

View File

@@ -44,7 +44,7 @@ resource "aws_instance" "instance_2" {
}
resource "aws_s3_bucket" "bucket" {
bucket = "devops-directive-web-app-data"
bucket_prefix = "devops-directive-web-app-data"
force_destroy = true
}

View File

@@ -37,7 +37,7 @@ resource "aws_db_instance" "db_instance" {
allocated_storage = 20
storage_type = "gp2"
engine = "postgres"
engine_version = "12.4"
engine_version = "12"
instance_class = "db.t2.micro"
name = "mydb"
username = var.db_user

View File

@@ -45,20 +45,25 @@ resource "aws_instance" "instance_2" {
}
resource "aws_s3_bucket" "bucket" {
bucket = var.bucket_name
bucket_prefix = var.bucket_prefix
force_destroy = true
versioning {
enabled = true
}
server_side_encryption_configuration {
resource "aws_s3_bucket_versioning" "bucket_versioning" {
bucket = aws_s3_bucket.bucket.id
versioning_configuration {
status = "Enabled"
}
}
resource "aws_s3_bucket_server_side_encryption_configuration" "bucket_crypto_conf" {
bucket = aws_s3_bucket.bucket.bucket
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
}
data "aws_vpc" "default_vpc" {
default = true
@@ -202,7 +207,7 @@ resource "aws_db_instance" "db_instance" {
allocated_storage = 20
storage_type = "standard"
engine = "postgres"
engine_version = "12.5"
engine_version = "12"
instance_class = "db.t2.micro"
name = var.db_name
username = var.db_user

View File

@@ -1,4 +1,4 @@
bucket_name = "devops-directive-web-app-data"
bucket_prefix = "devops-directive-web-app-data"
domain = "devopsdeployed.com"
db_name = "mydb"
db_user = "foo"

View File

@@ -22,8 +22,8 @@ variable "instance_type" {
# S3 Variables
variable "bucket_name" {
description = "name of s3 bucket for app data"
variable "bucket_prefix" {
description = "prefix of s3 bucket for app data"
type = string
}

View File

@@ -2,7 +2,7 @@ resource "aws_db_instance" "db_instance" {
allocated_storage = 20
storage_type = "standard"
engine = "postgres"
engine_version = "12.5"
engine_version = "12"
instance_class = "db.t2.micro"
name = var.db_name
username = var.db_user

View File

@@ -1,15 +1,20 @@
resource "aws_s3_bucket" "bucket" {
bucket = var.bucket_name
bucket_prefix = var.bucket_prefix
force_destroy = true
versioning {
enabled = true
}
server_side_encryption_configuration {
resource "aws_s3_bucket_versioning" "bucket_versioning" {
bucket = aws_s3_bucket.bucket.id
versioning_configuration {
status = "Enabled"
}
}
resource "aws_s3_bucket_server_side_encryption_configuration" "bucket_crypto_conf" {
bucket = aws_s3_bucket.bucket.bucket
rule {
apply_server_side_encryption_by_default {
sse_algorithm = "AES256"
}
}
}
}

View File

@@ -34,8 +34,8 @@ variable "instance_type" {
# S3 Variables
variable "bucket_name" {
description = "name of s3 bucket for app data"
variable "bucket_prefix" {
description = "prefix of s3 bucket for app data"
type = string
}

View File

@@ -37,11 +37,11 @@ module "web_app_1" {
source = "../web-app-module"
# Input Variables
bucket_name = "web-app-1-devops-directive-web-app-data"
bucket_prefix = "web-app-1-data"
domain = "devopsdeployed.com"
app_name = "web-app-1"
environment_name = "production"
instance_type = "t2.small"
instance_type = "t2.micro"
create_dns_zone = true
db_name = "webapp1db"
db_user = "foo"
@@ -52,11 +52,11 @@ module "web_app_2" {
source = "../web-app-module"
# Input Variables
bucket_name = "web-app-2-devops-directive-web-app-data"
bucket_prefix = "web-app-2-data"
domain = "anotherdevopsdeployed.com"
app_name = "web-app-2"
environment_name = "production"
instance_type = "t2.small"
instance_type = "t2.micro"
create_dns_zone = true
db_name = "webapp2db"
db_user = "bar"

View File

@@ -35,10 +35,10 @@ module "web_app" {
source = "../../../06-organization-and-modules/web-app-module"
# Input Variables
bucket_name = "devops-directive-web-app-data-${local.environment_name}"
bucket_prefix = "web-app-data-${local.environment_name}"
domain = "devopsdeployed.com"
environment_name = local.environment_name
instance_type = "t2.small"
instance_type = "t2.micro"
create_dns_zone = false
db_name = "${local.environment_name}mydb"
db_user = "foo"

View File

@@ -35,7 +35,7 @@ module "web_app" {
source = "../../../06-organization-and-modules/web-app-module"
# Input Variables
bucket_name = "devops-directive-web-app-data-${local.environment_name}"
bucket_prefix = "web-app-data-${local.environment_name}"
domain = "devopsdeployed.com"
environment_name = local.environment_name
instance_type = "t2.micro"

View File

@@ -35,10 +35,10 @@ module "web_app" {
source = "../../06-organization-and-modules/web-app-module"
# Input Variables
bucket_name = "devops-directive-web-app-data-${local.environment_name}"
bucket_prefix = "web-app-data-${local.environment_name}"
domain = "devopsdeployed.com"
environment_name = local.environment_name
instance_type = "t2.small"
instance_type = "t2.micro"
create_dns_zone = terraform.workspace == "production" ? true : false
db_name = "${local.environment_name}mydb"
db_user = "foo"

View File

@@ -1,6 +1,7 @@
How to run this test?
Build, then run...
`go test -v timeout 10m`
download dependencies, then run the tests...
```
go mod download
go test -v --timeout 10m
```