Skip to content

Commit

Permalink
simplify app/env
Browse files Browse the repository at this point in the history
  • Loading branch information
amancevice committed Apr 14, 2024
1 parent b69a6d7 commit 0d4f152
Show file tree
Hide file tree
Showing 49 changed files with 304 additions and 621 deletions.
25 changes: 14 additions & 11 deletions blue/bluesky/send-post/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ locals {
account = data.aws_caller_identity.current.account_id
region = data.aws_region.current.name

name = "brutalismbot-${var.env}-${var.app}-send-post"
param_path = "/brutalismbot/${var.env}/${var.app}/"
app = dirname(path.module)
name = "${terraform.workspace}-${dirname(path.module)}-${basename(path.module)}"
param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/"
tags = { "brutalismbot:app" = local.app }
}

############
Expand All @@ -18,11 +20,11 @@ data "aws_caller_identity" "current" {}
data "aws_region" "current" {}

data "aws_cloudwatch_event_bus" "bus" {
name = "brutalismbot-${var.env}"
name = terraform.workspace
}

data "aws_dynamodb_table" "table" {
name = "brutalismbot-${var.env}"
name = terraform.workspace
}

##############
Expand All @@ -31,6 +33,7 @@ data "aws_dynamodb_table" "table" {

resource "aws_iam_role" "events" {
name = "${local.region}-${local.name}-events"
tags = local.tags

assume_role_policy = jsonencode({
Version = "2012-10-17"
Expand Down Expand Up @@ -60,10 +63,10 @@ resource "aws_cloudwatch_event_rule" "events" {
event_bus_name = data.aws_cloudwatch_event_bus.bus.name
name = local.name
state = "ENABLED"
tags = var.tags
tags = local.tags

event_pattern = jsonencode({
source = ["Pipe brutalismbot-${var.env}"]
source = ["Pipe ${terraform.workspace}"]
detail-type = ["Event from aws:dynamodb"]
detail = {
eventName = ["MODIFY"]
Expand Down Expand Up @@ -114,12 +117,12 @@ data "archive_file" "lambda" {
resource "aws_cloudwatch_log_group" "lambda" {
name = "/aws/lambda/${aws_lambda_function.lambda.function_name}"
retention_in_days = 14
tags = var.tags
tags = local.tags
}

resource "aws_iam_role" "lambda" {
name = "${local.region}-${local.name}-lambda"
tags = var.tags
tags = local.tags

assume_role_policy = jsonencode({
Version = "2012-10-17"
Expand Down Expand Up @@ -163,7 +166,7 @@ resource "aws_lambda_function" "lambda" {
role = aws_iam_role.lambda.arn
runtime = "ruby3.3"
source_code_hash = data.archive_file.lambda.output_base64sha256
tags = var.tags
tags = local.tags
timeout = 60

environment {
Expand All @@ -177,7 +180,7 @@ resource "aws_lambda_function" "lambda" {

resource "aws_iam_role" "states" {
name = "${local.region}-${local.name}-states"
tags = var.tags
tags = local.tags

assume_role_policy = jsonencode({
Version = "2012-10-17"
Expand Down Expand Up @@ -214,7 +217,7 @@ resource "aws_iam_role" "states" {
resource "aws_sfn_state_machine" "states" {
name = local.name
role_arn = aws_iam_role.states.arn
tags = var.tags
tags = local.tags

definition = jsonencode(yamldecode(templatefile("${path.module}/states.yml", {
send_post_arn = aws_lambda_function.lambda.arn
Expand Down
7 changes: 0 additions & 7 deletions blue/bluesky/send-post/variables.tf

This file was deleted.

23 changes: 1 addition & 22 deletions blue/bluesky/terraform.tf
Original file line number Diff line number Diff line change
@@ -1,26 +1,5 @@
#################
# VARIABLES #
#################

variable "env" { type = string }

##############
# LOCALS #
##############

locals {
env = var.env
app = basename(path.module)
tags = { "brutalismbot:app" = local.app }
}

###############
# MODULES #
###############

module "send-post" {
source = "./send-post"
env = local.env
app = local.app
tags = local.tags
}
module "send-post" { source = "./send-post" }
18 changes: 5 additions & 13 deletions blue/dashboard/terraform.tf
Original file line number Diff line number Diff line change
@@ -1,19 +1,11 @@
#################
# VARIABLES #
#################

variable "env" { type = string }

##############
# LOCALS #
##############

locals {
region = data.aws_region.current.name

env = var.env
app = basename(path.module)
tags = { "brutalismbot:app" = local.app }
tags = { "brutalismbot:app" = basename(path.module) }

functions = {
bluesky = ["send-post"]
Expand All @@ -26,7 +18,7 @@ locals {

state_machines = {
bluesky = ["send-post"]
reddit = ["pop", "pop-backlog"]
reddit = ["pop"]
shared = []
slack = ["create-posts", "install", "send-post", "uninstall"]
slack-beta = ["app-home", "delete-message", "disable", "enable", "reject", "screen", "states-errors"]
Expand All @@ -43,15 +35,15 @@ data "aws_region" "current" {}
data "aws_lambda_function" "functions" {
for_each = toset(concat([
for app, names in local.functions :
[for name in names : "brutalismbot-${local.env}-${app}-${name}"]
[for name in names : "${terraform.workspace}-${app}-${name}"]
]...))
function_name = each.key
}

data "aws_sfn_state_machine" "state_machines" {
for_each = toset(concat([
for app, names in local.state_machines :
[for name in names : "brutalismbot-${local.env}-${app}-${name}"]
[for name in names : "${terraform.workspace}-${app}-${name}"]
]...))
name = each.key
}
Expand All @@ -61,7 +53,7 @@ data "aws_sfn_state_machine" "state_machines" {
############################

resource "aws_cloudwatch_dashboard" "dashboard" {
dashboard_name = "brutalismbot-${local.env}"
dashboard_name = terraform.workspace
dashboard_body = jsonencode(yamldecode(templatefile("${path.module}/dashboard.yml", {
duration = jsonencode([
for function in keys(data.aws_lambda_function.functions) :
Expand Down
17 changes: 8 additions & 9 deletions blue/mail/terraform.tf
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
#################
# VARIABLES #
#################

variable "env" { type = string }

##############
# LOCALS #
##############
Expand All @@ -12,10 +6,9 @@ locals {
account = data.aws_caller_identity.current.account_id
region = data.aws_region.current.name

env = var.env
app = basename(path.module)
name = "brutalismbot-${local.env}-${local.app}"
param = "/brutalismbot/${local.env}/${local.app}/MAIL_TO"
name = "${terraform.workspace}-${local.app}"
param = "/${replace(terraform.workspace, "-", "/")}/${local.app}/MAIL_TO"
tags = { "brutalismbot:app" = local.app }
}

Expand Down Expand Up @@ -44,6 +37,7 @@ resource "aws_cloudwatch_log_group" "lambda" {

resource "aws_iam_role" "lambda" {
name = "${local.region}-${local.name}-lambda"
tags = local.tags

assume_role_policy = jsonencode({
Version = "2012-10-17"
Expand Down Expand Up @@ -98,6 +92,7 @@ resource "aws_lambda_function" "lambda" {
role = aws_iam_role.lambda.arn
runtime = "ruby3.3"
source_code_hash = data.archive_file.lambda.output_base64sha256
tags = local.tags
timeout = 15

environment {
Expand All @@ -122,6 +117,7 @@ resource "aws_lambda_permission" "mail" {
resource "aws_s3_bucket" "mail" {
bucket = "${local.region}-${local.name}"
force_destroy = true
tags = local.tags
}

resource "aws_s3_bucket_lifecycle_configuration" "mail" {
Expand Down Expand Up @@ -189,6 +185,7 @@ resource "aws_ses_receipt_rule_set" "mail" {

resource "aws_sns_topic" "mail" {
name = local.name
tags = local.tags
}

resource "aws_sns_topic_subscription" "mail" {
Expand All @@ -203,6 +200,7 @@ resource "aws_sns_topic_subscription" "mail" {

resource "aws_iam_role" "states" {
name = "${local.region}-${local.name}-states"
tags = local.tags

assume_role_policy = jsonencode({
Version = "2012-10-17"
Expand Down Expand Up @@ -232,4 +230,5 @@ resource "aws_sfn_state_machine" "states" {
definition = jsonencode(yamldecode(file("${path.module}/states.yml")))
name = local.name
role_arn = aws_iam_role.states.arn
tags = local.tags
}
20 changes: 11 additions & 9 deletions blue/reddit/pop-backlog/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ locals {
account = data.aws_caller_identity.current.account_id
region = data.aws_region.current.name

name = "brutalismbot-${var.env}-${var.app}-${basename(path.module)}"
app = dirname(path.module)
name = "${terraform.workspace}-${local.app}-${basename(path.module)}"
tags = { "brutalismbot:app" = local.app }
}

############
Expand All @@ -17,11 +19,11 @@ data "aws_caller_identity" "current" {}
data "aws_region" "current" {}

data "aws_cloudwatch_event_bus" "bus" {
name = "brutalismbot-${var.env}"
name = terraform.workspace
}

data "aws_dynamodb_table" "table" {
name = "brutalismbot-${var.env}"
name = terraform.workspace
}

##############
Expand All @@ -30,7 +32,7 @@ data "aws_dynamodb_table" "table" {

resource "aws_iam_role" "events" {
name = "${local.region}-${local.name}-events"
tags = var.tags
tags = local.tags

assume_role_policy = jsonencode({
Version = "2012-10-17"
Expand Down Expand Up @@ -61,7 +63,7 @@ resource "aws_cloudwatch_event_rule" "events" {
event_bus_name = data.aws_cloudwatch_event_bus.bus.name
name = local.name
state = "ENABLED"
tags = var.tags
tags = local.tags

event_pattern = jsonencode({
source = ["slack/beta"]
Expand Down Expand Up @@ -91,7 +93,7 @@ resource "aws_cloudwatch_event_target" "events" {

resource "aws_iam_role" "scheduler" {
name = "${local.region}-${local.name}-scheduler"
tags = var.tags
tags = local.tags

assume_role_policy = jsonencode({
Version = "2012-10-17"
Expand Down Expand Up @@ -119,7 +121,7 @@ resource "aws_iam_role" "scheduler" {

resource "aws_scheduler_schedule" "scheduler" {
name = local.name
group_name = "brutalismbot-${var.env}"
group_name = terraform.workspace
schedule_expression = "rate(3 hour)"
state = "DISABLED"

Expand All @@ -143,7 +145,7 @@ resource "aws_scheduler_schedule" "scheduler" {

resource "aws_iam_role" "states" {
name = "${local.region}-${local.name}-states"
tags = var.tags
tags = local.tags

assume_role_policy = jsonencode({
Version = "2012-10-17"
Expand Down Expand Up @@ -188,7 +190,7 @@ resource "aws_iam_role" "states" {
resource "aws_sfn_state_machine" "states" {
name = local.name
role_arn = aws_iam_role.states.arn
tags = var.tags
tags = local.tags

definition = jsonencode(yamldecode(templatefile("${path.module}/states.yml", {
table_name = data.aws_dynamodb_table.table.name
Expand Down
7 changes: 0 additions & 7 deletions blue/reddit/pop-backlog/variables.tf

This file was deleted.

Loading

0 comments on commit 0d4f152

Please sign in to comment.