diff --git a/blue/bluesky/send-post/main.tf b/blue/bluesky/send-post/main.tf index a25bd5f..77cf5ea 100644 --- a/blue/bluesky/send-post/main.tf +++ b/blue/bluesky/send-post/main.tf @@ -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 } } ############ @@ -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 } ############## @@ -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" @@ -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"] @@ -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" @@ -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 { @@ -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" @@ -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 diff --git a/blue/bluesky/send-post/variables.tf b/blue/bluesky/send-post/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/bluesky/send-post/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/bluesky/terraform.tf b/blue/bluesky/terraform.tf index 2645340..f82fb6b 100644 --- a/blue/bluesky/terraform.tf +++ b/blue/bluesky/terraform.tf @@ -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" } diff --git a/blue/dashboard/terraform.tf b/blue/dashboard/terraform.tf index 102fe26..10c51ff 100644 --- a/blue/dashboard/terraform.tf +++ b/blue/dashboard/terraform.tf @@ -1,9 +1,3 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } - ############## # LOCALS # ############## @@ -11,9 +5,7 @@ variable "env" { type = string } 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"] @@ -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"] @@ -43,7 +35,7 @@ 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 } @@ -51,7 +43,7 @@ data "aws_lambda_function" "functions" { 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 } @@ -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) : diff --git a/blue/mail/terraform.tf b/blue/mail/terraform.tf index 6e6d693..c029535 100644 --- a/blue/mail/terraform.tf +++ b/blue/mail/terraform.tf @@ -1,9 +1,3 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } - ############## # LOCALS # ############## @@ -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 } } @@ -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" @@ -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 { @@ -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" { @@ -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" { @@ -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" @@ -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 } diff --git a/blue/reddit/pop-backlog/main.tf b/blue/reddit/pop-backlog/main.tf index df0a40e..4b18f8b 100644 --- a/blue/reddit/pop-backlog/main.tf +++ b/blue/reddit/pop-backlog/main.tf @@ -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 } } ############ @@ -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 } ############## @@ -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" @@ -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"] @@ -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" @@ -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" @@ -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" @@ -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 diff --git a/blue/reddit/pop-backlog/variables.tf b/blue/reddit/pop-backlog/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/reddit/pop-backlog/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/reddit/pop/main.tf b/blue/reddit/pop/main.tf index 7b2964d..a31ad6d 100644 --- a/blue/reddit/pop/main.tf +++ b/blue/reddit/pop/main.tf @@ -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}-pop" - param_path = "/brutalismbot/${var.env}/${var.app}/" + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } } ############ @@ -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 } ############## @@ -39,12 +41,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" @@ -88,7 +90,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 = 10 environment { @@ -105,7 +107,7 @@ resource "aws_lambda_function" "lambda" { 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" @@ -136,7 +138,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"] @@ -166,7 +168,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" @@ -194,7 +196,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(1 hour)" state = "DISABLED" @@ -218,7 +220,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" @@ -265,10 +267,10 @@ 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", { - cloudwatch_namespace = "brutalismbot-${var.env}" + cloudwatch_namespace = terraform.workspace reddit_pop_arn = aws_lambda_function.lambda.arn table_name = data.aws_dynamodb_table.table.name }))) diff --git a/blue/reddit/pop/variables.tf b/blue/reddit/pop/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/reddit/pop/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/reddit/terraform.tf b/blue/reddit/terraform.tf index cc19261..a672a54 100644 --- a/blue/reddit/terraform.tf +++ b/blue/reddit/terraform.tf @@ -1,33 +1,5 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } - -############## -# LOCALS # -############## - -locals { - env = var.env - app = basename(path.module) - tags = { "brutalismbot:app" = local.app } -} - ############### # MODULES # ############### -module "pop" { - source = "./pop" - env = local.env - app = local.app - tags = local.tags -} - -module "pop-backlog" { - source = "./pop-backlog" - env = local.env - app = local.app - tags = local.tags -} +module "pop" { source = "./pop" } diff --git a/blue/shared/http/main.tf b/blue/shared/http/main.tf index d34d7cd..9646250 100644 --- a/blue/shared/http/main.tf +++ b/blue/shared/http/main.tf @@ -3,8 +3,10 @@ ############## locals { - name = "brutalismbot-${var.env}-${var.app}-http" + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" region = data.aws_region.current.name + tags = { "brutalismbot:app" = local.app } } ############ @@ -27,10 +29,12 @@ data "archive_file" "package" { resource "aws_cloudwatch_log_group" "logs" { name = "/aws/lambda/${aws_lambda_function.function.function_name}" retention_in_days = 14 + tags = local.tags } resource "aws_iam_role" "role" { name = "${local.region}-${local.name}-lambda" + tags = local.tags assume_role_policy = jsonencode({ Version = "2012-10-17" @@ -66,5 +70,6 @@ resource "aws_lambda_function" "function" { role = aws_iam_role.role.arn runtime = "ruby3.3" source_code_hash = data.archive_file.package.output_base64sha256 + tags = local.tags timeout = 30 } diff --git a/blue/shared/http/variables.tf b/blue/shared/http/variables.tf deleted file mode 100644 index 55c03bb..0000000 --- a/blue/shared/http/variables.tf +++ /dev/null @@ -1,6 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } diff --git a/blue/shared/terraform.tf b/blue/shared/terraform.tf index 2ef626b..e7ca0b0 100644 --- a/blue/shared/terraform.tf +++ b/blue/shared/terraform.tf @@ -5,12 +5,6 @@ data "aws_caller_identity" "current" {} data "aws_region" "current" {} -################# -# VARIABLES # -################# - -variable "env" { type = string } - ############## # LOCALS # ############## @@ -19,16 +13,11 @@ 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}" + name = terraform.workspace tags = { - "brutalismbot:env" = var.env - "brutalismbot:app" = local.app - "terraform:organization" = "beachplum" - "terraform:workspace" = "brutalismbot-${local.env}-${local.app}" - "git:repo" = "beachplum-io/brutalismbot" + "brutalismbot:app" = local.app } } @@ -38,6 +27,7 @@ locals { resource "aws_cloudwatch_event_bus" "bus" { name = local.name + tags = local.tags } ################# @@ -46,6 +36,7 @@ resource "aws_cloudwatch_event_bus" "bus" { resource "aws_scheduler_schedule_group" "group" { name = local.name + tags = local.tags } ############# @@ -54,6 +45,7 @@ resource "aws_scheduler_schedule_group" "group" { resource "aws_dynamodb_table" "table" { name = local.name + tags = local.tags hash_key = "Id" range_key = "Kind" @@ -112,6 +104,7 @@ resource "aws_dynamodb_table_item" "cursor" { resource "aws_iam_role" "pipes" { name = "${local.region}-${local.name}-shared-pipes" + tags = local.tags assume_role_policy = jsonencode({ Version = "2012-10-17" @@ -160,14 +153,11 @@ resource "aws_pipes_pipe" "pipes" { role_arn = aws_iam_role.pipes.arn source = aws_dynamodb_table.table.stream_arn target = aws_cloudwatch_event_bus.bus.arn + tags = local.tags } ################# # FUNCTIONS # ################# -module "http" { - source = "./http" - env = local.env - app = local.app -} +module "http" { source = "./http" } diff --git a/blue/slack-beta/api/main.tf b/blue/slack-beta/api/main.tf index a81bd93..2101010 100644 --- a/blue/slack-beta/api/main.tf +++ b/blue/slack-beta/api/main.tf @@ -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}-api" - param_path = "/brutalismbot/${var.env}/${var.app}/" + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } routes = [ "GET /health", @@ -30,7 +32,7 @@ data "aws_caller_identity" "current" {} data "aws_region" "current" {} data "aws_cloudwatch_event_bus" "bus" { - name = "brutalismbot-${var.env}" + name = terraform.workspace } ################ @@ -42,7 +44,7 @@ resource "aws_apigatewayv2_api" "http_api" { disable_execute_api_endpoint = true name = local.name protocol_type = "HTTP" - tags = var.tags + tags = local.tags } resource "aws_apigatewayv2_stage" "default" { @@ -50,7 +52,7 @@ resource "aws_apigatewayv2_stage" "default" { auto_deploy = true description = "Brutalismbot Slack Beta API default stage" name = "$default" - tags = var.tags + tags = local.tags access_log_settings { destination_arn = aws_cloudwatch_log_group.http_api.arn @@ -92,7 +94,7 @@ resource "aws_apigatewayv2_route" "routes" { resource "aws_cloudwatch_log_group" "http_api" { name = "/aws/apigatewayv2/${aws_apigatewayv2_api.http_api.name}" retention_in_days = 14 - tags = var.tags + tags = local.tags } ############## @@ -109,12 +111,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" @@ -164,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 = 30 environment { diff --git a/blue/slack-beta/api/variables.tf b/blue/slack-beta/api/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack-beta/api/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack-beta/app-home/lib/lib/home.rb b/blue/slack-beta/app-home/lib/lib/home.rb index f07efe6..aec6196 100644 --- a/blue/slack-beta/app-home/lib/lib/home.rb +++ b/blue/slack-beta/app-home/lib/lib/home.rb @@ -17,8 +17,7 @@ class Home SCHEDULE_GROUP = ENV['SCHEDULE_GROUP'] || 'brutalismbot-blue' QUEUES = { - '/r/brutalism' => '/r/brutalism', - 'backlog' => 'backlog', + 'r/brutalism' => '/r/brutalism', } RULES = { 'Bluesky' => "#{EVENT_BUS_NAME}-bluesky-send-post", @@ -27,7 +26,6 @@ class Home } SCHEDULES = { 'Reddit' => "#{SCHEDULE_GROUP}-reddit-pop", - 'Backlog' => "#{SCHEDULE_GROUP}-reddit-pop-backlog", } TEMPLATE = File.read(File.expand_path('home.yml.erb', File.dirname(__FILE__))) diff --git a/blue/slack-beta/app-home/main.tf b/blue/slack-beta/app-home/main.tf index 0829a3b..504f316 100644 --- a/blue/slack-beta/app-home/main.tf +++ b/blue/slack-beta/app-home/main.tf @@ -6,8 +6,11 @@ locals { account = data.aws_caller_identity.current.account_id region = data.aws_region.current.name - name = "brutalismbot-${var.env}-${var.app}-app-home" - param = "/brutalismbot/${var.env}/${var.app}/SLACK_API_TOKEN" + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + param = "${local.param_path}SLACK_API_TOKEN" + tags = { "brutalismbot:app" = local.app } } ############ @@ -18,15 +21,15 @@ 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 } data "aws_lambda_function" "http" { - function_name = "brutalismbot-${var.env}-shared-http" + function_name = "${terraform.workspace}-shared-http" } ############## @@ -35,7 +38,7 @@ data "aws_lambda_function" "http" { 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" @@ -66,7 +69,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"] @@ -101,12 +104,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" @@ -127,7 +130,7 @@ resource "aws_iam_role" "lambda" { Sid = "DescribeRule" Effect = "Allow" Action = "events:DescribeRule" - Resource = "arn:aws:events:${local.region}:${local.account}:rule/brutalismbot-${var.env}/*" + Resource = "arn:aws:events:${local.region}:${local.account}:rule/${terraform.workspace}/*" }, { Sid = "GetItem" @@ -140,7 +143,7 @@ resource "aws_iam_role" "lambda" { Sid = "GetSchedule" Effect = "Allow" Action = "scheduler:GetSchedule" - Resource = "arn:aws:scheduler:${local.region}:${local.account}:schedule/brutalismbot-${var.env}/*" + Resource = "arn:aws:scheduler:${local.region}:${local.account}:schedule/${terraform.workspace}/*" }, { Sid = "Logs" @@ -162,14 +165,14 @@ 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 = 10 environment { variables = { TABLE_NAME = data.aws_dynamodb_table.table.name EVENT_BUS_NAME = data.aws_cloudwatch_event_bus.bus.name - SCHEDULE_GROUP = "brutalismbot-${var.env}" + SCHEDULE_GROUP = terraform.workspace } } } @@ -180,7 +183,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" @@ -220,7 +223,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", { home_view_arn = aws_lambda_function.lambda.arn diff --git a/blue/slack-beta/app-home/variables.tf b/blue/slack-beta/app-home/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack-beta/app-home/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack-beta/delete-message/main.tf b/blue/slack-beta/delete-message/main.tf index e250ca4..199ab93 100644 --- a/blue/slack-beta/delete-message/main.tf +++ b/blue/slack-beta/delete-message/main.tf @@ -3,8 +3,13 @@ ############## locals { - name = "brutalismbot-${var.env}-${var.app}-delete-message" region = data.aws_region.current.name + + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } + } ############ @@ -14,11 +19,11 @@ locals { data "aws_region" "current" {} data "aws_cloudwatch_event_bus" "bus" { - name = "brutalismbot-${var.env}" + name = terraform.workspace } data "aws_lambda_function" "http" { - function_name = "brutalismbot-${var.env}-shared-http" + function_name = "${terraform.workspace}-shared-http" } ############## @@ -27,7 +32,7 @@ data "aws_lambda_function" "http" { 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" @@ -58,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"] @@ -85,7 +90,7 @@ resource "aws_cloudwatch_event_target" "events" { 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" @@ -114,7 +119,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", { http_function_arn = data.aws_lambda_function.http.arn diff --git a/blue/slack-beta/delete-message/variables.tf b/blue/slack-beta/delete-message/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack-beta/delete-message/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack-beta/disable/main.tf b/blue/slack-beta/disable/main.tf index 35a31ba..cc94f3b 100644 --- a/blue/slack-beta/disable/main.tf +++ b/blue/slack-beta/disable/main.tf @@ -3,9 +3,13 @@ ############## locals { - name = "brutalismbot-${var.env}-${var.app}-disable" account = data.aws_caller_identity.current.account_id region = data.aws_region.current.name + + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } } ############ @@ -16,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_sfn_state_machine" "app-home" { - name = "brutalismbot-${var.env}-${var.app}-app-home" + name = "${terraform.workspace}-${local.app}-app-home" } ############## @@ -29,7 +33,7 @@ data "aws_sfn_state_machine" "app-home" { 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" @@ -60,7 +64,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"] @@ -92,7 +96,7 @@ resource "aws_cloudwatch_event_target" "events" { 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" @@ -113,7 +117,7 @@ resource "aws_iam_role" "states" { Sid = "DisableRule" Effect = "Allow" Action = ["events:DisableRule"] - Resource = "arn:aws:events:${local.region}:${local.account}:rule/brutalismbot-${var.env}/*" + Resource = "arn:aws:events:${local.region}:${local.account}:rule/${terraform.workspace}/*" }, { Sid = "DisableSchedule" @@ -124,8 +128,8 @@ resource "aws_iam_role" "states" { "scheduler:UpdateSchedule", ] Resource = [ - "arn:aws:iam::${local.account}:role/${local.region}-brutalismbot-${var.env}-*", - "arn:aws:scheduler:${local.region}:${local.account}:schedule/brutalismbot-${var.env}/*", + "arn:aws:iam::${local.account}:role/${local.region}-${terraform.workspace}-*", + "arn:aws:scheduler:${local.region}:${local.account}:schedule/${terraform.workspace}/*", ] }, { @@ -142,7 +146,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", { app_home_arn = data.aws_sfn_state_machine.app-home.arn diff --git a/blue/slack-beta/disable/variables.tf b/blue/slack-beta/disable/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack-beta/disable/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack-beta/enable/main.tf b/blue/slack-beta/enable/main.tf index 175ccd4..7cd1e66 100644 --- a/blue/slack-beta/enable/main.tf +++ b/blue/slack-beta/enable/main.tf @@ -3,9 +3,13 @@ ############## locals { - name = "brutalismbot-${var.env}-${var.app}-enable" account = data.aws_caller_identity.current.account_id region = data.aws_region.current.name + + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } } ############ @@ -16,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_sfn_state_machine" "app-home" { - name = "brutalismbot-${var.env}-${var.app}-app-home" + name = "${terraform.workspace}-${local.app}-app-home" } ############## @@ -29,7 +33,7 @@ data "aws_sfn_state_machine" "app-home" { 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" @@ -60,7 +64,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"] @@ -92,7 +96,7 @@ resource "aws_cloudwatch_event_target" "events" { 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" @@ -113,7 +117,7 @@ resource "aws_iam_role" "states" { Sid = "EnableRule" Effect = "Allow" Action = ["events:EnableRule"] - Resource = "arn:aws:events:${local.region}:${local.account}:rule/brutalismbot-${var.env}/*" + Resource = "arn:aws:events:${local.region}:${local.account}:rule/${terraform.workspace}/*" }, { Sid = "EnableSchedule" @@ -124,8 +128,8 @@ resource "aws_iam_role" "states" { "scheduler:UpdateSchedule", ] Resource = [ - "arn:aws:iam::${local.account}:role/${local.region}-brutalismbot-${var.env}-*", - "arn:aws:scheduler:${local.region}:${local.account}:schedule/brutalismbot-${var.env}/*", + "arn:aws:iam::${local.account}:role/${local.region}-${terraform.workspace}-*", + "arn:aws:scheduler:${local.region}:${local.account}:schedule/${terraform.workspace}/*", ] }, { @@ -142,7 +146,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", { app_home_arn = data.aws_sfn_state_machine.app-home.arn diff --git a/blue/slack-beta/enable/variables.tf b/blue/slack-beta/enable/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack-beta/enable/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack-beta/reject/main.tf b/blue/slack-beta/reject/main.tf index 8cb1238..7b8d21b 100644 --- a/blue/slack-beta/reject/main.tf +++ b/blue/slack-beta/reject/main.tf @@ -6,7 +6,10 @@ locals { account = data.aws_caller_identity.current.account_id region = data.aws_region.current.name - name = "brutalismbot-${var.env}-${var.app}-reject" + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } } ############ @@ -17,19 +20,19 @@ 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 } data "aws_lambda_function" "http" { - function_name = "brutalismbot-${var.env}-shared-http" + function_name = "${terraform.workspace}-shared-http" } data "aws_sfn_state_machine" "screen" { - name = "brutalismbot-${var.env}-${var.app}-screen" + name = "${terraform.workspace}-${local.app}-screen" } ############## @@ -38,7 +41,7 @@ data "aws_sfn_state_machine" "screen" { 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" @@ -69,7 +72,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"] @@ -96,7 +99,7 @@ resource "aws_cloudwatch_event_target" "events" { 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" @@ -129,7 +132,7 @@ resource "aws_iam_role" "states" { Sid = "StopExecution" Effect = "Allow" Action = "states:StopExecution" - Resource = "arn:aws:states:${local.region}:${local.account}:execution:brutalismbot-${var.env}-${var.app}-screen:*" + Resource = "arn:aws:states:${local.region}:${local.account}:execution:${data.aws_sfn_state_machine.screen.name}:*" } ] }) @@ -139,7 +142,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 diff --git a/blue/slack-beta/reject/variables.tf b/blue/slack-beta/reject/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack-beta/reject/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack-beta/screen/main.tf b/blue/slack-beta/screen/main.tf index 8e1bbf7..ead2a1f 100644 --- a/blue/slack-beta/screen/main.tf +++ b/blue/slack-beta/screen/main.tf @@ -5,9 +5,14 @@ locals { account = data.aws_caller_identity.current.account_id region = data.aws_region.current.name + user_id = "UH9M57X6Z" + + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + param = "${local.param_path}SLACK_API_TOKEN" + tags = { "brutalismbot:app" = local.app } - name = "brutalismbot-${var.env}-${var.app}-screen" - param = "/brutalismbot/${var.env}/${var.app}/SLACK_API_TOKEN" } ############ @@ -18,15 +23,15 @@ 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 } data "aws_lambda_function" "http" { - function_name = "brutalismbot-${var.env}-shared-http" + function_name = "${terraform.workspace}-shared-http" } ############## @@ -35,7 +40,7 @@ data "aws_lambda_function" "http" { 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" @@ -65,10 +70,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 = ["INSERT"] @@ -119,12 +124,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" @@ -160,7 +165,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 = 30 } @@ -170,7 +175,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" @@ -216,10 +221,10 @@ 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", { - channel_id = var.channel_id + channel_id = local.user_id http_function_arn = data.aws_lambda_function.http.arn param = local.param screen_arn = aws_lambda_function.lambda.arn diff --git a/blue/slack-beta/screen/variables.tf b/blue/slack-beta/screen/variables.tf deleted file mode 100644 index c846291..0000000 --- a/blue/slack-beta/screen/variables.tf +++ /dev/null @@ -1,8 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } -variable "channel_id" { type = string } diff --git a/blue/slack-beta/states-errors/main.tf b/blue/slack-beta/states-errors/main.tf index dceac16..63e833d 100644 --- a/blue/slack-beta/states-errors/main.tf +++ b/blue/slack-beta/states-errors/main.tf @@ -5,9 +5,13 @@ locals { account = data.aws_caller_identity.current.account_id region = data.aws_region.current.name + user_id = "UH9M57X6Z" - name = "brutalismbot-${var.env}-${var.app}-states-errors" - param = "/brutalismbot/${var.env}/${var.app}/SLACK_API_TOKEN" + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + param = "${local.param_path}SLACK_API_TOKEN" + tags = { "brutalismbot:app" = local.app } } ############ @@ -18,7 +22,7 @@ data "aws_caller_identity" "current" {} data "aws_region" "current" {} data "aws_lambda_function" "http" { - function_name = "brutalismbot-${var.env}-shared-http" + function_name = "${terraform.workspace}-shared-http" } ############## @@ -27,7 +31,7 @@ data "aws_lambda_function" "http" { 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" @@ -56,14 +60,14 @@ resource "aws_cloudwatch_event_rule" "events" { description = "Capture state machine error events" name = local.name state = "ENABLED" - tags = var.tags + tags = local.tags event_pattern = jsonencode({ source = ["aws.states"] detail-type = ["Step Functions Execution Status Change"] detail = { - executionArn = [{ prefix = "arn:aws:states:${local.region}:${local.account}:execution:brutalismbot-${var.env}-" }] + executionArn = [{ prefix = "arn:aws:states:${local.region}:${local.account}:execution:${terraform.workspace}-" }] stateMachineArn = [{ anything-but = [aws_sfn_state_machine.states.arn] }] status = ["FAILED", "TIMED_OUT"] } @@ -83,7 +87,7 @@ resource "aws_cloudwatch_event_target" "events" { 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" @@ -120,10 +124,10 @@ 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", { - channel_id = var.channel_id + channel_id = local.user_id http_function_arn = data.aws_lambda_function.http.arn param = local.param }))) diff --git a/blue/slack-beta/states-errors/variables.tf b/blue/slack-beta/states-errors/variables.tf deleted file mode 100644 index 4341b1e..0000000 --- a/blue/slack-beta/states-errors/variables.tf +++ /dev/null @@ -1,8 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "channel_id" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack-beta/states-retry/main.tf b/blue/slack-beta/states-retry/main.tf index 9daf79b..3595943 100644 --- a/blue/slack-beta/states-retry/main.tf +++ b/blue/slack-beta/states-retry/main.tf @@ -6,7 +6,10 @@ locals { account = data.aws_caller_identity.current.account_id region = data.aws_region.current.name - name = "brutalismbot-${var.env}-${var.app}-states-retry" + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } } ############ @@ -17,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_lambda_function" "http" { - function_name = "brutalismbot-${var.env}-shared-http" + function_name = "${terraform.workspace}-shared-http" } ############## @@ -30,7 +33,7 @@ data "aws_lambda_function" "http" { 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" @@ -61,7 +64,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"] @@ -88,7 +91,7 @@ resource "aws_cloudwatch_event_target" "events" { 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" @@ -115,13 +118,13 @@ resource "aws_iam_role" "states" { Sid = "DescribeExecution" Effect = "Allow" Action = "states:DescribeExecution" - Resource = "arn:aws:states:${local.region}:${local.account}:execution:brutalismbot-${var.env}-*" + Resource = "arn:aws:states:${local.region}:${local.account}:execution:${terraform.workspace}-*" }, { Sid = "StartExecution" Effect = "Allow" Action = "states:StartExecution" - Resource = "arn:aws:states:${local.region}:${local.account}:stateMachine:brutalismbot-${var.env}-*", + Resource = "arn:aws:states:${local.region}:${local.account}:stateMachine:${terraform.workspace}-*", } ] }) @@ -131,7 +134,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", { http_function_arn = data.aws_lambda_function.http.arn diff --git a/blue/slack-beta/states-retry/variables.tf b/blue/slack-beta/states-retry/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack-beta/states-retry/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack-beta/terraform.tf b/blue/slack-beta/terraform.tf index 0a3570d..d1a1d28 100644 --- a/blue/slack-beta/terraform.tf +++ b/blue/slack-beta/terraform.tf @@ -1,86 +1,13 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } - -############## -# LOCALS # -############## - -locals { - env = var.env - app = basename(path.module) - tags = { "brutalismbot:app" = local.app } - user_id = "UH9M57X6Z" -} - ############### # MODULES # ############### -module "api" { - source = "./api" - app = local.app - env = local.env - tags = local.tags -} - - -module "app-home" { - source = "./app-home" - app = local.app - env = local.env - tags = local.tags -} - -module "delete-message" { - source = "./delete-message" - app = local.app - env = local.env - tags = local.tags -} - -module "disable" { - source = "./disable" - app = local.app - env = local.env - tags = local.tags -} - -module "enable" { - source = "./enable" - app = local.app - env = local.env - tags = local.tags -} - -module "reject" { - source = "./reject" - app = local.app - env = local.env - tags = local.tags -} - -module "screen" { - source = "./screen" - app = local.app - env = local.env - tags = local.tags - channel_id = local.user_id -} - -module "states-errors" { - source = "./states-errors" - app = local.app - env = local.env - tags = local.tags - channel_id = local.user_id -} - -module "states-retry" { - source = "./states-retry" - app = local.app - env = local.env - tags = local.tags -} +module "api" { source = "./api" } +module "app-home" { source = "./app-home" } +module "delete-message" { source = "./delete-message" } +module "disable" { source = "./disable" } +module "enable" { source = "./enable" } +module "reject" { source = "./reject" } +module "screen" { source = "./screen" } +module "states-errors" { source = "./states-errors" } +module "states-retry" { source = "./states-retry" } diff --git a/blue/slack/api/main.tf b/blue/slack/api/main.tf index 605f58e..97aea18 100644 --- a/blue/slack/api/main.tf +++ b/blue/slack/api/main.tf @@ -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}-api" - param_path = "/brutalismbot/${var.env}/${var.app}/" + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } routes = [ "GET /health", @@ -28,7 +30,7 @@ data "aws_caller_identity" "current" {} data "aws_region" "current" {} data "aws_cloudwatch_event_bus" "bus" { - name = "brutalismbot-${var.env}" + name = terraform.workspace } ################ @@ -40,7 +42,7 @@ resource "aws_apigatewayv2_api" "http_api" { disable_execute_api_endpoint = true name = local.name protocol_type = "HTTP" - tags = var.tags + tags = local.tags } resource "aws_apigatewayv2_stage" "default" { @@ -48,7 +50,7 @@ resource "aws_apigatewayv2_stage" "default" { auto_deploy = true description = "Brutalismbot Slack API default stage" name = "$default" - tags = var.tags + tags = local.tags access_log_settings { destination_arn = aws_cloudwatch_log_group.http_api.arn @@ -90,7 +92,7 @@ resource "aws_apigatewayv2_route" "routes" { resource "aws_cloudwatch_log_group" "http_api" { name = "/aws/apigatewayv2/${aws_apigatewayv2_api.http_api.name}" retention_in_days = 14 - tags = var.tags + tags = local.tags } ############### @@ -107,12 +109,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" @@ -162,12 +164,12 @@ 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 = 30 environment { variables = { - EVENT_BUS = "brutalismbot-${var.env}" + EVENT_BUS = terraform.workspace EVENT_SOURCE = "slack" PARAM_PATH = local.param_path } diff --git a/blue/slack/api/variables.tf b/blue/slack/api/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack/api/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack/create-posts/main.tf b/blue/slack/create-posts/main.tf index 0bb584a..9fd3978 100644 --- a/blue/slack/create-posts/main.tf +++ b/blue/slack/create-posts/main.tf @@ -3,9 +3,13 @@ ############## locals { - name = "brutalismbot-${var.env}-${var.app}-create-posts" account = data.aws_caller_identity.current.account_id region = data.aws_region.current.name + + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } } ############ @@ -16,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 } ############## @@ -29,7 +33,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" @@ -59,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"] @@ -131,12 +135,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" @@ -171,7 +175,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 } ##################### @@ -180,7 +184,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" @@ -229,7 +233,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", { create_post_arn = aws_lambda_function.lambda.arn diff --git a/blue/slack/create-posts/variables.tf b/blue/slack/create-posts/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack/create-posts/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack/install/main.tf b/blue/slack/install/main.tf index 62726b9..c647f80 100644 --- a/blue/slack/install/main.tf +++ b/blue/slack/install/main.tf @@ -3,8 +3,12 @@ ############## locals { - name = "brutalismbot-${var.env}-${var.app}-install" region = data.aws_region.current.name + + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } } ############ @@ -14,11 +18,11 @@ locals { 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 } ############## @@ -27,7 +31,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" @@ -57,7 +61,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", "slack/beta"] @@ -79,7 +83,7 @@ resource "aws_cloudwatch_event_target" "events" { 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" @@ -108,7 +112,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 diff --git a/blue/slack/install/variables.tf b/blue/slack/install/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack/install/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack/send-post/main.tf b/blue/slack/send-post/main.tf index 501015f..f400c2f 100644 --- a/blue/slack/send-post/main.tf +++ b/blue/slack/send-post/main.tf @@ -3,9 +3,13 @@ ############## locals { - name = "brutalismbot-${var.env}-${var.app}-send-post" account = data.aws_caller_identity.current.account_id region = data.aws_region.current.name + + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } } ############ @@ -16,15 +20,15 @@ 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 } data "aws_lambda_function" "http" { - function_name = "brutalismbot-${var.env}-shared-http" + function_name = "${terraform.workspace}-shared-http" } ############## @@ -33,7 +37,7 @@ data "aws_lambda_function" "http" { 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" @@ -63,10 +67,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 = ["INSERT"] @@ -107,7 +111,7 @@ resource "aws_cloudwatch_event_target" "events" { 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" @@ -144,7 +148,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", { http_function_arn = data.aws_lambda_function.http.arn diff --git a/blue/slack/send-post/variables.tf b/blue/slack/send-post/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack/send-post/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/slack/terraform.tf b/blue/slack/terraform.tf index ab03a91..92d472f 100644 --- a/blue/slack/terraform.tf +++ b/blue/slack/terraform.tf @@ -1,54 +1,9 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } - -############## -# LOCALS # -############## - -locals { - env = var.env - app = basename(path.module) - tags = { "brutalismbot:app" = local.app } -} - ############### # MODULES # ############### -module "api" { - source = "./api" - env = local.env - app = local.app - tags = local.tags -} - -module "create-posts" { - source = "./create-posts" - env = local.env - app = local.app - tags = local.tags -} - -module "install" { - source = "./install" - env = local.env - app = local.app - tags = local.tags -} - -module "uninstall" { - source = "./uninstall" - env = local.env - app = local.app - tags = local.tags -} - -module "send-post" { - source = "./send-post" - env = local.env - app = local.app - tags = local.tags -} +module "api" { source = "./api" } +module "create-posts" { source = "./create-posts" } +module "install" { source = "./install" } +module "uninstall" { source = "./uninstall" } +module "send-post" { source = "./send-post" } diff --git a/blue/slack/uninstall/main.tf b/blue/slack/uninstall/main.tf index faa0434..09c8b0f 100644 --- a/blue/slack/uninstall/main.tf +++ b/blue/slack/uninstall/main.tf @@ -3,9 +3,13 @@ ############## locals { - name = "brutalismbot-${var.env}-${var.app}-uninstall" account = data.aws_caller_identity.current.account_id region = data.aws_region.current.name + + app = dirname(path.module) + name = "${terraform.workspace}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } } ############ @@ -16,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 } ############## @@ -29,7 +33,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" @@ -59,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", "slack/beta"] @@ -110,7 +114,7 @@ resource "aws_cloudwatch_event_target" "events" { 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" @@ -153,7 +157,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 diff --git a/blue/slack/uninstall/variables.tf b/blue/slack/uninstall/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/slack/uninstall/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/terraform.tf b/blue/terraform.tf index faad0b8..af5a70c 100644 --- a/blue/terraform.tf +++ b/blue/terraform.tf @@ -29,7 +29,7 @@ terraform { ########### provider "aws" { - region = "us-west-2" + region = local.region default_tags { tags = local.tags } } @@ -38,12 +38,12 @@ provider "aws" { ############## locals { - env = "blue" + region = "us-west-2" tags = { - "brutalismbot:env" = local.env + "brutalismbot:env" = split("-", terraform.workspace)[1] "terraform:organization" = "beachplum" - "terraform:workspace" = "brutalismbot-${local.env}" + "terraform:workspace" = terraform.workspace "git:repo" = "beachplum-io/brutalismbot" } } @@ -52,47 +52,12 @@ locals { # MODULES # ############### -module "shared" { - source = "./shared" - env = local.env -} - -module "bluesky" { - source = "./bluesky" - env = local.env -} - -module "dashboard" { - source = "./dashboard" - env = local.env -} - -module "mail" { - source = "./mail" - env = local.env -} - -module "reddit" { - source = "./reddit" - env = local.env -} - -module "slack" { - source = "./slack" - env = local.env -} - -module "slack-beta" { - source = "./slack-beta" - env = local.env -} - -module "twitter" { - source = "./twitter" - env = local.env -} - -module "website" { - source = "./website" - env = local.env -} +module "shared" { source = "./shared" } +module "bluesky" { source = "./bluesky" } +module "dashboard" { source = "./dashboard" } +module "mail" { source = "./mail" } +module "reddit" { source = "./reddit" } +module "slack" { source = "./slack" } +module "slack-beta" { source = "./slack-beta" } +module "twitter" { source = "./twitter" } +module "website" { source = "./website" } diff --git a/blue/twitter/send-post/main.tf b/blue/twitter/send-post/main.tf index 1d37eb9..aab2aa0 100644 --- a/blue/twitter/send-post/main.tf +++ b/blue/twitter/send-post/main.tf @@ -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}-${local.app}-${basename(path.module)}" + param_path = "/${replace(terraform.workspace, "-", "/")}/${local.app}/" + tags = { "brutalismbot:app" = local.app } } ############ @@ -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 } ############## @@ -60,10 +62,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"] @@ -114,12 +116,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" @@ -163,7 +165,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 { @@ -177,7 +179,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" @@ -214,7 +216,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_tweet_arn = aws_lambda_function.lambda.arn diff --git a/blue/twitter/send-post/variables.tf b/blue/twitter/send-post/variables.tf deleted file mode 100644 index 46ef076..0000000 --- a/blue/twitter/send-post/variables.tf +++ /dev/null @@ -1,7 +0,0 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } -variable "app" { type = string } -variable "tags" { type = map(string) } diff --git a/blue/twitter/terraform.tf b/blue/twitter/terraform.tf index 2645340..f82fb6b 100644 --- a/blue/twitter/terraform.tf +++ b/blue/twitter/terraform.tf @@ -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" } diff --git a/blue/website/terraform.tf b/blue/website/terraform.tf index 0ccb848..4fa6f9a 100644 --- a/blue/website/terraform.tf +++ b/blue/website/terraform.tf @@ -1,9 +1,3 @@ -################# -# VARIABLES # -################# - -variable "env" { type = string } - ############## # LOCALS # ############## @@ -11,8 +5,8 @@ variable "env" { type = string } locals { region = data.aws_region.current.name - env = var.env app = basename(path.module) + name = "${terraform.workspace}-${local.app}" tags = { "brutalismbot:app" = local.app } mime_map = { @@ -49,7 +43,8 @@ data "aws_cloudfront_origin_access_identities" "website" { ################# resource "aws_s3_bucket" "website" { - bucket = "${local.region}-brutalismbot-${local.env}-${local.app}" + bucket = "${local.region}-${terraform.workspace}-${local.app}" + tags = local.tags } resource "aws_s3_bucket_public_access_block" "website" { @@ -90,4 +85,5 @@ resource "aws_s3_object" "objects" { content_type = each.value.content_type source = each.value.source source_hash = filemd5(each.value.source) + tags = local.tags }