From 3ce10eb00f4831ac3a94c86d31e929640e0996f0 Mon Sep 17 00:00:00 2001 From: Malte Poll <1780588+malt3@users.noreply.github.com> Date: Wed, 28 Feb 2024 13:29:28 +0100 Subject: [PATCH] terraform: allow STACKIT / OpenStack instance type to be UUID or name --- internal/config/config.go | 2 +- .../openstack/modules/instance_group/main.tf | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index e7417d237..611ccc39f 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -913,7 +913,7 @@ func (c *Config) WithOpenStackProviderDefaults(openStackProvider string) *Config c.Provider.OpenStack.YawolFlavorID = "3b11b27e-6c73-470d-b595-1d85b95a8cdf" c.Provider.OpenStack.DeployCSIDriver = toPtr(true) for groupName, group := range c.NodeGroups { - group.InstanceType = "2715eabe-3ffc-4c36-b02a-efa8c141a96a" + group.InstanceType = "m1a.4cd" group.StateDiskType = "storage_premium_perf6" c.NodeGroups[groupName] = group } diff --git a/terraform/infrastructure/openstack/modules/instance_group/main.tf b/terraform/infrastructure/openstack/modules/instance_group/main.tf index fe175066a..ec9f7f72e 100644 --- a/terraform/infrastructure/openstack/modules/instance_group/main.tf +++ b/terraform/infrastructure/openstack/modules/instance_group/main.tf @@ -8,9 +8,10 @@ terraform { } locals { - tags = distinct(sort(concat(var.tags, ["constellation-role-${var.role}"], ["constellation-node-group-${var.node_group_name}"]))) - group_uid = random_id.uid.hex - name = "${var.base_name}-${var.role}-${local.group_uid}" + tags = distinct(sort(concat(var.tags, ["constellation-role-${var.role}"], ["constellation-node-group-${var.node_group_name}"]))) + group_uid = random_id.uid.hex + name = "${var.base_name}-${var.role}-${local.group_uid}" + flavor_id_is_uuid = length(var.flavor_id) == 36 && length(regexall("^[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}$", var.flavor_id)) == 1 } resource "random_id" "uid" { @@ -36,11 +37,16 @@ resource "openstack_networking_port_v2" "port" { # policies = ["soft-anti-affinity"] # } +data "openstack_compute_flavor_v2" "flavor" { + flavor_id = local.flavor_id_is_uuid ? var.flavor_id : null + name = local.flavor_id_is_uuid ? null : var.flavor_id +} + resource "openstack_compute_instance_v2" "instance_group_member" { name = "${local.name}-${count.index}" count = var.initial_count image_id = var.image_id - flavor_id = var.flavor_id + flavor_id = data.openstack_compute_flavor_v2.flavor.id tags = local.tags # TODO(malt3): get this API enabled in the test environment # scheduler_hints {