@@ -12,6 +12,18 @@ locals {
12
12
13
13
# Workaround for lifecycle meta-argument only taking static values
14
14
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
+ }
15
27
}
16
28
17
29
resource "openstack_blockstorage_volume_v3" "compute" {
@@ -57,7 +69,7 @@ resource "openstack_compute_instance_v2" "compute_fixed_image" {
57
69
58
70
for_each = var. ignore_image_changes ? toset (var. nodes ) : []
59
71
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 ]
61
73
image_id = var. image_id
62
74
flavor_name = var. flavor
63
75
key_pair = var. key_pair
@@ -94,7 +106,7 @@ resource "openstack_compute_instance_v2" "compute_fixed_image" {
94
106
95
107
user_data = <<- EOF
96
108
#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 ] }
98
110
EOF
99
111
100
112
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" {
111
123
112
124
for_each = var. ignore_image_changes ? [] : toset (var. nodes )
113
125
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 ]
115
127
image_id = var. image_id
116
128
flavor_name = var. flavor
117
129
key_pair = var. key_pair
@@ -148,7 +160,7 @@ resource "openstack_compute_instance_v2" "compute" {
148
160
149
161
user_data = <<- EOF
150
162
#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 ] }
152
164
EOF
153
165
154
166
availability_zone = var. match_ironic_node ? " ${ var . availability_zone } ::${ var . baremetal_nodes [each . key ]} " : null
0 commit comments