From 119c5f66823893c15c4612b90bd2ec6fa923c029 Mon Sep 17 00:00:00 2001 From: Sai Kiran Date: Sun, 2 Jun 2019 12:28:40 +0200 Subject: [PATCH 1/3] made changes to use log-export module to support multiple log levels as requested in https://github.com/terraform-google-modules/terraform-google-event-function/issues/13 --- modules/event-project-log-entry/main.tf | 30 +++++++++----------- modules/event-project-log-entry/outputs.tf | 2 +- modules/event-project-log-entry/variables.tf | 6 ++++ 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/modules/event-project-log-entry/main.tf b/modules/event-project-log-entry/main.tf index 57df7b6..0cd097d 100644 --- a/modules/event-project-log-entry/main.tf +++ b/modules/event-project-log-entry/main.tf @@ -14,23 +14,21 @@ * limitations under the License. */ -resource "google_pubsub_topic" "main" { - name = "${var.name}" - labels = "${var.labels}" - project = "${var.project_id}" -} - -resource "google_logging_project_sink" "main" { - name = "${var.name}" - destination = "pubsub.googleapis.com/${google_pubsub_topic.main.id}" +module "log_export" { + source = "terraform-google-modules/log-export/google" + destination_uri = "${module.destination.destination_uri}" filter = "${var.filter}" - project = "${var.project_id}" - unique_writer_identity = true + log_sink_name = "${var.name}" + parent_resource_id = "${var.project_id}" + parent_resource_type = "${var.parent_resource_type}" + unique_writer_identity = "true" } -resource "google_pubsub_topic_iam_member" "main" { - topic = "${google_pubsub_topic.main.name}" - project = "${google_logging_project_sink.main.project}" - member = "${google_logging_project_sink.main.writer_identity}" - role = "roles/pubsub.publisher" + +module "destination" { + source = "terraform-google-modules/log-export/google//modules/pubsub" + project_id = "${var.project_id}" + topic_name = "${var.name}" + log_sink_writer_identity = "${module.log_export.writer_identity}" + create_subscriber = "true" } diff --git a/modules/event-project-log-entry/outputs.tf b/modules/event-project-log-entry/outputs.tf index 966a284..7f1c77a 100644 --- a/modules/event-project-log-entry/outputs.tf +++ b/modules/event-project-log-entry/outputs.tf @@ -16,5 +16,5 @@ output "function_event_trigger" { description = "The information used to trigger the function when a log entry is exported to the topic." - value = "${map("event_type", "google.pubsub.topic.publish", "resource", "${google_pubsub_topic.main.name}")}" + value = "${map("event_type", "google.pubsub.topic.publish", "resource", "${module.destination.resource_name}")}" } diff --git a/modules/event-project-log-entry/variables.tf b/modules/event-project-log-entry/variables.tf index b1c5cf2..9a0c3e4 100644 --- a/modules/event-project-log-entry/variables.tf +++ b/modules/event-project-log-entry/variables.tf @@ -34,3 +34,9 @@ variable "project_id" { type = "string" description = "The ID of the project to which resources will be applied." } + +variable "parent_resource_type" { + type = "string" + default = "project" + description = "The GCP resource in which you create the log sink. The value must not be computed, and must be one of the following: 'project', 'folder', 'billing_account', or 'organization'." +} \ No newline at end of file From ac32571e26a585be0dc1c580b667383e1ba3f64a Mon Sep 17 00:00:00 2001 From: Sai Kiran Date: Sun, 2 Jun 2019 23:38:48 +0200 Subject: [PATCH 2/3] removed destination module, because the pubsub topic created by the logexport module does not currently support labels --- modules/event-project-log-entry/main.tf | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/modules/event-project-log-entry/main.tf b/modules/event-project-log-entry/main.tf index 0cd097d..c33cdb9 100644 --- a/modules/event-project-log-entry/main.tf +++ b/modules/event-project-log-entry/main.tf @@ -13,10 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +locals { + destination_uri = "pubsub.googleapis.com/projects/${var.project_id}/topics/${local.topic_name}" + topic_name = "${element(concat(google_pubsub_topic.main.*.name, list("")), 0)}" +} module "log_export" { source = "terraform-google-modules/log-export/google" - destination_uri = "${module.destination.destination_uri}" + destination_uri = "${local.destination_uri}" filter = "${var.filter}" log_sink_name = "${var.name}" parent_resource_id = "${var.project_id}" @@ -24,11 +28,16 @@ module "log_export" { unique_writer_identity = "true" } +resource "google_pubsub_topic" "main" { + name = "${var.name}" + labels = "${var.labels}" + project = "${var.project_id}" +} -module "destination" { - source = "terraform-google-modules/log-export/google//modules/pubsub" - project_id = "${var.project_id}" - topic_name = "${var.name}" - log_sink_writer_identity = "${module.log_export.writer_identity}" - create_subscriber = "true" +resource "google_pubsub_topic_iam_member" "main" { + topic = "${google_pubsub_topic.main.name}" + project = "${var.project_id}" + member = "${module.log_export.writer_identity}" + role = "roles/pubsub.publisher" } + From 4abdf02e5440025f0d0c6860fed091f1ba1ff755 Mon Sep 17 00:00:00 2001 From: Sai Kiran Date: Mon, 3 Jun 2019 17:47:10 +0200 Subject: [PATCH 3/3] removed unused reference --- modules/event-project-log-entry/outputs.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/event-project-log-entry/outputs.tf b/modules/event-project-log-entry/outputs.tf index 7f1c77a..966a284 100644 --- a/modules/event-project-log-entry/outputs.tf +++ b/modules/event-project-log-entry/outputs.tf @@ -16,5 +16,5 @@ output "function_event_trigger" { description = "The information used to trigger the function when a log entry is exported to the topic." - value = "${map("event_type", "google.pubsub.topic.publish", "resource", "${module.destination.resource_name}")}" + value = "${map("event_type", "google.pubsub.topic.publish", "resource", "${google_pubsub_topic.main.name}")}" }