Skip to content

Commit

Permalink
feat: Add az-asb-queue tf module
Browse files Browse the repository at this point in the history
  • Loading branch information
using-system committed Mar 17, 2024
1 parent 4c02cce commit da8257c
Show file tree
Hide file tree
Showing 7 changed files with 149 additions and 0 deletions.
Binary file added terraform/modules/az-asb-queue/README.md
Binary file not shown.
2 changes: 2 additions & 0 deletions terraform/modules/az-asb-queue/checkov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
skip-path:
- tests
15 changes: 15 additions & 0 deletions terraform/modules/az-asb-queue/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
resource "azurerm_servicebus_queue" "asb" {
name = var.name
namespace_id = var.namespace_id

lock_duration = var.lock_duration
default_message_ttl = var.default_message_ttl
requires_session = var.requires_session
enable_partitioning = var.enable_partitioning
requires_duplicate_detection = var.requires_duplicate_detection
duplicate_detection_history_time_window = var.duplicate_detection_history_time_window

forward_to = var.forward_to
forward_dead_lettered_messages_to = var.forward_dead_lettered_messages_to

}
4 changes: 4 additions & 0 deletions terraform/modules/az-asb-queue/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
output "id" {
description = "The ServiceBus Queue ID."
value = azurerm_servicebus_queue.asb.id
}
53 changes: 53 additions & 0 deletions terraform/modules/az-asb-queue/tests/queue.tftest.hcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
provider "azurerm" {
features {
}
}

run "setup" {
module {
source = "./tests/setup"
}
}

run "plan" {

command = plan

variables {
name = "azasbstandardqueue"
namespace_id = run.setup.namespace_id
default_message_ttl = "PT1M"
}

assert {
condition = azurerm_servicebus_queue.asb.name == var.name
error_message = "azurerm_servicebus_queue name must be set"
}

assert {
condition = azurerm_servicebus_queue.asb.namespace_id == var.namespace_id
error_message = "azurerm_servicebus_queue namespace_id must be set"
}

assert {
condition = azurerm_servicebus_queue.asb.default_message_ttl == var.default_message_ttl
error_message = "azurerm_servicebus_queue default_message_ttl must be set"
}

}

run "apply" {

command = apply

variables {
name = "azasbstandardqueue"
namespace_id = run.setup.namespace_id
default_message_ttl = "PT1M"
}

assert {
condition = output.id != "" && output.id != null
error_message = "output id is empty"
}
}
18 changes: 18 additions & 0 deletions terraform/modules/az-asb-queue/tests/setup/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
data "azurerm_resource_group" "test" {
name = "tf-test-rg"
}

resource "azurerm_servicebus_namespace" "test" {
name = "system-az-asb-queue"
location = data.azurerm_resource_group.test.location
resource_group_name = data.azurerm_resource_group.test.name
sku = "Standard"

tags = {
environment = "Test"
}
}

output "namespace_id" {
value = azurerm_servicebus_namespace.test.id
}
57 changes: 57 additions & 0 deletions terraform/modules/az-asb-queue/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
variable "name" {
description = "The name of the Service Bus Queue"
type = string
}

variable "namespace_id" {
description = "The ID of the Service Bus Namespace"
type = string
}

variable "lock_duration" {
description = "The lock duration for messages in the Service Bus Queue"
type = string
default = "PT1M"
}

variable "default_message_ttl" {
description = "The TTL for messages in the Service Bus Queue"
type = string
default = "PT5M"
}

variable "requires_session" {
description = "Does the Service Bus Queue require a session"
type = bool
default = false
}

variable "enable_partitioning" {
description = "Is partitioning enabled for the Service Bus Queue"
type = bool
default = false
}

variable "requires_duplicate_detection" {
description = "Does the Service Bus Queue require duplicate detection"
type = bool
default = false
}

variable "duplicate_detection_history_time_window" {
description = "The time window for duplicate detection"
type = string
default = "PT10M"
}

variable "forward_to" {
description = "The name of the Service Bus Queue to forward messages to"
type = string
default = null
}

variable "forward_dead_lettered_messages_to" {
description = "The name of the Service Bus Queue to forward dead lettered messages to"
type = string
default = null
}

0 comments on commit da8257c

Please sign in to comment.