change: Add services for load balancer and move configuration into separate file

This commit is contained in:
2025-08-03 15:16:08 +02:00
parent 18fafac60f
commit c76e7a2c78
2 changed files with 58 additions and 29 deletions
@@ -0,0 +1,58 @@
resource "hcloud_load_balancer" "docker" {
count = var.number_nodes > 1 ? 1 : 0
load_balancer_type = var.loadbalancer_type
name = format("%s_%s", "docker", var.stage_name)
location = var.locations[count.index].name
network_zone = var.locations[count.index].network_zone
algorithm {
type = "round_robin"
}
}
resource "hcloud_load_balancer_network" "private" {
count = var.number_nodes > 1 ? 1 : 0
load_balancer_id = hcloud_load_balancer.docker[count.index].id
subnet_id = var.server_subnet_id
ip = var.loadbalancer_ip
}
resource "hcloud_load_balancer_target" "nodes" {
count = var.number_nodes > 1 ? var.number_nodes : 0
type = "server"
load_balancer_id = hcloud_load_balancer.docker[0].id
server_id = hcloud_server.node[count.index].id
use_private_ip = true
}
resource "hcloud_load_balancer_service" "http" {
count = var.number_nodes > 1 ? 1 : 0
load_balancer_id = hcloud_load_balancer.docker[count.index].id
protocol = "http"
listen_port = 80
destination_port = 80
http {
sticky_sessions = true
cookie_name = "selected_node_for_session"
cookie_ttl = 3600
}
}
resource "hcloud_load_balancer_service" "https" {
count = var.number_nodes > 1 ? 1 : 0
load_balancer_id = hcloud_load_balancer.docker[count.index].id
protocol = "https"
listen_port = 443
destination_port = 443
http {
sticky_sessions = true
cookie_name = "selected_node_for_session"
cookie_ttl = 3600
}
}
-29
View File
@@ -5,32 +5,3 @@ data "hcloud_placement_group" "default" {
locals {
docker_network_domain = format("%s.%s.%s", "docker", var.stage_name, var.domain)
}
resource "hcloud_load_balancer" "docker" {
count = var.number_nodes > 1 ? 1 : 0
load_balancer_type = var.loadbalancer_type
name = format("%s_%s", "docker", var.stage_name)
location = var.locations[count.index].name
network_zone = var.locations[count.index].network_zone
algorithm {
type = "round_robin"
}
}
resource "hcloud_load_balancer_network" "private" {
count = var.number_nodes > 1 ? 1 : 0
load_balancer_id = hcloud_load_balancer.docker[count.index].id
subnet_id = var.server_subnet_id
ip = var.loadbalancer_ip
}
resource "hcloud_load_balancer_target" "nodes" {
count = var.number_nodes > 1 ? var.number_nodes : 0
type = "server"
load_balancer_id = hcloud_load_balancer.docker[0].id
server_id = hcloud_server.node[count.index].id
use_private_ip = true
}