Skip to content

Commit ac55b7a

Browse files
committed
only list baremetal nodes once
1 parent 5a7c09e commit ac55b7a

File tree

4 files changed

+8
-11
lines changed

4 files changed

+8
-11
lines changed

environments/skeleton/{{cookiecutter.environment}}/terraform/compute.tf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@ module "compute" {
1818
k3s_token = var.k3s_token
1919
k3s_server = [for n in openstack_compute_instance_v2.control["control"].network: n.fixed_ip_v4 if n.access_network][0]
2020
security_group_ids = [for o in data.openstack_networking_secgroup_v2.nonlogin: o.id]
21+
baremetal_nodes = data.external.baremetal_nodes.result
2122
}

environments/skeleton/{{cookiecutter.environment}}/terraform/compute/nodes.tf

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
1-
data "external" "nodes" {
2-
program = ["bash", "-c", <<-EOT
3-
openstack baremetal node list --limit 0 -f json 2>/dev/null | \
4-
jq -r 'try map( { (.Name|tostring): .UUID } ) | add catch {}' || echo '{}'
5-
EOT
6-
]
7-
}
8-
91
resource "openstack_networking_port_v2" "compute" {
102

113
for_each = toset(var.nodes)
@@ -58,7 +50,7 @@ resource "openstack_compute_instance_v2" "compute" {
5850
k3s_server = var.k3s_server
5951
}
6052

61-
availability_zone = var.match_ironic_node ? "${var.availability_zone}::${data.external.nodes.result[each.key]}" : var.availability_zone
53+
availability_zone = var.match_ironic_node ? "${var.availability_zone}::${var.baremetal_nodes[each.key]}" : var.availability_zone
6254

6355
user_data = <<-EOF
6456
#cloud-config

environments/skeleton/{{cookiecutter.environment}}/terraform/compute/variables.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,7 @@ variable availability_zone {
8989
type = string
9090
default = "nova"
9191
}
92+
93+
variable "baremetal_nodes" {
94+
type = map(string)
95+
}

environments/skeleton/{{cookiecutter.environment}}/terraform/nodes.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ locals {
1212
}
1313
}
1414

15-
data "external" "nodes" {
15+
data "external" "baremetal_nodes" {
1616
# returns an empty map if cannot list baremetal nodes
1717
program = ["bash", "-c", <<-EOT
1818
openstack baremetal node list --limit 0 -f json 2>/dev/null | \
@@ -148,7 +148,7 @@ resource "openstack_compute_instance_v2" "login" {
148148
k3s_server = [for n in openstack_compute_instance_v2.control["control"].network: n.fixed_ip_v4 if n.access_network][0]
149149
}
150150

151-
availability_zone = each.value.match_ironic_node ? "${each.value.availability_zone}::${data.external.nodes.result[each.key]}" : each.value.availability_zone
151+
availability_zone = each.value.match_ironic_node ? "${each.value.availability_zone}::${data.external.baremetal_nodes.result[each.key]}" : each.value.availability_zone
152152

153153
user_data = <<-EOF
154154
#cloud-config

0 commit comments

Comments
 (0)