mirror of
https://github.com/2martens/terraform.git
synced 2026-10-17 19:26:51 +02:00
change: Add services for load balancer and move configuration into separate file
This commit is contained in:
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,32 +5,3 @@ data "hcloud_placement_group" "default" {
|
|||||||
locals {
|
locals {
|
||||||
docker_network_domain = format("%s.%s.%s", "docker", var.stage_name, var.domain)
|
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
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user