child:
variable "names" {
type = list(string)
default = []
}
variable "vhost" {
type = string
default = ""
}
variable "salt" {
description = "salt"
default = ""
}
resource "rabbitmq_queue" "add_queues" {
for_each = toset(var.names)
name = replace(each.value, "$${salt}", var.salt)
vhost = var.vhost
settings {
durable = true
auto_delete = false
}
}
parent:
module "rabbitmq_queues_for_vhost" {
source = "./rabbitmq_module_for_vhost"
for_each = var.queues
vhost = each.value["vhost"]
names = each.value["names"]
salt = var.salt
}
variable "bindings" {
type = map(object({
vhost = string,
exchange = string,
queue = string,
routing_key = string
}))
default = {}
}
resource "rabbitmq_binding" "add_bindings" {
for_each = var.bindings
destination_type = "queue"
vhost = each.value["vhost"]
source = each.value["exchange"]
destination = replace(each.value["queue"], "$${salt}", var.salt)
routing_key = each.value["routing_key"]
depends_on = [module.rabbitmq_queues_for_vhost.add_queues]
}