zivildienst/infrastructure/modules/ingress/load_balancers.tf

77 lines
2.0 KiB
HCL

resource "hcloud_load_balancer" "guidelines" {
name = "guidelines-${data.terraform_remote_state.environment.outputs.environment_name}"
load_balancer_type = "lb11"
location = data.terraform_remote_state.environment.outputs.dc_default_id
labels = {
environment = data.terraform_remote_state.environment.outputs.environment_name
service = "guidelines"
}
}
resource "hcloud_load_balancer_target" "guidelines" {
type = "label_selector"
load_balancer_id = hcloud_load_balancer.guidelines.id
label_selector = "lb=guidelines-${data.terraform_remote_state.environment.outputs.environment_name}"
}
resource "hcloud_load_balancer_network" "guidelines_primary" {
load_balancer_id = hcloud_load_balancer.guidelines.id
network_id = data.terraform_remote_state.environment.outputs.network_primary_id
ip = "10.0.1.11"
}
resource "hcloud_load_balancer_service" "guidelines-http-to-https-with-termination" {
load_balancer_id = hcloud_load_balancer.guidelines.id
protocol = "http"
listen_port = 443
destination_port = 80
http {
sticky_sessions = false
#certificates = []
#redirect_http = true
}
// TODO: Add health check
}
resource "hcloud_load_balancer_service" "guidelines-kibana-https-with-termination" {
load_balancer_id = hcloud_load_balancer.guidelines.id
protocol = "http"
listen_port = 8443
destination_port = 5601
http {
sticky_sessions = false
#certificates = []
#redirect_http = true
}
// TODO: Add health check
}
resource "hcloud_load_balancer_service" "guidelines-deploymentagent-https-with-termination" {
load_balancer_id = hcloud_load_balancer.guidelines.id
protocol = "http"
listen_port = 9443
destination_port = 5000
http {
sticky_sessions = false
#certificates = []
#redirect_http = true
}
health_check {
protocol = "http"
port = 5000
interval = 15
timeout = 10
http {
path = "/status"
status_codes = [ 401 ]
tls = false
}
}
// TODO: Add health check
}