From 4cbbd8b79df9cbe7219c585359a21eb00ef52165 Mon Sep 17 00:00:00 2001 From: Martin Hutchinson Date: Wed, 21 Feb 2024 15:06:13 +0000 Subject: [PATCH] Override the Slack template with a custom version (#99) The last version didn't actually work because the module didn't create the required json template. I've made some more changes to my fork that creates a default json template that can be overridden. We override that here with a custom template. This allows us to play around with the Slack template until we're happy with the notifications in dev, before promoting that to prod. --- deployment/live/cloudbuild/dev/slack.json | 30 +++++++++++++++++++ deployment/live/cloudbuild/dev/terragrunt.hcl | 5 ++-- deployment/modules/cloudbuild/main.tf | 7 +++-- deployment/modules/cloudbuild/variables.tf | 6 ++++ 4 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 deployment/live/cloudbuild/dev/slack.json diff --git a/deployment/live/cloudbuild/dev/slack.json b/deployment/live/cloudbuild/dev/slack.json new file mode 100644 index 0000000..1f9427d --- /dev/null +++ b/deployment/live/cloudbuild/dev/slack.json @@ -0,0 +1,30 @@ +[ + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "Cloud Build {{.Build.ProjectId}} {{.Build.Id}} {{.Build.Status}}" + } + }, + { + "type": "divider" + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "View Build Logs" + }, + "accessory": { + "type": "button", + "text": { + "type": "plain_text", + "text": "Logs" + }, + "value": "click_me_123", + "url": "{{.Build.LogUrl}}", + "action_id": "button-action" + } + } + ] + diff --git a/deployment/live/cloudbuild/dev/terragrunt.hcl b/deployment/live/cloudbuild/dev/terragrunt.hcl index dd299b4..7ade7aa 100644 --- a/deployment/live/cloudbuild/dev/terragrunt.hcl +++ b/deployment/live/cloudbuild/dev/terragrunt.hcl @@ -13,8 +13,9 @@ locals { inputs = merge( local.common_vars.locals, { - env = "dev" - cloud_run_service = "distributor-service-dev" + env = "dev" + cloud_run_service = "distributor-service-dev" + slack_template_json = file("slack.json") } ) diff --git a/deployment/modules/cloudbuild/main.tf b/deployment/modules/cloudbuild/main.tf index 713cd64..f6eb861 100644 --- a/deployment/modules/cloudbuild/main.tf +++ b/deployment/modules/cloudbuild/main.tf @@ -110,9 +110,10 @@ resource "google_project_iam_member" "cloudrun_deployer" { } module "cloud-build-slack-notifier" { - # This should be set back to the registry version when the following is merged: + # This should be set back to the registry version when the following are merged: # https://github.com/simplifi/terraform-google-cloud-build-slack-notifier/pull/8 - source = "github.com/mhutchinson/terraform-google-cloud-build-slack-notifier" + # https://github.com/simplifi/terraform-google-cloud-build-slack-notifier/pull/9 + source = "github.com/mhutchinson/terraform-google-cloud-build-slack-notifier?ref=4e525d3" # source = "simplifi/cloud-build-slack-notifier/google" # version = "0.3.0" @@ -122,5 +123,7 @@ module "cloud-build-slack-notifier" { # https://api.slack.com/apps/A06KYD43DPE/incoming-webhooks slack_webhook_url_secret_id = "gcb_slack_webhook_${var.env}" slack_webhook_url_secret_project = var.project_id + + override_slack_template_json = var.slack_template_json } diff --git a/deployment/modules/cloudbuild/variables.tf b/deployment/modules/cloudbuild/variables.tf index 382e562..e8ad183 100644 --- a/deployment/modules/cloudbuild/variables.tf +++ b/deployment/modules/cloudbuild/variables.tf @@ -34,3 +34,9 @@ variable "cloud_run_service" { type = string } +variable "slack_template_json" { + description = "Contents of the Slack template (https://cloud.google.com/build/docs/configuring-notifications/configure-slack#configuring_slack_notifications)" + type = string + default = "" +} +