From 344d25ba87016dc3f0062f69823f8ec2c96141e3 Mon Sep 17 00:00:00 2001 From: Pierre Riteau Date: Fri, 21 Mar 2025 17:39:02 +0100 Subject: [PATCH] Allow use of Ironic node name as instance name This can be used in bare metal deployments where we may want the instance hostname to be exactly the same as the node name. --- .../skeleton/{{cookiecutter.environment}}/tofu/compute.tf | 1 + .../{{cookiecutter.environment}}/tofu/node_group/nodes.tf | 4 ++-- .../tofu/node_group/variables.tf | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/environments/skeleton/{{cookiecutter.environment}}/tofu/compute.tf b/environments/skeleton/{{cookiecutter.environment}}/tofu/compute.tf index 7ab27d84f..210f92288 100644 --- a/environments/skeleton/{{cookiecutter.environment}}/tofu/compute.tf +++ b/environments/skeleton/{{cookiecutter.environment}}/tofu/compute.tf @@ -27,6 +27,7 @@ module "compute" { ignore_image_changes = lookup(each.value, "ignore_image_changes", false) match_ironic_node = lookup(each.value, "match_ironic_node", false) availability_zone = lookup(each.value, "availability_zone", "nova") + use_ironic_node_name = lookup(each.value, "use_ironic_node_name", false) # computed # not using openstack_compute_instance_v2.control.access_ip_v4 to avoid diff --git a/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/nodes.tf b/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/nodes.tf index f08ec1ca3..7c1ab98b6 100644 --- a/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/nodes.tf +++ b/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/nodes.tf @@ -57,7 +57,7 @@ resource "openstack_compute_instance_v2" "compute_fixed_image" { for_each = var.ignore_image_changes ? toset(var.nodes) : [] - name = "${var.cluster_name}-${each.key}" + name = var.use_ironic_node_name ? "${each.key}" : "${var.cluster_name}-${each.key}" image_id = var.image_id flavor_name = var.flavor key_pair = var.key_pair @@ -111,7 +111,7 @@ resource "openstack_compute_instance_v2" "compute" { for_each = var.ignore_image_changes ? [] : toset(var.nodes) - name = "${var.cluster_name}-${each.key}" + name = var.use_ironic_node_name ? "${each.key}" : "${var.cluster_name}-${each.key}" image_id = var.image_id flavor_name = var.flavor key_pair = var.key_pair diff --git a/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/variables.tf b/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/variables.tf index 896a28a48..3cbf318cb 100644 --- a/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/variables.tf +++ b/environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/variables.tf @@ -112,6 +112,12 @@ variable "match_ironic_node" { default = false } +variable "use_ironic_node_name" { + type = bool + description = "Whether to name instances the same as the matching Ironic node (no cluster name)" + default = false +} + variable "availability_zone" { type = string description = "Name of availability zone - ignored unless match_ironic_node is true"