From de49ec9861f6b88a6223156aff9188148f933092 Mon Sep 17 00:00:00 2001 From: Olamide <65307752+OlamideOl1@users.noreply.github.com> Date: Thu, 12 Dec 2024 06:02:47 +0100 Subject: [PATCH] Dynamically set availability zone count using instance count and subnet count (#16) --- opensearch.tf | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/opensearch.tf b/opensearch.tf index 42e9056..9c0bf64 100644 --- a/opensearch.tf +++ b/opensearch.tf @@ -1,8 +1,9 @@ data "aws_availability_zones" "available" {} locals { - region = data.aws_region.current.name - name = "es-${var.es_application_name}" + region = data.aws_region.current.name + name = "es-${var.es_application_name}" + ideal_subnet_count = var.es_instance_count > 2 ? min(length(module.network.private_subnet_ids), 3) : var.es_instance_count } resource "aws_iam_service_linked_role" "elasticsearch" { @@ -58,7 +59,7 @@ module "opensearch" { instance_type = coalesce(var.es_instance_type, var.es_dedicated_master_type) zone_awareness_config = { - availability_zone_count = length(module.network.private_subnet_ids) > 3 ? 3 : length(module.network.private_subnet_ids) + availability_zone_count = local.ideal_subnet_count } zone_awareness_enabled = true @@ -101,7 +102,8 @@ module "opensearch" { } vpc_options = { - subnet_ids = length(module.network.private_subnet_ids) > 3 ? slice(module.network.private_subnet_ids, 0, 3) : module.network.private_subnet_ids + subnet_ids = slice(module.network.private_subnet_ids, 0, min(length(module.network.private_subnet_ids), local.ideal_subnet_count)) + } # Security Group rule example