diff --git a/contrib/terraform/upcloud/cluster-settings.tfvars b/contrib/terraform/upcloud/cluster-settings.tfvars index 45a374900f7..120d15433a0 100644 --- a/contrib/terraform/upcloud/cluster-settings.tfvars +++ b/contrib/terraform/upcloud/cluster-settings.tfvars @@ -1,5 +1,11 @@ # See: https://developers.upcloud.com/1.3/5-zones/ -zone = "fi-hel1" +zone = "fi-hel1" +private_cloud = false + +# Only used if private_cloud = true, public zone equivalent +# For example use finnish public zone for finnish private zone +public_zone = "fi-hel2" + username = "ubuntu" # Prefix to use for all resources to separate them from other resources diff --git a/contrib/terraform/upcloud/main.tf b/contrib/terraform/upcloud/main.tf index 30986667dd5..78fc0786fb6 100644 --- a/contrib/terraform/upcloud/main.tf +++ b/contrib/terraform/upcloud/main.tf @@ -11,8 +11,10 @@ provider "upcloud" { module "kubernetes" { source = "./modules/kubernetes-cluster" - prefix = var.prefix - zone = var.zone + prefix = var.prefix + zone = var.zone + private_cloud = var.private_cloud + public_zone = var.public_zone template_name = var.template_name username = var.username diff --git a/contrib/terraform/upcloud/modules/kubernetes-cluster/main.tf b/contrib/terraform/upcloud/modules/kubernetes-cluster/main.tf index 2adeb44678f..5226c42294a 100644 --- a/contrib/terraform/upcloud/modules/kubernetes-cluster/main.tf +++ b/contrib/terraform/upcloud/modules/kubernetes-cluster/main.tf @@ -512,7 +512,7 @@ resource "upcloud_loadbalancer" "lb" { configured_status = "started" name = "${local.resource-prefix}lb" plan = var.loadbalancer_plan - zone = var.zone + zone = var.private_cloud ? var.public_zone : var.zone network = upcloud_network.private.id } diff --git a/contrib/terraform/upcloud/modules/kubernetes-cluster/variables.tf b/contrib/terraform/upcloud/modules/kubernetes-cluster/variables.tf index ad2cc70f020..a7aa8ad4d05 100644 --- a/contrib/terraform/upcloud/modules/kubernetes-cluster/variables.tf +++ b/contrib/terraform/upcloud/modules/kubernetes-cluster/variables.tf @@ -6,6 +6,14 @@ variable "zone" { type = string } +variable "private_cloud" { + type = bool +} + +variable "public_zone" { + type = string +} + variable "template_name" {} variable "username" {} diff --git a/contrib/terraform/upcloud/variables.tf b/contrib/terraform/upcloud/variables.tf index 9d8c90c1769..4baef23578e 100644 --- a/contrib/terraform/upcloud/variables.tf +++ b/contrib/terraform/upcloud/variables.tf @@ -9,6 +9,15 @@ variable "zone" { description = "The zone where to run the cluster" } +variable "private_cloud" { + description = "Whether the environment is in the private cloud region" + default = false +} + +variable "public_zone" { + description = "The public zone equivalent if the cluster is running in a private cloud zone" +} + variable "template_name" { description = "Block describing the preconfigured operating system" }