Upcloud: Added support for deprecated network field for loadbalancers

pull/11386/head
Fredrik Liv 2024-07-24 16:54:45 +02:00
parent e574cab44d
commit 57f65da9e4
No known key found for this signature in database
GPG Key ID: 207869278D64F059
5 changed files with 41 additions and 11 deletions

View File

@ -134,6 +134,7 @@ terraform destroy --var-file cluster-settings.tfvars \
* `end_address`: End of address range to allow * `end_address`: End of address range to allow
* `loadbalancer_enabled`: Enable managed load balancer * `loadbalancer_enabled`: Enable managed load balancer
* `loadbalancer_plan`: Plan to use for load balancer *(development|production-small)* * `loadbalancer_plan`: Plan to use for load balancer *(development|production-small)*
* `loadbalancer_legacy_network`: If the loadbalancer should use the deprecated network field instead of networks blocks. You probably want to have this set to false (default value)
* `loadbalancers`: Ports to load balance and which machines to forward to. Key of this object will be used as the name of the load balancer frontends/backends * `loadbalancers`: Ports to load balance and which machines to forward to. Key of this object will be used as the name of the load balancer frontends/backends
* `port`: Port to load balance. * `port`: Port to load balance.
* `target_port`: Port to the backend servers. * `target_port`: Port to the backend servers.

View File

@ -36,6 +36,7 @@ module "kubernetes" {
loadbalancer_enabled = var.loadbalancer_enabled loadbalancer_enabled = var.loadbalancer_enabled
loadbalancer_plan = var.loadbalancer_plan loadbalancer_plan = var.loadbalancer_plan
loadbalancer_outbound_proxy_protocol = var.loadbalancer_proxy_protocol ? "v2" : "" loadbalancer_outbound_proxy_protocol = var.loadbalancer_proxy_protocol ? "v2" : ""
loadbalancer_legacy_network = var.loadbalancer_legacy_network
loadbalancers = var.loadbalancers loadbalancers = var.loadbalancers
router_enable = var.router_enable router_enable = var.router_enable

View File

@ -549,16 +549,27 @@ resource "upcloud_loadbalancer" "lb" {
name = "${local.resource-prefix}lb" name = "${local.resource-prefix}lb"
plan = var.loadbalancer_plan plan = var.loadbalancer_plan
zone = var.private_cloud ? var.public_zone : var.zone zone = var.private_cloud ? var.public_zone : var.zone
networks { network = var.loadbalancer_legacy_network ? upcloud_network.private.id : null
name = "Private-Net"
type = "private" dynamic "networks" {
family = "IPv4" for_each = var.loadbalancer_legacy_network ? [] : [1]
network = upcloud_network.private.id
content {
name = "Private-Net"
type = "private"
family = "IPv4"
network = upcloud_network.private.id
}
} }
networks {
name = "Public-Net" dynamic "networks" {
type = "public" for_each = var.loadbalancer_legacy_network ? [] : [1]
family = "IPv4"
content {
name = "Public-Net"
type = "public"
family = "IPv4"
}
} }
lifecycle { lifecycle {
@ -584,8 +595,13 @@ resource "upcloud_loadbalancer_frontend" "lb_frontend" {
mode = "tcp" mode = "tcp"
port = each.value.port port = each.value.port
default_backend_name = upcloud_loadbalancer_backend.lb_backend[each.key].name default_backend_name = upcloud_loadbalancer_backend.lb_backend[each.key].name
networks {
name = "Public-Net" dynamic "networks" {
for_each = var.loadbalancer_legacy_network ? [] : [1]
content {
name = "Public-Net"
}
} }
dynamic "networks" { dynamic "networks" {

View File

@ -98,6 +98,11 @@ variable "loadbalancer_outbound_proxy_protocol" {
type = string type = string
} }
variable "loadbalancer_legacy_network" {
type = bool
default = false
}
variable "loadbalancers" { variable "loadbalancers" {
description = "Load balancers" description = "Load balancers"

View File

@ -136,6 +136,13 @@ variable "loadbalancer_proxy_protocol" {
default = false default = false
} }
variable "loadbalancer_legacy_network" {
description = "If the loadbalancer should use the deprecated network field instead of networks blocks. You probably want to have this set to false"
type = bool
default = false
}
variable "loadbalancers" { variable "loadbalancers" {
description = "Load balancers" description = "Load balancers"