From 814420446e1bad24edc00867659550b0e3a98370 Mon Sep 17 00:00:00 2001 From: Jim Park Date: Wed, 29 Apr 2020 17:32:53 -0700 Subject: [PATCH 1/5] fix: give up on using null_resource to save on shipping a binary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Just ship the binary and use LFS instead. ¯\_(ツ)_/¯ --- .gitattributes | 1 + files/slowlog_check.1.0.1.zip | 3 +++ locals.tf | 10 ++++++++++ main.tf | 16 ++++------------ 4 files changed, 18 insertions(+), 12 deletions(-) create mode 100644 .gitattributes create mode 100644 files/slowlog_check.1.0.1.zip create mode 100644 locals.tf diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..486a232 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.zip filter=lfs diff=lfs merge=lfs -text diff --git a/files/slowlog_check.1.0.1.zip b/files/slowlog_check.1.0.1.zip new file mode 100644 index 0000000..0985c26 --- /dev/null +++ b/files/slowlog_check.1.0.1.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e7e5b31bad2995a9d1cc8dc844024febd93253e9c1dd41f217448699a3bbdd4 +size 345268 diff --git a/locals.tf b/locals.tf new file mode 100644 index 0000000..b51a6b7 --- /dev/null +++ b/locals.tf @@ -0,0 +1,10 @@ +locals { + slowlog_check_archive_basename = "slowlog_check.1.0.1.zip" + slowlog_check_archive_hash = "Xn5bMbrSmVqdHMjchEAk/r2TJT6cHdQfIXRIaZo7vdQ=" # generated with filebase64sha256() + slowlog_check_archive_path = "${path.module}/files/${local.slowlog_check_archive_basename}" + + search_replication_group = "(?P[0-9A-Za-z_-]+)\\.(?P[0-9A-Za-z_-]+)\\.{0,1}(?P[0-9A-Za-z_]*)\\.(?P[0-9A-Za-z_-]+)\\.cache\\.amazonaws\\.com:{0,1}(?P[0-9]*)" + parsed_elasticache_endpoint = regex(local.search_replication_group, var.elasticache_endpoint) + # https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/Endpoints.html + replication_group = contains(["clustercfg", "master"], local.parsed_elasticache_endpoint["first"]) ? local.parsed_elasticache_endpoint["second"] : local.parsed_elasticache_endpoint["first"] +} diff --git a/main.tf b/main.tf index bd1776a..266fb71 100644 --- a/main.tf +++ b/main.tf @@ -1,6 +1,6 @@ resource aws_cloudwatch_event_rule slowlog_check { name_prefix = "slowlog_check_every_minute" - description = "Check for slowlogs every five minutes" + description = "Check for slowlogs every minute" schedule_expression = "rate(1 minute)" tags = var.tags } @@ -94,13 +94,6 @@ resource aws_security_group egress { tags = var.tags } -resource null_resource get_slowlog_check_archive { - provisioner local-exec { - command = "wget https://github.com/scribd/elasticache-slowlog-to-datadog/releases/download/v1.0.1/slowlog_check.1.0.1.zip" - working_dir = path.module - } -} - resource aws_ssm_parameter datadog_api_key { name = "/${var.ssm_path}/DATADOG_API_KEY" description = "Datadog API Key" @@ -120,8 +113,8 @@ resource aws_ssm_parameter datadog_app_key { resource "aws_lambda_function" "slowlog_check" { function_name = "slowlog_check" - filename = "${path.module}/slowlog_check.1.0.1.zip" - source_code_hash = "Xn5bMbrSmVqdHMjchEAk/r2TJT6cHdQfIXRIaZo7vdQ=" + filename = local.slowlog_check_archive_path + source_code_hash = local.slowlog_check_archive_hash role = aws_iam_role.slowlog_check.arn handler = "lambda_function.lambda_handler" runtime = "ruby2.5" @@ -141,8 +134,7 @@ resource "aws_lambda_function" "slowlog_check" { } } - tags = var.tags - depends_on = [null_resource.get_slowlog_check_archive] + tags = var.tags } resource aws_lambda_function_event_invoke_config slowlog_check { From 9a7a7648c3929e3e3a9f0c06a6f0b03cd644eca8 Mon Sep 17 00:00:00 2001 From: Jim Park Date: Wed, 29 Apr 2020 17:06:21 -0700 Subject: [PATCH 2/5] feat: enable multiple invocations of the module in a single account --- main.tf | 12 ++++++------ vars.tf | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/main.tf b/main.tf index 266fb71..df72bae 100644 --- a/main.tf +++ b/main.tf @@ -20,7 +20,7 @@ resource aws_lambda_permission slowlog_check { resource aws_iam_role slowlog_check { - name = "slowlog_check" + name_prefix = "slowlog_check" assume_role_policy = < Date: Wed, 29 Apr 2020 21:42:48 -0700 Subject: [PATCH 3/5] ci: remove id --- .github/workflows/validate_and_release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/validate_and_release.yml b/.github/workflows/validate_and_release.yml index b79d8b4..6a17b32 100644 --- a/.github/workflows/validate_and_release.yml +++ b/.github/workflows/validate_and_release.yml @@ -7,7 +7,6 @@ on: jobs: terraform: name: 'Terraform' - id: terraform runs-on: ubuntu-latest steps: - name: 'Checkout' From d9d0a80fabab969cfe9c51371caaf6b26344dafe Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 30 Apr 2020 04:46:12 +0000 Subject: [PATCH 4/5] chore(release): 1.3.0-alpha.1 [skip ci] # [1.3.0-alpha.1](https://github.com/scribd/terraform-elasticache-slowlog-to-datadog/compare/v1.2.1...v1.3.0-alpha.1) (2020-04-30) ### Bug Fixes * give up on using null_resource to save on shipping a binary ([8144204](https://github.com/scribd/terraform-elasticache-slowlog-to-datadog/commit/814420446e1bad24edc00867659550b0e3a98370)) ### Features * enable multiple invocations of the module in a single account ([9a7a764](https://github.com/scribd/terraform-elasticache-slowlog-to-datadog/commit/9a7a7648c3929e3e3a9f0c06a6f0b03cd644eca8)) --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 518111b..b12fa41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [1.3.0-alpha.1](https://github.com/scribd/terraform-elasticache-slowlog-to-datadog/compare/v1.2.1...v1.3.0-alpha.1) (2020-04-30) + + +### Bug Fixes + +* give up on using null_resource to save on shipping a binary ([8144204](https://github.com/scribd/terraform-elasticache-slowlog-to-datadog/commit/814420446e1bad24edc00867659550b0e3a98370)) + + +### Features + +* enable multiple invocations of the module in a single account ([9a7a764](https://github.com/scribd/terraform-elasticache-slowlog-to-datadog/commit/9a7a7648c3929e3e3a9f0c06a6f0b03cd644eca8)) + ## [1.2.1](https://github.com/scribd/terraform-elasticache-slowlog-to-datadog/compare/v1.2.0...v1.2.1) (2020-04-29) From 2cfe00bb9444fcbbe9ee73a31fcb09ac393101fa Mon Sep 17 00:00:00 2001 From: Jim Park Date: Wed, 29 Apr 2020 22:01:09 -0700 Subject: [PATCH 5/5] docs: update documentation --- vars.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vars.tf b/vars.tf index 2d03dd0..20e8671 100644 --- a/vars.tf +++ b/vars.tf @@ -39,7 +39,7 @@ variable metric_name { } variable ssm_path { - description = "Custom SSM path to provision Datadog access ID's in. Leading slash ommitted. The final SSM paths will look like: `/$ssm_path/$elasticache_endpoint/DATADOG_API_KEY`" + description = "Custom SSM path to provision Datadog access ID's in. Leading slash ommitted. The final SSM paths will look like: `/$ssm_path/$replication_group/DATADOG_API_KEY`" default = "slowlog_check" }