From 2799f1147597c4a12e71d2c41318fa5396c17b97 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 1 Aug 2024 06:58:30 +0200 Subject: [PATCH] Add support for LB in upcloud private zone (#11260) --- contrib/terraform/upcloud/cluster-settings.tfvars | 8 +++++++- contrib/terraform/upcloud/main.tf | 6 ++++-- .../terraform/upcloud/modules/kubernetes-cluster/main.tf | 2 +- .../upcloud/modules/kubernetes-cluster/variables.tf | 8 ++++++++ contrib/terraform/upcloud/variables.tf | 9 +++++++++ 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/contrib/terraform/upcloud/cluster-settings.tfvars b/contrib/terraform/upcloud/cluster-settings.tfvars index eae1551e2..7e1296fd3 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 30986667d..78fc0786f 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 54743a9e7..91c8b9ec7 100644 --- a/contrib/terraform/upcloud/modules/kubernetes-cluster/main.tf +++ b/contrib/terraform/upcloud/modules/kubernetes-cluster/main.tf @@ -515,7 +515,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 networks { name = "Private-Net" type = "private" diff --git a/contrib/terraform/upcloud/modules/kubernetes-cluster/variables.tf b/contrib/terraform/upcloud/modules/kubernetes-cluster/variables.tf index 530409f09..4c41cc08f 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 58c626ab9..0ea81b99a 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" }