Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ module "pubsub" {

| Name | Description |
|------|-------------|
| env\_vars | Map of pull subscription IDs, keyed by project\_subscription name for environment variables. |
| id | The ID of the Pub/Sub topic |
| subscription\_names | The name list of Pub/Sub subscriptions |
| subscription\_paths | The path list of Pub/Sub subscriptions |
Expand Down
26 changes: 21 additions & 5 deletions metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,22 @@ spec:
source: github.com/GoogleCloudPlatform/terraform-google-cloud-run//modules/v2
version: ">= 0.13"
spec:
outputExpr: "{ \"name\": service_name, \"push_endpoint\": service_uri, \"oidc_service_account_email\": service_account_id.email }"
outputExpr: "{ \"name\": apphub_service_uri.service_id, \"push_endpoint\": service_uri, \"oidc_service_account_email\": service_account_id.email }"
- name: pull_subscriptions
description: The list of the pull subscriptions.
varType: "list(object({\r\n name = string,\r\n ack_deadline_seconds = optional(number),\r\n expiration_policy = optional(string),\r\n dead_letter_topic = optional(string),\r\n max_delivery_attempts = optional(number),\r\n retain_acked_messages = optional(bool),\r\n message_retention_duration = optional(string),\r\n maximum_backoff = optional(string),\r\n minimum_backoff = optional(string),\r\n filter = optional(string),\r\n enable_message_ordering = optional(bool),\r\n service_account = optional(string),\r\n enable_exactly_once_delivery = optional(bool),\r\n }))"
defaultValue: []
connections:
- source:
source: github.com/GoogleCloudPlatform/terraform-google-cloud-run//modules/v2
version: ">= 0.13"
spec:
outputExpr: "{ \"name\": service_name, \"service_account\": service_account_id.email }"
- source:
source: github.com/terraform-google-modules/terraform-google-service-accounts//modules/simple-sa
version: ">= 4.4"
spec:
outputExpr: "{ \"name\": account_details.id, \"service_account\": account_details.email }"
- name: bigquery_subscriptions
description: The list of the Bigquery push subscriptions.
varType: "list(object({\r\n name = string,\r\n table = string,\r\n use_topic_schema = optional(bool),\r\n use_table_schema = optional(bool),\r\n write_metadata = optional(bool),\r\n drop_unknown_fields = optional(bool),\r\n ack_deadline_seconds = optional(number),\r\n retain_acked_messages = optional(bool),\r\n message_retention_duration = optional(string),\r\n enable_message_ordering = optional(bool),\r\n expiration_policy = optional(string),\r\n filter = optional(string),\r\n dead_letter_topic = optional(string),\r\n max_delivery_attempts = optional(number),\r\n maximum_backoff = optional(string),\r\n minimum_backoff = optional(string)\r\n }))"
Expand Down Expand Up @@ -134,19 +145,24 @@ spec:
description: Schema for the topic.
varType: "object({\r\n name = string\r\n type = string\r\n definition = string\r\n encoding = string\r\n })"
outputs:
- name: env_vars
description: Map of pull subscription IDs, keyed by project_subscription name for environment variables.
type:
- map
- string
- name: id
description: The ID of the Pub/Sub topic
type: string
- name: subscription_names
description: The name list of Pub/Sub subscriptions
type:
- tuple
- - string
- list
- string
- name: subscription_paths
description: The path list of Pub/Sub subscriptions
type:
- tuple
- - string
- list
- string
- name: topic
description: The name of the Pub/Sub topic
type: string
Expand Down
9 changes: 9 additions & 0 deletions outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,12 @@ output "subscription_paths" {
description = "The path list of Pub/Sub subscriptions"
}

output "env_vars" {
value = merge(
{ for k, v in google_pubsub_subscription.pull_subscriptions : replace(upper("SUB_ID_${v.project}_${v.name}"), "-", "_") => v.id },
{ replace(upper("TOPIC_ID_${var.project_id}_${var.topic}"), "-", "_") : length(google_pubsub_topic.topic) > 0 ? google_pubsub_topic.topic[0].id : "" }
)

description = "Map of pull subscription IDs, keyed by project_subscription name for environment variables."
}