From 318fb42b8ecb46148e994d28b1affcf074c1902d Mon Sep 17 00:00:00 2001 From: Steve Brasier Date: Thu, 29 May 2025 12:53:55 +0000 Subject: [PATCH 1/2] allow specifying root volume type --- .../skeleton/{{cookiecutter.environment}}/tofu/compute.tf | 1 + .../skeleton/{{cookiecutter.environment}}/tofu/control.tf | 1 + .../skeleton/{{cookiecutter.environment}}/tofu/login.tf | 1 + .../{{cookiecutter.environment}}/tofu/node_group/nodes.tf | 2 ++ .../tofu/node_group/variables.tf | 5 +++++ .../skeleton/{{cookiecutter.environment}}/tofu/variables.tf | 6 ++++++ 6 files changed, 16 insertions(+) diff --git a/environments/skeleton/{{cookiecutter.environment}}/tofu/compute.tf b/environments/skeleton/{{cookiecutter.environment}}/tofu/compute.tf index 22e8c7247..24082957d 100644 --- a/environments/skeleton/{{cookiecutter.environment}}/tofu/compute.tf +++ b/environments/skeleton/{{cookiecutter.environment}}/tofu/compute.tf @@ -18,6 +18,7 @@ module "compute" { vnic_types = lookup(each.value, "vnic_types", var.vnic_types) volume_backed_instances = lookup(each.value, "volume_backed_instances", var.volume_backed_instances) root_volume_size = lookup(each.value, "root_volume_size", var.root_volume_size) + root_volume_type = lookup(each.value, "root_volume_type", var.root_volume_type) gateway_ip = lookup(each.value, "gateway_ip", var.gateway_ip) nodename_template = lookup(each.value, "nodename_template", var.cluster_nodename_template) diff --git a/environments/skeleton/{{cookiecutter.environment}}/tofu/control.tf b/environments/skeleton/{{cookiecutter.environment}}/tofu/control.tf index b2dee7a30..412a0176c 100644 --- a/environments/skeleton/{{cookiecutter.environment}}/tofu/control.tf +++ b/environments/skeleton/{{cookiecutter.environment}}/tofu/control.tf @@ -48,6 +48,7 @@ resource "openstack_compute_instance_v2" "control" { source_type = "image" destination_type = var.volume_backed_instances ? "volume" : "local" volume_size = var.volume_backed_instances ? var.root_volume_size : null + volume_type = var.volume_backed_instances ? var.root_volume_type : null boot_index = 0 delete_on_termination = true } diff --git a/environments/skeleton/{{cookiecutter.environment}}/tofu/login.tf b/environments/skeleton/{{cookiecutter.environment}}/tofu/login.tf index 59035ba80..27b8f276e 100644 --- a/environments/skeleton/{{cookiecutter.environment}}/tofu/login.tf +++ b/environments/skeleton/{{cookiecutter.environment}}/tofu/login.tf @@ -18,6 +18,7 @@ module "login" { vnic_types = lookup(each.value, "vnic_types", var.vnic_types) volume_backed_instances = lookup(each.value, "volume_backed_instances", var.volume_backed_instances) root_volume_size = lookup(each.value, "root_volume_size", var.root_volume_size) + root_volume_type = lookup(each.value, "root_volume_type", var.root_volume_type) gateway_ip = lookup(each.value, "gateway_ip", var.gateway_ip) nodename_template = lookup(each.value, "nodename_template", var.cluster_nodename_template) diff --git a/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/nodes.tf b/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/nodes.tf index 8c9716e58..cf79e6a52 100644 --- a/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/nodes.tf +++ b/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/nodes.tf @@ -82,6 +82,7 @@ resource "openstack_compute_instance_v2" "compute_fixed_image" { source_type = "image" destination_type = "volume" volume_size = var.root_volume_size + volume_type = var.root_volume_type boot_index = 0 delete_on_termination = true } @@ -136,6 +137,7 @@ resource "openstack_compute_instance_v2" "compute" { source_type = "image" destination_type = "volume" volume_size = var.root_volume_size + volume_type = var.root_volume_type boot_index = 0 delete_on_termination = true } diff --git a/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/variables.tf b/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/variables.tf index 212af343a..416e4c258 100644 --- a/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/variables.tf +++ b/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/variables.tf @@ -49,6 +49,11 @@ variable "root_volume_size" { default = 40 } +variable "root_volume_type" { + type = string + default = null +} + variable "extra_volumes" { description = <<-EOF Mapping defining additional volumes to create and attach. diff --git a/environments/skeleton/{{cookiecutter.environment}}/tofu/variables.tf b/environments/skeleton/{{cookiecutter.environment}}/tofu/variables.tf index 94db3e04a..19268eafd 100644 --- a/environments/skeleton/{{cookiecutter.environment}}/tofu/variables.tf +++ b/environments/skeleton/{{cookiecutter.environment}}/tofu/variables.tf @@ -228,6 +228,12 @@ variable "root_volume_size" { default = 40 } +variable "root_volume_type" { + description = "Type of root volume, if using volume backed instances. Default gives default volume type" + type = string + default = null +} + variable "gateway_ip" { description = "Address to add default route via" type = string From a0744afa481a1a18fec4fb20a9ded2e9ff969d64 Mon Sep 17 00:00:00 2001 From: Steve Brasier <33413598+sjpb@users.noreply.github.com> Date: Thu, 29 May 2025 14:20:39 +0100 Subject: [PATCH 2/2] Update environments/skeleton/{{cookiecutter.environment}}/tofu/variables.tf Co-authored-by: Matt Anson --- .../skeleton/{{cookiecutter.environment}}/tofu/variables.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environments/skeleton/{{cookiecutter.environment}}/tofu/variables.tf b/environments/skeleton/{{cookiecutter.environment}}/tofu/variables.tf index 19268eafd..e6a1f3e03 100644 --- a/environments/skeleton/{{cookiecutter.environment}}/tofu/variables.tf +++ b/environments/skeleton/{{cookiecutter.environment}}/tofu/variables.tf @@ -229,7 +229,7 @@ variable "root_volume_size" { } variable "root_volume_type" { - description = "Type of root volume, if using volume backed instances. Default gives default volume type" + description = "Type of root volume, if using volume backed instances. If unset, the target cloud default volume type is used." type = string default = null }