Skip to content

Commit 404ea65

Browse files
committed
refactor nodename templating for DRY
1 parent 6a8fdfa commit 404ea65

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

environments/skeleton/{{cookiecutter.environment}}/tofu/control.tf

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
locals {
22
control_volumes = concat([openstack_blockstorage_volume_v3.state], var.home_volume_size > 0 ? [openstack_blockstorage_volume_v3.home][0] : [])
3+
nodename = templatestring(
4+
var.cluster_nodename_template,
5+
{
6+
node="control",
7+
cluster_name=var.cluster_name,
8+
cluster_domain_suffix=var.cluster_domain_suffix
9+
}
10+
)
311
}
412

513
resource "openstack_networking_port_v2" "control" {
@@ -24,7 +32,7 @@ resource "openstack_networking_port_v2" "control" {
2432

2533
resource "openstack_compute_instance_v2" "control" {
2634

27-
name = split(".", templatestring(var.cluster_nodename_template, {node="control", cluster_name=var.cluster_name,cluster_domain_suffix=var.cluster_domain_suffix}))[0]
35+
name = split(".", local.nodename)[0]
2836
image_id = var.cluster_image_id
2937
flavor_name = var.control_node_flavor
3038
key_pair = var.key_pair
@@ -65,7 +73,7 @@ resource "openstack_compute_instance_v2" "control" {
6573

6674
user_data = <<-EOF
6775
#cloud-config
68-
fqdn: ${templatestring(var.cluster_nodename_template, {node="control", cluster_name=var.cluster_name,cluster_domain_suffix=var.cluster_domain_suffix})}
76+
fqdn: ${local.nodename}
6977
7078
bootcmd:
7179
%{for volume in local.control_volumes}

environments/skeleton/{{cookiecutter.environment}}/tofu/node_group/nodes.tf

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,18 @@ locals {
1212

1313
# Workaround for lifecycle meta-argument only taking static values
1414
compute_instances = var.ignore_image_changes ? openstack_compute_instance_v2.compute_fixed_image : openstack_compute_instance_v2.compute
15+
16+
# Define nodenames here to avoid repetition
17+
nodenames = {
18+
for n in var.nodes: n => templatestring(
19+
var.nodename_template,
20+
{
21+
node=n,
22+
cluster_name=var.cluster_name,
23+
cluster_domain_suffix=var.cluster_domain_suffix
24+
}
25+
)
26+
}
1527
}
1628

1729
resource "openstack_blockstorage_volume_v3" "compute" {
@@ -57,7 +69,7 @@ resource "openstack_compute_instance_v2" "compute_fixed_image" {
5769

5870
for_each = var.ignore_image_changes ? toset(var.nodes) : []
5971

60-
name = split(".", templatestring(var.nodename_template, {node=each.key, cluster_name=var.cluster_name,cluster_domain_suffix=var.cluster_domain_suffix}))[0]
72+
name = split(".", local.nodenames[each.key])[0]
6173
image_id = var.image_id
6274
flavor_name = var.flavor
6375
key_pair = var.key_pair
@@ -94,7 +106,7 @@ resource "openstack_compute_instance_v2" "compute_fixed_image" {
94106

95107
user_data = <<-EOF
96108
#cloud-config
97-
fqdn: ${templatestring(var.nodename_template, {node=each.key, cluster_name=var.cluster_name,cluster_domain_suffix=var.cluster_domain_suffix})}
109+
fqdn: ${local.nodenames[each.key]}
98110
EOF
99111

100112
availability_zone = var.match_ironic_node ? "${var.availability_zone}::${var.baremetal_nodes[each.key]}" : null
@@ -111,7 +123,7 @@ resource "openstack_compute_instance_v2" "compute" {
111123

112124
for_each = var.ignore_image_changes ? [] : toset(var.nodes)
113125

114-
name = split(".", templatestring(var.nodename_template, {node=each.key, cluster_name=var.cluster_name,cluster_domain_suffix=var.cluster_domain_suffix}))[0]
126+
name = split(".", local.nodenames[each.key])[0]
115127
image_id = var.image_id
116128
flavor_name = var.flavor
117129
key_pair = var.key_pair
@@ -148,7 +160,7 @@ resource "openstack_compute_instance_v2" "compute" {
148160

149161
user_data = <<-EOF
150162
#cloud-config
151-
fqdn: ${templatestring(var.nodename_template, {node=each.key, cluster_name=var.cluster_name,cluster_domain_suffix=var.cluster_domain_suffix})}
163+
fqdn: ${local.nodenames[each.key]}
152164
EOF
153165

154166
availability_zone = var.match_ironic_node ? "${var.availability_zone}::${var.baremetal_nodes[each.key]}" : null

0 commit comments

Comments
 (0)