diff --git a/main.tf b/main.tf index 3192bab..e999b29 100644 --- a/main.tf +++ b/main.tf @@ -145,6 +145,15 @@ resource "aws_msk_cluster" "default" { storage_info { ebs_storage_info { volume_size = var.broker_volume_size + + dynamic "provisioned_throughput" { + for_each = var.broker_ebs_provisioned_throughput_enabled ? [1] : [] + + content { + enabled = var.broker_ebs_provisioned_throughput_state + volume_throughput = var.broker_ebs_provisioned_throughput_value + } + } } } diff --git a/variables.tf b/variables.tf index 60cc51f..c70a3af 100644 --- a/variables.tf +++ b/variables.tf @@ -31,6 +31,31 @@ variable "broker_volume_size" { nullable = false } +variable "broker_ebs_provisioned_throughput_enabled" { + type = bool + default = false + description = "Enable broker node EBS provisioned throughput for broker type kafka.m5.4xlarge or larger" + nullable = false +} + +variable "broker_ebs_provisioned_throughput_state" { + type = bool + default = false + description = "Enable or disable provisioned throughput of the EBS volumes for the data drive on kafka broker nodes" + nullable = false +} + +variable "broker_ebs_provisioned_throughput_value" { + type = number + default = 250 + description = "Provisioned throughput value of the EBS volumes for the data drive on kafka broker nodes in MiB per second" + validation { + condition = var.broker_ebs_provisioned_throughput_value >= 250 + error_message = "broker_ebs_provisioned_throughput_value must be minimum 250." + } + nullable = false +} + variable "subnet_ids" { type = list(string) description = "Subnet IDs for Client Broker"