@@ -28,6 +28,25 @@ resource "aws_lb_listener" "clickhouse_nlb_listener" {
2828 }
2929}
3030
31+ resource "aws_lb_listener" "clickhouse_http_nlb_listener" {
32+ count = var. enable_nlb ? 1 : 0
33+ load_balancer_arn = aws_lb. nlb [0 ]. arn
34+ port = var. enable_nlb_tls || var. enable_encryption ? var. https_port : var. http_port
35+ protocol = var. enable_nlb_tls ? " TLS" : " TCP"
36+
37+ # Use provided certificate ARN or generated certificate for HTTPS
38+ certificate_arn = var. enable_nlb_tls ? (
39+ var. use_generated_cert ? aws_acm_certificate. nlb [0 ]. arn : var. tls_certificate_arn
40+ ) : null
41+
42+ ssl_policy = var. enable_nlb_tls ? " ELBSecurityPolicy-TLS13-1-2-2021-06" : null
43+
44+ default_action {
45+ type = " forward"
46+ target_group_arn = aws_lb_target_group. clickhouse_http_nlb_target_group [0 ]. arn
47+ }
48+ }
49+
3150resource "aws_lb_target_group" "clickhouse_nlb_target_group" {
3251 count = var. enable_nlb ? 1 : 0
3352 name = " ${ var . cluster_name } -nlb-tg"
@@ -48,9 +67,36 @@ resource "aws_lb_target_group" "clickhouse_nlb_target_group" {
4867 }
4968}
5069
70+ resource "aws_lb_target_group" "clickhouse_http_nlb_target_group" {
71+ count = var. enable_nlb ? 1 : 0
72+ name = " ${ substr (var. cluster_name , 0 , 20 )} -ch-http-tg"
73+ port = var. enable_encryption ? var. https_port : var. http_port
74+ protocol = " TCP"
75+ vpc_id = module. vpc . vpc_id
76+ target_type = " ip"
77+
78+ health_check {
79+ enabled = true
80+ port = var. enable_encryption ? var. https_port : var. http_port
81+ protocol = " HTTP"
82+ path = " /ping"
83+ healthy_threshold = 3
84+ unhealthy_threshold = 3
85+ interval = 30
86+ timeout = 10
87+ }
88+ }
89+
5190resource "aws_lb_target_group_attachment" "clickhouse_nlb_target_group_attachment" {
5291 for_each = var. enable_nlb ? module. clickhouse_cluster : {}
5392 target_group_arn = aws_lb_target_group. clickhouse_nlb_target_group [0 ]. arn
5493 target_id = module. clickhouse_cluster [each . key ]. id
5594 port = var. enable_encryption ? var. tcp_port_secure : var. tcp_port
5695}
96+
97+ resource "aws_lb_target_group_attachment" "clickhouse_http_nlb_target_group_attachment" {
98+ for_each = var. enable_nlb ? module. clickhouse_cluster : {}
99+ target_group_arn = aws_lb_target_group. clickhouse_http_nlb_target_group [0 ]. arn
100+ target_id = module. clickhouse_cluster [each . key ]. id
101+ port = var. enable_encryption ? var. https_port : var. http_port
102+ }
0 commit comments