From b07eab5879185898e9423ac1ebdb609155824e0e Mon Sep 17 00:00:00 2001 From: Gerard Toonstra Date: Fri, 22 Aug 2025 12:33:39 +0200 Subject: [PATCH] fix: Options for new operator --- main.tf | 1 + modules/load_balancer/main.tf | 10 ++++++---- modules/load_balancer/outputs.tf | 4 ++-- modules/load_balancer/variables.tf | 6 ++++++ variables.tf | 6 ++++++ 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/main.tf b/main.tf index 8f6e253..c6d3975 100644 --- a/main.tf +++ b/main.tf @@ -59,6 +59,7 @@ module "load_balancer" { source = "./modules/load_balancer" deployment_name = var.deployment_name + deploy_lb = var.deploy_lb vpc_id = local.vpc_id vpc_cidr = local.vpc_cidr vpc_subnets = length(var.lb_subnets_override) > 0 ? var.lb_subnets_override : (var.lb_internal ? local.vpc_private_subnets : local.vpc_public_subnets) diff --git a/modules/load_balancer/main.tf b/modules/load_balancer/main.tf index c653c2f..a54b628 100644 --- a/modules/load_balancer/main.tf +++ b/modules/load_balancer/main.tf @@ -30,6 +30,8 @@ module "alb_app" { source = "terraform-aws-modules/alb/aws" version = "~> 8.7.0" + count = var.deploy_lb ? 1 : 0 + name = var.lb_name_override == "" ? "${var.deployment_name}-app" : var.lb_name_override load_balancer_type = "application" @@ -110,11 +112,11 @@ locals { } data "aws_network_interface" "lb_app" { - count = var.initial_apply_complete ? length(var.vpc_subnets) : 0 + count = var.initial_apply_complete && var.deploy_lb ? length(var.vpc_subnets) : 0 filter { name = "description" - values = ["ELB ${module.alb_app.lb_arn_suffix}"] + values = ["ELB ${module.alb_app[0].lb_arn_suffix}"] } filter { @@ -178,10 +180,10 @@ resource "aws_lb_listener" "nlb_front_end" { } resource "aws_lb_target_group_attachment" "attachment-alb-nlb-tg" { - count = var.lb_deploy_nlb ? 1 : 0 + count = var.lb_deploy_nlb && var.deploy_lb ? 1 : 0 target_group_arn = aws_lb_target_group.nlb_alb_target[0].arn - target_id = module.alb_app.lb_arn + target_id = module.alb_app[0].lb_arn port = local.nlb_port } diff --git a/modules/load_balancer/outputs.tf b/modules/load_balancer/outputs.tf index 930ecfb..610724d 100644 --- a/modules/load_balancer/outputs.tf +++ b/modules/load_balancer/outputs.tf @@ -1,5 +1,5 @@ output "target_group_arn" { - value = module.alb_app.target_group_arns[0] + value = var.deploy_lb ? module.alb_app[0].target_group_arns[0] : "not_deployed" } output "load_balancer_ips" { @@ -7,7 +7,7 @@ output "load_balancer_ips" { } output "load_balancer_dns" { - value = module.alb_app.lb_dns_name + value = var.deploy_lb ? module.alb_app[0].lb_dns_name : "not_deployed" } output "domain_name" { diff --git a/modules/load_balancer/variables.tf b/modules/load_balancer/variables.tf index decd505..29a2c0f 100644 --- a/modules/load_balancer/variables.tf +++ b/modules/load_balancer/variables.tf @@ -7,6 +7,12 @@ variable "deployment_name" { description = "Name of the current deployment." } +variable "deploy_lb" { + type = bool + default = true + description = "Allows a deploy without a load balancer" +} + variable "vpc_id" { type = string default = "" diff --git a/variables.tf b/variables.tf index 1960165..f8f79f7 100644 --- a/variables.tf +++ b/variables.tf @@ -405,6 +405,12 @@ variable "lb_vpces_details" { description = "Endpoint service to define for internal traffic over private link" } +variable "deploy_lb" { + type = bool + default = true + description = "Allows a deploy without a load balancer" +} + # ╺┳┓┏━┓╺┳╸┏━┓┏┓ ┏━┓┏━┓┏━╸ # ┃┃┣━┫ ┃ ┣━┫┣┻┓┣━┫┗━┓┣╸ # ╺┻┛╹ ╹ ╹ ╹ ╹┗━┛╹ ╹┗━┛┗━╸