{"id":15156051,"url":"https://github.com/altissimo-hq/terraform-google-cloudbuild-notifier","last_synced_at":"2026-01-17T03:47:01.888Z","repository":{"id":244742555,"uuid":"815742425","full_name":"altissimo-hq/terraform-google-cloudbuild-notifier","owner":"altissimo-hq","description":"Deploys the Google Cloud Build Notifier as a Cloud Run Service","archived":false,"fork":false,"pushed_at":"2024-06-17T05:19:32.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T14:38:35.809Z","etag":null,"topics":["cloudbuild","google","terraform","terraform-modules"],"latest_commit_sha":null,"homepage":"https://registry.terraform.io/modules/altissimo-hq/cloudbuild-notifier/google/latest","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/altissimo-hq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-16T02:33:22.000Z","updated_at":"2024-06-17T05:19:35.000Z","dependencies_parsed_at":"2024-06-17T06:39:17.570Z","dependency_job_id":null,"html_url":"https://github.com/altissimo-hq/terraform-google-cloudbuild-notifier","commit_stats":null,"previous_names":["altissimo-hq/terraform-google-cloudbuild-notifier"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altissimo-hq%2Fterraform-google-cloudbuild-notifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altissimo-hq%2Fterraform-google-cloudbuild-notifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altissimo-hq%2Fterraform-google-cloudbuild-notifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/altissimo-hq%2Fterraform-google-cloudbuild-notifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/altissimo-hq","download_url":"https://codeload.github.com/altissimo-hq/terraform-google-cloudbuild-notifier/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247370918,"owners_count":20928108,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudbuild","google","terraform","terraform-modules"],"created_at":"2024-09-26T19:01:07.635Z","updated_at":"2026-01-17T03:47:01.855Z","avatar_url":"https://github.com/altissimo-hq.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Altissimo - Google Cloud Build Notifier (Terraform Module)\n\nThe repo contains a terraform module for deploying the Google Cloud Build Notifier as a Cloud Run Service.\n\n`altissimo-hq/terraform-google-cloudbuild-notifier`\n\n## Prerequisites\n\n### Google Cloud IAM Service Account\nThis Terraform module currently relies on a Google Cloud IAM Service Account that is used to send PubSub notifications to the Cloud Run service.\n* `service_account`: Service Account email address (ex. \"cloud-run-pubsub-invoker@\u003cPROJECT_ID\u003e.iam.gserviceaccount.com\")\n\nThis Service Account will receive the Cloud Run Invoker role on the Cloud Run Service.\n\n### Google Cloud Secret Manager Secret\nThis Terraform module currently relies on a Google Cloud Secret Manager Secret that contains a Slack Webhook where notifications are sent.\n* `slack_webhook_project`: Project where the Secret lives\n* `slack_webhook_secret_name`: Name of the Secret (defaults to \"slack-cloudbuild-webook\")\n* `slack_webhook_secret_version`: Version of the Secret (defaults to \"latest\")\n\nThe Compute Engine Service Account needs the Secret Accessor role on the Secret:\n* member: `${PROJECT_NUMBER}-compute@developer.gserviceaccount.com`\n* role: `roles/secretmanager.secretAccessor`\n\n### Google Cloud Storage Bucket\nThis Terraform module currently relies on a Google Cloud Storage Bucket that is used to store the Google Cloud Build Notifier config and template files.\n* `bucket`: Name of the Bucket where the configs and templates live\n* `slack_notifier_config_path`: Path to the Slack Notifier config (default to \"slack-notifications.yaml\")\n* `slack_notifier_template_path`: Path to the Slack Notifier template (default to \"slack-template.json\")\n\nThe Compute Engine Service Account needs the Storage Legacy Object Owner role on the Bucket:\n* member: `PROJECT_NUMBER-compute@developer.gserviceaccount.com`\n* role: `roles/storage.legacyObjectOwner`\n\n### PubSub Cloud Run Invoker\nThis Terrform module currently relies on the PubSub Service Agent has the ability to act as other IAM Service Accounts in the project.\n* member: `service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com`\n* role: `roles/iam.serviceAccountTokenCreator`\n---\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n## Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_google\"\u003e\u003c/a\u003e [google](#requirement\\_google) | \u003e= 5.33.0 |\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_google\"\u003e\u003c/a\u003e [google](#provider\\_google) | \u003e= 5.33.0 |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [google_cloud_run_service.cloud-build-slack-notifier](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_service) | resource |\n| [google_cloud_run_service_iam_member.cloud-build-slack-notifier-invoker](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_service_iam_member) | resource |\n| [google_pubsub_subscription.cloud-builds](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/pubsub_subscription) | resource |\n| [google_pubsub_topic.cloud-builds](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/pubsub_topic) | resource |\n| [google_storage_bucket.build-notifier](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/storage_bucket) | resource |\n| [google_storage_bucket_iam_member.build-notifier-compute](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/storage_bucket_iam_member) | resource |\n| [google_storage_bucket_object.slack-config-yaml](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/storage_bucket_object) | resource |\n| [google_storage_bucket_object.slack-template-json](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/storage_bucket_object) | resource |\n| [google_compute_default_service_account.default](https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/compute_default_service_account) | data source |\n| [google_pubsub_topic.cloud-builds](https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/pubsub_topic) | data source |\n| [google_storage_bucket.bucket](https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/storage_bucket) | data source |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_bucket\"\u003e\u003c/a\u003e [bucket](#input\\_bucket) | Google Storage Bucket continaing the Cloud Build Notifier configuration | `string` | n/a | yes |\n| \u003ca name=\"input_create_bucket\"\u003e\u003c/a\u003e [create\\_bucket](#input\\_create\\_bucket) | Create the Bucket. Defaults to true. | `bool` | `true` | no |\n| \u003ca name=\"input_create_pubsub_topic\"\u003e\u003c/a\u003e [create\\_pubsub\\_topic](#input\\_create\\_pubsub\\_topic) | Create the Pub/Sub Topic. Defaults to true. | `bool` | `true` | no |\n| \u003ca name=\"input_filter\"\u003e\u003c/a\u003e [filter](#input\\_filter) | CEL filter that captures the Cloud Build messages to send to the Cloud Build Notifiers. | `string` | `\"build.status in [Build.Status.SUCCESS, Build.Status.FAILURE, Build.Status.TIMEOUT]\"` | no |\n| \u003ca name=\"input_project_id\"\u003e\u003c/a\u003e [project\\_id](#input\\_project\\_id) | Google Cloud Project | `string` | n/a | yes |\n| \u003ca name=\"input_pubsub_topic\"\u003e\u003c/a\u003e [pubsub\\_topic](#input\\_pubsub\\_topic) | Google Cloud Pub/Sub Topic that will receive Cloud Build notifications. | `string` | `\"cloud-builds\"` | no |\n| \u003ca name=\"input_region\"\u003e\u003c/a\u003e [region](#input\\_region) | Google Cloud Region | `string` | `\"us-central1\"` | no |\n| \u003ca name=\"input_service_account\"\u003e\u003c/a\u003e [service\\_account](#input\\_service\\_account) | Email address of the Service Account used to invoke the Cloud Run Service | `string` | n/a | yes |\n| \u003ca name=\"input_service_name\"\u003e\u003c/a\u003e [service\\_name](#input\\_service\\_name) | Name of the Cloud Run Service to deploy | `string` | `\"cloud-build-slack-notifier\"` | no |\n| \u003ca name=\"input_slack_config_yaml\"\u003e\u003c/a\u003e [slack\\_config\\_yaml](#input\\_slack\\_config\\_yaml) | YAML string representing the Slack Notifier configuration. | `any` | `null` | no |\n| \u003ca name=\"input_slack_notifier_config_path\"\u003e\u003c/a\u003e [slack\\_notifier\\_config\\_path](#input\\_slack\\_notifier\\_config\\_path) | Path to the Slack Notifier config file in the Google Storage Bucket | `string` | `\"slack-notifications.yaml\"` | no |\n| \u003ca name=\"input_slack_notifier_image\"\u003e\u003c/a\u003e [slack\\_notifier\\_image](#input\\_slack\\_notifier\\_image) | Container Image contining the Cloud Build Notifier for Slack | `string` | `\"us-east1-docker.pkg.dev/gcb-release/cloud-build-notifiers/slack:latest\"` | no |\n| \u003ca name=\"input_slack_notifier_template_path\"\u003e\u003c/a\u003e [slack\\_notifier\\_template\\_path](#input\\_slack\\_notifier\\_template\\_path) | Path to the Slack Notifier template file in the Google Storage Bucket | `string` | `\"slack-template.json\"` | no |\n| \u003ca name=\"input_slack_template_json\"\u003e\u003c/a\u003e [slack\\_template\\_json](#input\\_slack\\_template\\_json) | JSON string representing the Slack Notifier template. | `any` | `null` | no |\n| \u003ca name=\"input_slack_webhook_project\"\u003e\u003c/a\u003e [slack\\_webhook\\_project](#input\\_slack\\_webhook\\_project) | Google Cloud Project containing the Slack Webhook | `string` | n/a | yes |\n| \u003ca name=\"input_slack_webhook_secret_name\"\u003e\u003c/a\u003e [slack\\_webhook\\_secret\\_name](#input\\_slack\\_webhook\\_secret\\_name) | Google Cloud Secret containing the Slack Webhook | `string` | `\"slack-cloudbuild-webhook\"` | no |\n| \u003ca name=\"input_slack_webhook_secret_version\"\u003e\u003c/a\u003e [slack\\_webhook\\_secret\\_version](#input\\_slack\\_webhook\\_secret\\_version) | Google Cloud Secret Version containing the Slack Webhook | `string` | `\"latest\"` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_bucket\"\u003e\u003c/a\u003e [bucket](#output\\_bucket) | Bucket used by this module |\n| \u003ca name=\"output_pubsub_subscription\"\u003e\u003c/a\u003e [pubsub\\_subscription](#output\\_pubsub\\_subscription) | Pub/Sub Subscription created by this module |\n| \u003ca name=\"output_pubsub_topic\"\u003e\u003c/a\u003e [pubsub\\_topic](#output\\_pubsub\\_topic) | Pub/Sub Topic used by this module |\n| \u003ca name=\"output_service\"\u003e\u003c/a\u003e [service](#output\\_service) | Cloud Run Service created by this module |\n| \u003ca name=\"output_slack_notifier_config\"\u003e\u003c/a\u003e [slack\\_notifier\\_config](#output\\_slack\\_notifier\\_config) | Content of the Slack Notifier Config (YAML) |\n| \u003ca name=\"output_slack_notifier_template\"\u003e\u003c/a\u003e [slack\\_notifier\\_template](#output\\_slack\\_notifier\\_template) | Content of the Slack Notifier Template (JSON) |\n\u003c!-- END_TF_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faltissimo-hq%2Fterraform-google-cloudbuild-notifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faltissimo-hq%2Fterraform-google-cloudbuild-notifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faltissimo-hq%2Fterraform-google-cloudbuild-notifier/lists"}