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