From cc6db018af073e0a27ae2a2704dff2d7b01bdb75 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ing=2E=20Kl=C3=A1ra=20Moravcov=C3=A1?=
 <klara.moravcova@cesnet.cz>
Date: Thu, 25 Apr 2024 10:37:41 +0200
Subject: [PATCH] Use image name.

---
 README.md    |  8 +++++++-
 instances.tf | 12 ++++++++----
 variables.tf |  4 ++--
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index cbbd111..d187e3c 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,8 @@
+## HOW TO WORK WITH THIS REPO
+
+pre-commit
+terraform-docs
+
 <!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK -->
 ## Requirements
 
@@ -49,6 +54,7 @@ No modules.
 | [openstack_networking_secgroup_rule_v2.ssh4](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_rule_v2) | resource |
 | [openstack_networking_secgroup_v2.secgroup_default](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_v2) | resource |
 | [openstack_networking_subnet_v2.subnet_default](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_subnet_v2) | resource |
+| [openstack_images_image_v2.nodes_image](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/data-sources/images_image_v2) | data source |
 | [openstack_networking_network_v2.external_network](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/data-sources/networking_network_v2) | data source |
 | [openstack_networking_router_v2.router_available](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/data-sources/networking_router_v2) | data source |
 
@@ -64,7 +70,6 @@ No modules.
 | <a name="input_control_nodes_flavor"></a> [control\_nodes\_flavor](#input\_control\_nodes\_flavor) | n/a | `string` | `"hpc.8core-32ram-ssd-ephem"` | no |
 | <a name="input_control_nodes_name"></a> [control\_nodes\_name](#input\_control\_nodes\_name) | Name of the nodes. Must match [a-zA-Z0-9-]+ regexp. | `string` | `"control"` | no |
 | <a name="input_control_nodes_volume_size"></a> [control\_nodes\_volume\_size](#input\_control\_nodes\_volume\_size) | The size of the volume to create (in gigabytes) for root filesystem. | `string` | `"30"` | no |
-| <a name="input_image"></a> [image](#input\_image) | Image used for both control and worker servers | `string` | `"88f8e72a-bbf0-4ccc-8ff2-4f3188cd0d18"` | no |
 | <a name="input_infra_name"></a> [infra\_name](#input\_infra\_name) | Infrastructure (profile) name. Used as a name prefix. Must match [a-zA-Z0-9-]+ regexp. | `string` | `"general-tf-demo"` | no |
 | <a name="input_internal_network_cidr"></a> [internal\_network\_cidr](#input\_internal\_network\_cidr) | Internal network address, use CIDR notation | `string` | `"10.10.10.0/24"` | no |
 | <a name="input_internal_network_creation_enable"></a> [internal\_network\_creation\_enable](#input\_internal\_network\_creation\_enable) | Create dedicated internal network. true/false ~ create new / reuse existing personal network | `bool` | `true` | no |
@@ -74,6 +79,7 @@ No modules.
 | <a name="input_kube_fip"></a> [kube\_fip](#input\_kube\_fip) | Allocate floating IP for kubespray | `bool` | `false` | no |
 | <a name="input_kube_fip_create_port"></a> [kube\_fip\_create\_port](#input\_kube\_fip\_create\_port) | True if you want floating IP address for kube-vip to access kube-api | `bool` | `false` | no |
 | <a name="input_kube_vip"></a> [kube\_vip](#input\_kube\_vip) | Internal IP for kube-vip to access kube-api | `string` | `"10.0.0.5"` | no |
+| <a name="input_nodes_image"></a> [nodes\_image](#input\_nodes\_image) | Image used for both control and worker servers | `string` | `"ubuntu-jammy-x86_64"` | no |
 | <a name="input_public_external_network"></a> [public\_external\_network](#input\_public\_external\_network) | Cloud public external network pool | `string` | `"public-cesnet-195-113-167-GROUP"` | no |
 | <a name="input_router_creation_enable"></a> [router\_creation\_enable](#input\_router\_creation\_enable) | Create dedicated router instance. true/false ~ create new / reuse existing personal router | `bool` | `true` | no |
 | <a name="input_ssh_public_key"></a> [ssh\_public\_key](#input\_ssh\_public\_key) | n/a | `string` | `"~/.ssh/id_rsa.pub"` | no |
diff --git a/instances.tf b/instances.tf
index 7f87829..c7ef192 100644
--- a/instances.tf
+++ b/instances.tf
@@ -1,3 +1,7 @@
+data "openstack_images_image_v2" "nodes_image" {
+  name = var.nodes_image
+}
+
 ####################
 # Define bastion   #
 ####################
@@ -23,7 +27,7 @@ resource "openstack_compute_instance_v2" "bastion" {
 resource "openstack_compute_instance_v2" "control_nodes" {
   count           = var.control_nodes_count
   name            = "${var.infra_name}-${var.control_nodes_name}-${count.index + 1}"
-  image_id        = var.image
+  image_name      = var.nodes_image
   flavor_name     = var.control_nodes_flavor
   key_pair        = openstack_compute_keypair_v2.pubkey.name
   security_groups = [openstack_networking_secgroup_v2.secgroup_default.name]
@@ -35,7 +39,7 @@ resource "openstack_compute_instance_v2" "control_nodes" {
   }
 
   block_device {
-    uuid                  = var.image
+    uuid                  = data.openstack_images_image_v2.nodes_image.id
     source_type           = "image"
     volume_size           = var.control_nodes_volume_size
     destination_type      = "local"
@@ -60,7 +64,7 @@ resource "openstack_compute_instance_v2" "worker_nodes" {
   for_each = { for inst in local.all_instances : inst.name => inst }
 
   name            = each.value.name
-  image_id        = var.image
+  image_name      = var.nodes_image
   flavor_name     = each.value.flavor
   key_pair        = openstack_compute_keypair_v2.pubkey.name
   security_groups = [openstack_networking_secgroup_v2.secgroup_default.name]
@@ -72,7 +76,7 @@ resource "openstack_compute_instance_v2" "worker_nodes" {
   }
 
   block_device {
-    uuid                  = var.image
+    uuid                  = data.openstack_images_image_v2.nodes_image.id
     source_type           = "image"
     volume_size           = each.value.volume_size
     destination_type      = "local"
diff --git a/variables.tf b/variables.tf
index 10360c7..423748f 100644
--- a/variables.tf
+++ b/variables.tf
@@ -96,9 +96,9 @@ variable "worker_nodes" {
   }))
 }
 
-variable "image" {
+variable "nodes_image" {
   description = "Image used for both control and worker servers"
-  default     = "88f8e72a-bbf0-4ccc-8ff2-4f3188cd0d18"
+  default     = "ubuntu-jammy-x86_64"
 }
 
 variable "ssh_user_name" {
-- 
GitLab