Browse Source
Upcloud: Added support for deprecated network field for loadbalancers
pull/11386/head
Fredrik Liv
4 months ago
No known key found for this signature in database
GPG Key ID: 207869278D64F059
5 changed files with
41 additions and
11 deletions
contrib/terraform/upcloud/README.md
contrib/terraform/upcloud/main.tf
contrib/terraform/upcloud/modules/kubernetes-cluster/main.tf
contrib/terraform/upcloud/modules/kubernetes-cluster/variables.tf
contrib/terraform/upcloud/variables.tf
@ -134,6 +134,7 @@ terraform destroy --var-file cluster-settings.tfvars \
* `end_address` : End of address range to allow
* `loadbalancer_enabled` : Enable managed load balancer
* `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
* `port` : Port to load balance.
* `target_port` : Port to the backend servers.
@ -36,6 +36,7 @@ module "kubernetes" {
loadbalancer_enabled = var . loadbalancer_enabled
loadbalancer_plan = var . loadbalancer_plan
loadbalancer_outbound_proxy_protocol = var . loadbalancer_proxy_protocol ? " v2 " : " "
loadbalancer_legacy_network = var . loadbalancer_legacy_network
loadbalancers = var . loadbalancers
router_enable = var . router_enable
@ -549,16 +549,27 @@ resource "upcloud_loadbalancer" "lb" {
name = " ${ local . resource - prefix } lb "
plan = var . loadbalancer_plan
zone = var . private_cloud ? var . public_zone : var . zone
networks {
name = " Private-Net "
type = " private "
family = " IPv4 "
network = upcloud_network . private . id
network = var . loadbalancer_legacy_network ? upcloud_network . private . id : null
dynamic " networks " {
for_each = var . loadbalancer_legacy_network ? [ ] : [ 1 ]
content {
name = " Private-Net "
type = " private "
family = " IPv4 "
network = upcloud_network . private . id
}
}
networks {
name = " Public-Net "
type = " public "
family = " IPv4 "
dynamic " networks " {
for_each = var . loadbalancer_legacy_network ? [ ] : [ 1 ]
content {
name = " Public-Net "
type = " public "
family = " IPv4 "
}
}
lifecycle {
@ -584,8 +595,13 @@ resource "upcloud_loadbalancer_frontend" "lb_frontend" {
mode = " tcp "
port = each . value . port
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 " {
@ -98,6 +98,11 @@ variable "loadbalancer_outbound_proxy_protocol" {
type = string
}
variable " loadbalancer_legacy_network " {
type = bool
default = false
}
variable " loadbalancers " {
description = " Load balancers "
@ -136,6 +136,13 @@ variable "loadbalancer_proxy_protocol" {
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 " {
description = " Load balancers "