terraform-contour-mirror/modules/rabbitmq/variables.tf

163 lines
4.1 KiB
HCL

variable "environment" {
description = "Target environment name."
type = string
}
variable "management_endpoint" {
description = "RabbitMQ Management API endpoint, for example http://rabbitmq.rabbitmq.svc.cluster.local:15672."
type = string
}
variable "management_username" {
description = "RabbitMQ admin username for Management API."
type = string
sensitive = true
}
variable "management_password" {
description = "RabbitMQ admin password for Management API."
type = string
sensitive = true
}
variable "amqp_host" {
description = "RabbitMQ AMQP host published to generated Kubernetes secrets."
type = string
default = "rabbitmq.rabbitmq.svc.cluster.local"
}
variable "amqp_port" {
description = "RabbitMQ AMQP port published to generated Kubernetes secrets."
type = number
default = 5672
}
variable "rabbitmq_policy" {
description = "Platform policy for RabbitMQ declarations."
type = object({
allow_create = optional(bool, true)
allow_delete = optional(bool, false)
})
default = {}
}
variable "vhosts" {
description = "RabbitMQ vhosts declared in infrastructure.yaml."
type = list(object({
name = string
description = optional(string)
tracing = optional(bool, false)
}))
default = []
}
variable "users" {
description = "RabbitMQ users declared in infrastructure.yaml."
type = list(object({
name = string
tags = optional(list(string), [])
password_length = optional(number)
password_special = optional(bool, false)
}))
default = []
}
variable "permissions" {
description = "RabbitMQ permissions declared in infrastructure.yaml."
type = list(object({
vhost = string
user = string
configure = optional(string, "")
write = optional(string, "")
read = optional(string, "")
}))
default = []
}
variable "topic_permissions" {
description = "RabbitMQ topic permissions declared in infrastructure.yaml."
type = list(object({
vhost = string
user = string
permissions = optional(list(object({
exchange = string
write = optional(string, "")
read = optional(string, "")
})), [])
}))
default = []
}
variable "exchanges" {
description = "RabbitMQ exchanges declared in infrastructure.yaml."
type = list(object({
name = string
vhost = string
type = optional(string, "topic")
durable = optional(bool, true)
auto_delete = optional(bool, false)
arguments = optional(any, {})
}))
default = []
}
variable "queues" {
description = "RabbitMQ queues declared in infrastructure.yaml."
type = list(object({
name = string
vhost = string
durable = optional(bool, true)
auto_delete = optional(bool, false)
arguments = optional(any, {})
}))
default = []
}
variable "bindings" {
description = "RabbitMQ bindings declared in infrastructure.yaml."
type = list(object({
vhost = string
source = string
destination = string
destination_type = string
routing_key = optional(string, "")
arguments = optional(any, {})
properties_key = optional(string)
}))
default = []
}
variable "policies" {
description = "RabbitMQ policies declared in infrastructure.yaml."
type = list(object({
name = string
vhost = string
pattern = string
apply_to = optional(string, "all")
priority = optional(number, 0)
definition = any
}))
default = []
}
variable "unmanaged_output_users" {
description = "Existing RabbitMQ users intentionally not managed, kept only for output compatibility."
type = list(string)
default = []
}
variable "unmanaged_output_permissions" {
description = "Existing RabbitMQ user/vhost pairs intentionally not managed, kept only for output compatibility."
type = list(object({
vhost = string
user = string
}))
default = []
}
variable "default_user_password_length" {
description = "Default generated RabbitMQ user password length."
type = number
default = 32
}