diff --git a/clouds/common/lib.sh.inc b/clouds/common/lib.sh.inc index 64611f7ba93b8421a2d17d9f6910aebf74452c4c..00a4bdc26eaf6b21cfd5bd6710de243804506a4f 100644 --- a/clouds/common/lib.sh.inc +++ b/clouds/common/lib.sh.inc @@ -8,7 +8,7 @@ function report_tools() { local commands=("openstack --version" "bash --version" "awk -W version" "ssh -V" "which ssh-keygen" "ncat --version" "grep --version" ) local err_cnt=0 - for i_cmd in "${commands[@]}"; do + for i_cmd in "${commands[@]}" "$@"; do echo "${i_cmd}:" ${i_cmd} |& head -1 | awk '{print " " $0}' [ "${PIPESTATUS[0]}" != "0" ] && let "err_cnt++" @@ -165,12 +165,19 @@ function log_section_keypress() { } function is_personal_project() { - local project_id="$(openstack application credential show ${OS_APPLICATION_CREDENTIAL_ID} -f value -c project_id)" - local user_id="$(openstack application credential show ${OS_APPLICATION_CREDENTIAL_ID} -f value -c user_id)" - local project_name="$(openstack project show "${project_id}" -fvalue -c name)" - local user_name="$(openstack user show "${user_id}" -fvalue -c name)" - echo "${project_name}" - test "${project_name}" == "${user_name}" + if [ -n "${OS_APPLICATION_CREDENTIAL_ID}" ]; then + local project_id="$(openstack application credential show ${OS_APPLICATION_CREDENTIAL_ID} -f value -c project_id)" + local user_id="$(openstack application credential show ${OS_APPLICATION_CREDENTIAL_ID} -f value -c user_id)" + local project_name="$(openstack project show "${project_id}" -fvalue -c name)" + local user_name="$(openstack user show "${user_id}" -fvalue -c name)" + echo "${project_name}" + [[ "${project_name}" == "${user_name}" && "${user_name}" =~ [a-fA-F0-9]+@[a-z.]+ ]] + elif [ -n "${OS_USERNAME}" -a -n "${OS_PROJECT_NAME}" ]; then + echo "${OS_PROJECT_NAME}" + [[ "${OS_PROJECT_NAME}" == "${OS_USERNAME}" && "${OS_USERNAME}" =~ [a-fA-F0-9]+@[a-z.]+ ]] + else + return 2 + fi } function myexit() { diff --git a/clouds/g2/ostrava/general/commandline/cmdline-demo.sh b/clouds/g2/ostrava/general/commandline/cmdline-demo.sh index bf665597be03aa1f186bc9c8706c1d8e2f574de0..d9ee9f4b0f2e08abdb9b226c39d6d7aadd3d0391 100755 --- a/clouds/g2/ostrava/general/commandline/cmdline-demo.sh +++ b/clouds/g2/ostrava/general/commandline/cmdline-demo.sh @@ -95,8 +95,8 @@ if [ "${project_type}" == "group" ]; then NETWORK_ID=$(openstack network show "${NETWORK_NAME}" -f value -c id) openstack subnet create "${SUBNET_NAME}" --network "${NETWORK_ID}" --subnet-range "${SUBNET_CIDR}" --dns-nameserver 8.8.4.4 --dns-nameserver 8.8.8.8 else - log_section_keypress "Re-use existing network (${NETWORK_NAME}) and subnet (${SUBNET_NAME})" NETWORK_ID=$(openstack network show "${NETWORK_NAME}" -f value -c id) + log_section_keypress "Re-use existing network (${NETWORK_NAME}) and subnet (${SUBNET_NAME})" fi # --------------------------------------------------------------------------- diff --git a/clouds/g2/ostrava/general/terraform/README.md b/clouds/g2/ostrava/general/terraform/README.md index 90ae2fa1eefdfee911d63524570f10cacb30028c..a69aac4e7c67d10a3e0b6aa1545256c60462f6ab 100644 --- a/clouds/g2/ostrava/general/terraform/README.md +++ b/clouds/g2/ostrava/general/terraform/README.md @@ -1,39 +1,56 @@ # Terraform demonstration -This Terraform module creates up to two kind of VMs: - - public facing small bastion VM - - private VM farm - -Cloud-init add following: - - Add ssh keys, disable SSH password auth - - Create partition and filesystemand mount extra data from extra volume +This Terraform module is able to demonstrate creation of two most used cloud infrastructure patterns: -## Infrastructure schema +## Two tier infrastructure: public bastion and private VM farm -### Two tier infrastructure: public bastion and private VM farm +Infrastructure consist of: + - public facing small bastion VM (sometimes called as jump VM) + - private VM farm  -### Single tier infrastructure: public VM farm +## Single tier infrastructure i.e. public facing VM farm + +Infrastructure consist of: + - public facing VM farm  -## Create Infrastructure + +## Cloud VM configuration during system boot using cloud-init +Terraform demonstrates [how to configure VM servers on creation with cloud-init](modules/common/nodes-cloudinit.txt): + - Add ssh keys, disable SSH password auth + - Create partition and filesystemand mount extra data from extra volume + +## Handling different project restrictions (quotas, shared networks, ...) + +e-INFRA.CZ OpenStack cloud distinguishes between two project types: personal and group +([more the topic](https://docs.e-infra.cz/compute/openstack/technical-reference/brno-site/get-access/#personal-project)). +Terraform demo code with additional variable file [`personal-projects.tfvars`](./personal-projects.tfvars) shows how to support both project types i.e. how to parametrize infrastructure definition with minimal code duplications. + +There is thin terraform wrapper [`terraform.sh`](./terraform.sh) abstracting the fact which project type you are on. It is not necessary to use the [`terraform.sh`](./terraform.sh) wrapper when you keep in mind that additional terraform variables file [`personal-projects.tfvars`](./personal-projects.tfvars) has to be passed at plan step when you are on personal project. + +## Using the terraform demo 1. Clone the repository. 1. Load you OpenStack application credentials to environment variables `source project_openrc.sh.inc` -1. Override any infrastructure variables in [main.tf](main.tf) file if needed. Full set of variables can be found in [modules/2tier_public_bastion_private_vm_farm/variables.tf](modules/2tier_public_bastion_private_vm_farm/variables.tf) or [modules/1tier-public-vm-farm/variables.tf](modules/1tier-public-vm-farm/variables.tf). -1. In the [terraform root directory](/clouds/g1/brno/general/terraform) run following commands to initiate and validate environment - * `terraform init` - * `terraform validate` +1. Override any infrastructure variables in [main.tf](main.tf) file if needed. Full set of variables can be found in [modules/common/variables.tf](modules/common/variables.tf). +1. In the [terraform root directory](/clouds/g2/ostrava/general/terraform) run following commands to initiate and validate environment + * `./terraform.sh validate-tools` + * `./terraform.sh detect-cloud` + * `./terraform.sh detect-project` + * `./terraform.sh init` + * `./terraform.sh validate` 1. In the [same directory](/clouds/g2/ostrava/general/terraform) run commands to deploy cloud infrastructure - * `terraform plan --out plan` - * `terraform apply plan` + * `./terraform.sh plan --out plan` + * `./terraform.sh apply plan` 1. Once you need to change the infrastructure, first modify the infrastructure declaration and repeat above steps to deploy changes. -1. Similarly for resource teardown, once you want to clean-up cloud resources issue `terraform destroy`. +1. Cloud resources can be deleted with `./terraform.sh destroy`. +> You may use terraform directly without the [`terraform.sh`](./terraform.sh) wrapper, but then keep in your mind that just for personal project type you should pass additional variable file [`personal-projects.tfvars`](./personal-projects.tfvars) at plan step (i.e. `terraform plan --out personal-project.plan --var-file=personal-projects.tfvars`) -Detailed terminal transcript can be found in [terminal-transcript.log](./terminal-transcript.log). +Detailed terminal transcripts show how to run terraform demo inside personal project ([with](./terraform-2tier_public_bastion_private_vm_farm-personal-project-wrapper.log) / [without the wrapper](./terraform-2tier_public_bastion_private_vm_farm-personal-project-no-wrapper.log)) as well as under group project([with](./terraform-2tier_public_bastion_private_vm_farm-group-project-wrapper.log) / [without the wrapper](./terraform-2tier_public_bastion_private_vm_farm-group-project-no-wrapper.log)). ## Access to the VM nodes diff --git a/clouds/g2/ostrava/general/terraform/main.tf b/clouds/g2/ostrava/general/terraform/main.tf index 6d7d02fb127a27b8ab7bfa0370890776f64d6744..08a4e6741d260b529be1621c3cff814fb528f79d 100644 --- a/clouds/g2/ostrava/general/terraform/main.tf +++ b/clouds/g2/ostrava/general/terraform/main.tf @@ -3,6 +3,8 @@ terraform { } module "toplevel" { + # infrastructure type: + # ------------------------------------------------------------------------- # two tier infrastructure (2tier_public_bastion_private_vm_farm module): # * single public facing tiny bastion VM # * <nodes_count> private HPC VM farm @@ -18,4 +20,14 @@ module "toplevel" { nodes_image = "ubuntu-jammy-x86_64" public_external_network = "external-ipv4-general-public" nodes_extra_volume_size = 0 # extra volume size in GB + + # OpenStack project type: + # ------------------------------------------------------------------------- + # root variables wired 1:1 to "toplevel" module to be able to toggle between + # group and personal project infrastructure + router_creation_enable = var.router_creation_enable + internal_network_creation_enable = var.internal_network_creation_enable + internal_network_name = var.internal_network_name + internal_subnet_creation_enable = var.internal_subnet_creation_enable + internal_subnet_name = var.internal_subnet_name } diff --git a/clouds/g2/ostrava/general/terraform/modules/1tier_public_vm_farm/variables.tf b/clouds/g2/ostrava/general/terraform/modules/1tier_public_vm_farm/variables.tf deleted file mode 100644 index 9cc600610c1a8b2696a7de7a5f0af64d722c8603..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/general/terraform/modules/1tier_public_vm_farm/variables.tf +++ /dev/null @@ -1,81 +0,0 @@ -variable "infra_name" { - description = "Infrastructure (profile) name. Used as a name prefix. Must match [a-zA-Z0-9-]+ regexp." - default = "general-tf-demo" -} - -variable "ssh_public_key" { - default = "~/.ssh/id_rsa.pub" -} - - -######################### -# master nodes settings # -######################### - -variable "nodes_count" { - default = 1 -} - -variable "nodes_name" { - description = "Name of the nodes. Must match [a-zA-Z0-9-]+ regexp." - default = "server" -} - -variable "bastion_name" { - description = "Name of the bastion VM. Must match [a-zA-Z0-9-]+ regexp." - default = "bastion-server" -} - -variable "bastion_flavor" { - default = "standard.small" -} - -variable "nodes_flavor" { - default = "standard.large" -} - - -variable "int_network" { - description = "Internal network address, use CIDR notation" - default = "10.10.10.0/24" -} - -variable "public_external_network" { - description = "Cloud public external network pool" - default = "public-cesnet-195-113-167-GROUP" -} - - -variable "bastion_image" { - description = "Bastion OS: Image name" - default = "ubuntu-jammy-x86_64" -} - -variable "nodes_image" { - description = "nodes OS: Image name" - default = "ubuntu-jammy-x86_64" -} - -variable "bastion_ssh_user_name" { - default = "ubuntu" -} - -variable "nodes_ssh_user_name" { - default = "ubuntu" -} - - -variable "nodes_volume_size" { - description = "The size of the volume to create (in gigabytes) for root filesystem. " - default = "10" -} - -variable "nodes_extra_volume_size" { - description = "The size of the volume to create (in gigabytes) for extra data. 0 to disable extra volume." - default = "10" -} - -variable "nodes_extra_volume_type" { - description = "The type of extra volume." - default = null -} diff --git a/clouds/g2/ostrava/general/terraform/modules/1tier_public_vm_farm/variables.tf b/clouds/g2/ostrava/general/terraform/modules/1tier_public_vm_farm/variables.tf new file mode 120000 index 0000000000000000000000000000000000000000..72202b3e76544e476d963b935ac4b724149c5504 --- /dev/null +++ b/clouds/g2/ostrava/general/terraform/modules/1tier_public_vm_farm/variables.tf @@ -0,0 +1 @@ +../common/variables.tf \ No newline at end of file diff --git a/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/bastion-instance.tf b/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/bastion-instance.tf index 4aad5371fd76a15e0567960432230daa9980482e..66920b6f84312fdfeee8f96f31d301f3d715f9a7 100644 --- a/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/bastion-instance.tf +++ b/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/bastion-instance.tf @@ -7,7 +7,7 @@ resource "openstack_compute_instance_v2" "bastion" { user_data = "#cloud-config\nhostname: ${var.infra_name}-${var.bastion_name}.local\n${file("${path.module}/bastion-cloudinit.txt")}" network { - uuid = openstack_networking_network_v2.network_default.id + uuid = var.internal_network_creation_enable ? openstack_networking_network_v2.network_default[0].id : data.openstack_networking_network_v2.internal_shared_personal_network[0].id port = openstack_networking_port_v2.bastion_port.id } } diff --git a/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/bastion-networks.tf b/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/bastion-networks.tf index c7962e107fc13a10755d1ef22494f94e05fbf205..bca943b25f13fee8e6ed4e15e66491eb9f9d2989 100644 --- a/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/bastion-networks.tf +++ b/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/bastion-networks.tf @@ -11,10 +11,10 @@ resource "openstack_compute_floatingip_associate_v2" "bastion_fip_associate" { # Ports resource "openstack_networking_port_v2" "bastion_port" { name = "${var.infra_name}-${var.bastion_name}-port" - network_id = openstack_networking_network_v2.network_default.id + network_id = var.internal_network_creation_enable ? openstack_networking_network_v2.network_default[0].id : data.openstack_networking_network_v2.internal_shared_personal_network[0].id admin_state_up = "true" security_group_ids = [openstack_networking_secgroup_v2.secgroup_default.id] fixed_ip { - subnet_id = openstack_networking_subnet_v2.subnet_default.id + subnet_id = var.internal_subnet_creation_enable ? openstack_networking_subnet_v2.subnet_default[0].id : data.openstack_networking_subnet_v2.internal_shared_personal_subnet[0].id } } diff --git a/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/variables.tf b/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/variables.tf deleted file mode 100644 index b30728900968eb59ffc42a9f94b26dca5158ea77..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/variables.tf +++ /dev/null @@ -1,81 +0,0 @@ -variable "infra_name" { - description = "Infrastructure (profile) name. Used as a name prefix. Must match [a-zA-Z0-9-]+ regexp." - default = "general-tf-demo" -} - -variable "ssh_public_key" { - default = "~/.ssh/id_rsa.pub" -} - - -######################### -# master nodes settings # -######################### - -variable "nodes_count" { - default = 1 -} - -variable "nodes_name" { - description = "Name of the nodes. Must match [a-zA-Z0-9-]+ regexp." - default = "server" -} - -variable "bastion_name" { - description = "Name of the bastion VM. Must match [a-zA-Z0-9-]+ regexp." - default = "bastion-server" -} - -variable "bastion_flavor" { - default = "standard.small" -} - -variable "nodes_flavor" { - default = "standard.large" -} - - -variable "int_network" { - description = "Internal network address, use CIDR notation" - default = "10.10.10.0/24" -} - -variable "public_external_network" { - description = "Cloud public external network pool" - default = "public-cesnet-195-113-167-GROUP" -} - - -variable "bastion_image" { - description = "Bastion OS: Image name" - default = "ubuntu-jammy-x86_64" -} - -variable "nodes_image" { - description = "nodes OS: Image name" - default = "ubuntu-jammy-x86_64" -} - -variable "bastion_ssh_user_name" { - default = "ubuntu" -} - -variable "nodes_ssh_user_name" { - default = "ubuntu" -} - - -variable "nodes_volume_size" { - description = "The size of the volume to create (in gigabytes) for root filesystem. " - default = "10" -} - -variable "nodes_extra_volume_size" { - description = "The size of the volume to create (in gigabytes) for extra data." - default = "10" -} - -variable "nodes_extra_volume_type" { - description = "The type of extra volume." - default = null -} diff --git a/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/variables.tf b/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/variables.tf new file mode 120000 index 0000000000000000000000000000000000000000..72202b3e76544e476d963b935ac4b724149c5504 --- /dev/null +++ b/clouds/g2/ostrava/general/terraform/modules/2tier_public_bastion_private_vm_farm/variables.tf @@ -0,0 +1 @@ +../common/variables.tf \ No newline at end of file diff --git a/clouds/g2/ostrava/general/terraform/modules/common/instances.tf b/clouds/g2/ostrava/general/terraform/modules/common/instances.tf index 82aa9fe251287cd0f36b4f56944e4f8768d51c55..1e93d03e7298014f15629bb29ffc33c79acf7f0d 100644 --- a/clouds/g2/ostrava/general/terraform/modules/common/instances.tf +++ b/clouds/g2/ostrava/general/terraform/modules/common/instances.tf @@ -16,7 +16,7 @@ resource "openstack_compute_instance_v2" "nodes" { user_data = "#cloud-config\nhostname: ${var.infra_name}-${var.nodes_name}-${count.index+1}.local\n${file("${path.module}/nodes-cloudinit.txt")}" network { - uuid = openstack_networking_network_v2.network_default.id + uuid = var.internal_network_creation_enable ? openstack_networking_network_v2.network_default[0].id : data.openstack_networking_network_v2.internal_shared_personal_network[0].id port = element(openstack_networking_port_v2.nodes_ports.*.id, count.index) } diff --git a/clouds/g2/ostrava/general/terraform/modules/common/networks.tf b/clouds/g2/ostrava/general/terraform/modules/common/networks.tf index 641864a441b6ac575051de8b6cc92338cec3aaaf..0ea32e1ea70ad712c299da7e5d7f16d54b6836f3 100644 --- a/clouds/g2/ostrava/general/terraform/modules/common/networks.tf +++ b/clouds/g2/ostrava/general/terraform/modules/common/networks.tf @@ -1,12 +1,14 @@ resource "openstack_networking_network_v2" "network_default" { + count = var.internal_network_creation_enable ? 1 : 0 name = "${var.infra_name}_network" admin_state_up = "true" } resource "openstack_networking_subnet_v2" "subnet_default" { + count = var.internal_subnet_creation_enable ? 1 : 0 name = "${var.infra_name}_subnet" - network_id = openstack_networking_network_v2.network_default.id - cidr = var.int_network + network_id = openstack_networking_network_v2.network_default[0].id + cidr = var.internal_network_cidr ip_version = 4 dns_nameservers = ["1.1.1.1", "8.8.8.8"] } @@ -15,24 +17,36 @@ data "openstack_networking_network_v2" "external_network" { name = var.public_external_network } +data "openstack_networking_network_v2" "internal_shared_personal_network" { + count = var.internal_network_creation_enable == false ? 1 : 0 + name = var.internal_network_name +} + +data "openstack_networking_subnet_v2" "internal_shared_personal_subnet" { + count = var.internal_subnet_creation_enable == false ? 1 : 0 + name = var.internal_subnet_name +} + resource "openstack_networking_router_v2" "router_default" { + count = var.router_creation_enable ? 1 : 0 name = "${var.infra_name}_infra-test" admin_state_up = "true" external_network_id = data.openstack_networking_network_v2.external_network.id } resource "openstack_networking_router_interface_v2" "router_default_interface" { - router_id = openstack_networking_router_v2.router_default.id - subnet_id = openstack_networking_subnet_v2.subnet_default.id + count = var.router_creation_enable ? 1 : 0 + router_id = openstack_networking_router_v2.router_default[0].id + subnet_id = openstack_networking_subnet_v2.subnet_default[0].id } resource "openstack_networking_port_v2" "nodes_ports" { count = var.nodes_count name = "${var.infra_name}_${var.nodes_name}_port_${count.index+1}" - network_id = openstack_networking_network_v2.network_default.id + network_id = var.internal_network_creation_enable ? openstack_networking_network_v2.network_default[0].id : data.openstack_networking_network_v2.internal_shared_personal_network[0].id admin_state_up = "true" security_group_ids = [openstack_networking_secgroup_v2.secgroup_default.id] fixed_ip { - subnet_id = openstack_networking_subnet_v2.subnet_default.id + subnet_id = var.internal_subnet_creation_enable ? openstack_networking_subnet_v2.subnet_default[0].id : data.openstack_networking_subnet_v2.internal_shared_personal_subnet[0].id } } diff --git a/clouds/g2/ostrava/general/terraform/modules/common/providers.tf b/clouds/g2/ostrava/general/terraform/modules/common/providers.tf index 411e68d2f037e32cb6c42beed58affa79a819964..94a7048da394e7d883ea417cee3aded73cf12520 100644 --- a/clouds/g2/ostrava/general/terraform/modules/common/providers.tf +++ b/clouds/g2/ostrava/general/terraform/modules/common/providers.tf @@ -2,7 +2,7 @@ terraform { required_providers { openstack = { source = "terraform-provider-openstack/openstack" - version = "~> 1.51.1" + version = "~> 1.52.1" } } } diff --git a/clouds/g2/ostrava/general/terraform/modules/common/secgroup_rules.tf b/clouds/g2/ostrava/general/terraform/modules/common/secgroup_rules.tf index 1d4da810fc06110b5486ed101d67ad46671e40d7..a722fd76af025a896a93d8e3c665c4d5de9ad547 100644 --- a/clouds/g2/ostrava/general/terraform/modules/common/secgroup_rules.tf +++ b/clouds/g2/ostrava/general/terraform/modules/common/secgroup_rules.tf @@ -17,7 +17,7 @@ resource "openstack_networking_secgroup_v2" "secgroup_default" { protocol = "tcp" port_range_min = 1 port_range_max = 65535 - remote_ip_prefix = var.int_network + remote_ip_prefix = var.internal_network_cidr security_group_id = openstack_networking_secgroup_v2.secgroup_default.id } @@ -27,7 +27,7 @@ resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_alludp4" { protocol = "udp" port_range_min = 1 port_range_max = 65535 - remote_ip_prefix = var.int_network + remote_ip_prefix = var.internal_network_cidr security_group_id = openstack_networking_secgroup_v2.secgroup_default.id } */ diff --git a/clouds/g2/ostrava/general/terraform/modules/common/variables.tf b/clouds/g2/ostrava/general/terraform/modules/common/variables.tf new file mode 100644 index 0000000000000000000000000000000000000000..c7674a82399679b7d0213674681c59119546f5b1 --- /dev/null +++ b/clouds/g2/ostrava/general/terraform/modules/common/variables.tf @@ -0,0 +1,109 @@ +######################### +# general configuration # +######################### +variable "infra_name" { + description = "Infrastructure (profile) name. Used as a name prefix. Must match [a-zA-Z0-9-]+ regexp." + default = "general-tf-demo" +} + +variable "ssh_public_key" { + default = "~/.ssh/id_rsa.pub" +} + +variable "internal_network_cidr" { + description = "Internal network address, use CIDR notation" + default = "10.10.10.0/24" +} + +variable "public_external_network" { + description = "Cloud public external network pool" + default = "public-cesnet-195-113-167-GROUP" +} + +variable "router_creation_enable" { + description = "Create dedicated router instance. true/false ~ create new / reuse existing personal router" + default = true +} + +variable "internal_network_creation_enable" { + description = "Create dedicated internal network. true/false ~ create new / reuse existing personal network" + default = true +} + +variable "internal_network_name" { + description = "Internal network name. Either dedicated new network or existing personal network name" + default = "<var.infra_name>_network" +} + +variable "internal_subnet_creation_enable" { + description = "Create dedicated subnet instance. true/false ~ create new / reuse existing personal subnet" + default = true +} + +variable "internal_subnet_name" { + description = "Internal network subnet name. Either dedicated new subnet or existing personal subnet name" + default = "<var.infra_name>_subnet" +} + +#################### +# bastion settings # +#################### +variable "bastion_name" { + description = "Name of the bastion VM. Must match [a-zA-Z0-9-]+ regexp." + default = "bastion-server" +} + +variable "bastion_flavor" { + default = "standard.small" +} + +variable "bastion_image" { + description = "Bastion OS: Image name" + default = "ubuntu-jammy-x86_64" +} + +variable "bastion_ssh_user_name" { + default = "ubuntu" +} + +######################### +# master nodes settings # +######################### + +variable "nodes_count" { + default = 1 +} + +variable "nodes_name" { + description = "Name of the nodes. Must match [a-zA-Z0-9-]+ regexp." + default = "server" +} + +variable "nodes_flavor" { + default = "standard.large" +} + +variable "nodes_image" { + description = "nodes OS: Image name" + default = "ubuntu-jammy-x86_64" +} + +variable "nodes_ssh_user_name" { + default = "ubuntu" +} + +variable "nodes_volume_size" { + description = "The size of the volume to create (in gigabytes) for root filesystem. " + default = "10" +} + +variable "nodes_extra_volume_size" { + description = "The size of the volume to create (in gigabytes) for extra data. 0 to disable extra volume." + default = "10" +} + +variable "nodes_extra_volume_type" { + description = "The type of extra volume." + default = null +} + diff --git a/clouds/g2/ostrava/general/terraform/personal-projects.tfvars b/clouds/g2/ostrava/general/terraform/personal-projects.tfvars new file mode 100644 index 0000000000000000000000000000000000000000..7472fcf1efb855836f0c0d326712d954703fb402 --- /dev/null +++ b/clouds/g2/ostrava/general/terraform/personal-projects.tfvars @@ -0,0 +1,6 @@ +# extra variabes for an OpenStack personal project +router_creation_enable = false +internal_network_creation_enable = false +internal_network_name = "internal-ipv4-general-private" +internal_subnet_creation_enable = false +internal_subnet_name = "internal-ipv4-general-private-172-22-0-0" diff --git a/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-group-project-no-wrapper.log b/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-group-project-no-wrapper.log new file mode 100644 index 0000000000000000000000000000000000000000..8fdf927416c837e8edf5782dadb27c498d25363b --- /dev/null +++ b/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-group-project-no-wrapper.log @@ -0,0 +1,1008 @@ +# ########################################################################### +# terminal A +# ########################################################################### +[freznicek@lenovo-t14 terraform 0]$ source ~/conf/g2-prod-ostrava-meta-cloud-training-all-roles-openrc.sh +[freznicek@lenovo-t14 terraform 0]$ terraform init + +Initializing the backend... +Initializing modules... + +Initializing provider plugins... +- Reusing previous version of terraform-provider-openstack/openstack from the dependency lock file +- Using previously-installed terraform-provider-openstack/openstack v1.52.1 + +Terraform has been successfully initialized! + +You may now begin working with Terraform. Try running "terraform plan" to see +any changes that are required for your infrastructure. All Terraform commands +should now work. + +If you ever set or change modules or backend configuration for Terraform, +rerun this command to reinitialize your working directory. If you forget, other +commands will detect it and remind you to do so if necessary. +[freznicek@lenovo-t14 terraform 0]$ terraform validate +Success! The configuration is valid. + +[freznicek@lenovo-t14 terraform 0]$ terraform plan --out group-project.plan +module.toplevel.data.openstack_images_image_v2.nodes_image: Reading... +module.toplevel.data.openstack_networking_network_v2.external_network: Reading... +module.toplevel.data.openstack_images_image_v2.nodes_image: Read complete after 1s [id=9a071dba-67d5-445f-9d32-0f56360fb10f] +module.toplevel.data.openstack_networking_network_v2.external_network: Read complete after 1s [id=5a778b8d-4194-48fd-880d-181aaf7222c2] + +Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with +the following symbols: + + create + +Terraform will perform the following actions: + + # module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate will be created + + resource "openstack_compute_floatingip_associate_v2" "bastion_fip_associate" { + + floating_ip = (known after apply) + + id = (known after apply) + + instance_id = (known after apply) + + region = (known after apply) + } + + # module.toplevel.openstack_compute_instance_v2.bastion will be created + + resource "openstack_compute_instance_v2" "bastion" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "standard.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-bastion-server" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "c875cd218164c30103ab9399e7237ce0745df6ef" + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = (known after apply) + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[0] will be created + + resource "openstack_compute_instance_v2" "nodes" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "e1.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-server-1" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "4f71dc6cb6cef198c6b7be755b918c12ed196042" + + + block_device { + + boot_index = 0 + + delete_on_termination = true + + destination_type = "local" + + multiattach = false + + source_type = "image" + + uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" + + volume_size = 10 + } + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = (known after apply) + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[1] will be created + + resource "openstack_compute_instance_v2" "nodes" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "e1.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-server-2" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "02ba299fe90493a6657b8efdc54727f3ceceb1eb" + + + block_device { + + boot_index = 0 + + delete_on_termination = true + + destination_type = "local" + + multiattach = false + + source_type = "image" + + uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" + + volume_size = 10 + } + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = (known after apply) + } + } + + # module.toplevel.openstack_compute_keypair_v2.pubkey will be created + + resource "openstack_compute_keypair_v2" "pubkey" { + + fingerprint = (known after apply) + + id = (known after apply) + + name = "general-tf-demo-keypair" + + private_key = (sensitive value) + + public_key = <<-EOT + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCh5m8MwPW2mSXPFj0P3SSnAjukeQinvdESJfUeVqxOLozx3uAprm+ghPlun4V0mqfIfs6SmJM2wN8oDjd18yJVgCc1tfaSTDYDnVdrVPzWQYDdCqca0a3z+fXuK/sffv+9SH4LdNGqm6wA6xjJAbp8HbsnUNbcxs9bt9GJToxRjVCHjawJxlBBUemuYU7x7B8tdq3W5Fxtc9dIEcpO7NLvVujSSzbTwxVANSpOsbhroN6IQP299hB7Ggoa7P0MNaJa9VHJSU4Z6N7lYDrMG5gkm6LxL6s37ljyQS7IVDNKbhj1WrWfxAWrYtQy5alzisa7uuaxb1dOwEEWzZI5Z59T79cZActsJJPf6e4zurYo8Tqw9vpJId8ohDEQVnmb5asDGMz5G8xXa4G98McVYL1766fN1FxflYLIVRi7uPTLjN76COh/Q/ZxYuByFYl62VY+vT3CxcYInsqOkhwgfmHMbepq3ndRRIrN97IDDMutT5peTLSwpsmME+202Tg12TL7aGMyeNfcRxJkm3nHvXXKSAu1fJKXPvTQZZRxctX9GQ+2iYBhB57WnmtvfzgfcrAdZTXH3Mh08xRB+Uv/VqupLhm9Fgs/+IVUyi0AezsL6NrGItyPVcVU2HXF6xdsIFyHgb2Jhbdm2PzN/n7lcRa6lkltPBpLSWZb0N0DSHbrJw== freznicek@fedora + EOT + + region = (known after apply) + + user_id = (known after apply) + } + + # module.toplevel.openstack_networking_floatingip_v2.bastion_fip will be created + + resource "openstack_networking_floatingip_v2" "bastion_fip" { + + address = (known after apply) + + all_tags = (known after apply) + + dns_domain = (known after apply) + + dns_name = (known after apply) + + fixed_ip = (known after apply) + + id = (known after apply) + + pool = "external-ipv4-general-public" + + port_id = (known after apply) + + region = (known after apply) + + subnet_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_network_v2.network_default[0] will be created + + resource "openstack_networking_network_v2" "network_default" { + + admin_state_up = true + + all_tags = (known after apply) + + availability_zone_hints = (known after apply) + + dns_domain = (known after apply) + + external = (known after apply) + + id = (known after apply) + + mtu = (known after apply) + + name = "general-tf-demo_network" + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + shared = (known after apply) + + tenant_id = (known after apply) + + transparent_vlan = (known after apply) + } + + # module.toplevel.openstack_networking_port_v2.bastion_port will be created + + resource "openstack_networking_port_v2" "bastion_port" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo-bastion-server-port" + + network_id = (known after apply) + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = (known after apply) + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[0] will be created + + resource "openstack_networking_port_v2" "nodes_ports" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo_server_port_1" + + network_id = (known after apply) + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = (known after apply) + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[1] will be created + + resource "openstack_networking_port_v2" "nodes_ports" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo_server_port_2" + + network_id = (known after apply) + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = (known after apply) + } + } + + # module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0] will be created + + resource "openstack_networking_router_interface_v2" "router_default_interface" { + + force_destroy = false + + id = (known after apply) + + port_id = (known after apply) + + region = (known after apply) + + router_id = (known after apply) + + subnet_id = (known after apply) + } + + # module.toplevel.openstack_networking_router_v2.router_default[0] will be created + + resource "openstack_networking_router_v2" "router_default" { + + admin_state_up = true + + all_tags = (known after apply) + + availability_zone_hints = (known after apply) + + distributed = (known after apply) + + enable_snat = (known after apply) + + external_gateway = (known after apply) + + external_network_id = "5a778b8d-4194-48fd-880d-181aaf7222c2" + + id = (known after apply) + + name = "general-tf-demo_infra-test" + + region = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_http4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 80 + + port_range_min = 80 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_https4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 443 + + port_range_min = 443 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_icmp4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 0 + + port_range_min = 0 + + protocol = "icmp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_ssh4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 22 + + port_range_min = 22 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_v2.secgroup_default will be created + + resource "openstack_networking_secgroup_v2" "secgroup_default" { + + all_tags = (known after apply) + + description = "general-tf-demo Security group" + + id = (known after apply) + + name = "general-tf-demo_security_group" + + region = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_subnet_v2.subnet_default[0] will be created + + resource "openstack_networking_subnet_v2" "subnet_default" { + + all_tags = (known after apply) + + cidr = "10.10.10.0/24" + + dns_nameservers = [ + + "1.1.1.1", + + "8.8.8.8", + ] + + enable_dhcp = true + + gateway_ip = (known after apply) + + id = (known after apply) + + ip_version = 4 + + ipv6_address_mode = (known after apply) + + ipv6_ra_mode = (known after apply) + + name = "general-tf-demo_subnet" + + network_id = (known after apply) + + no_gateway = false + + region = (known after apply) + + service_types = (known after apply) + + tenant_id = (known after apply) + } + +Plan: 18 to add, 0 to change, 0 to destroy. + +─────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + +Saved the plan to: group-project.plan + +To perform exactly these actions, run the following command to apply: + terraform apply "group-project.plan" +[freznicek@lenovo-t14 terraform 0]$ terraform apply "group-project.plan" +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Creating... +module.toplevel.openstack_networking_router_v2.router_default[0]: Creating... +module.toplevel.openstack_compute_keypair_v2.pubkey: Creating... +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Creating... +module.toplevel.openstack_networking_network_v2.network_default[0]: Creating... +module.toplevel.openstack_compute_keypair_v2.pubkey: Creation complete after 1s [id=general-tf-demo-keypair] +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Creation complete after 1s [id=30bc1a97-d150-4d52-9e5e-b54f46e85caa] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Creation complete after 0s [id=663be34f-2171-4999-9f79-7f3a9d985106] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Creation complete after 1s [id=b0bbf3bb-e071-464e-8998-e615e9637ee4] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Creation complete after 1s [id=ba11b2f0-4a09-4774-a185-6b29980591e2] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Creation complete after 1s [id=7404a85d-9bb9-41c9-9f78-5a225f03012f] +module.toplevel.openstack_networking_network_v2.network_default[0]: Creation complete after 7s [id=52a1637a-9950-46c5-8044-99c02fd608dd] +module.toplevel.openstack_networking_subnet_v2.subnet_default[0]: Creating... +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Creation complete after 7s [id=c8ea0ba8-4c69-45ac-96dd-d08270d53e39] +module.toplevel.openstack_networking_router_v2.router_default[0]: Creation complete after 8s [id=7e061d3c-90c6-488c-9e8a-78d122fc0088] +module.toplevel.openstack_networking_subnet_v2.subnet_default[0]: Creation complete after 5s [id=8be2ddeb-bf42-465f-a828-af67beafea23] +module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0]: Creating... +module.toplevel.openstack_networking_port_v2.bastion_port: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Creating... +module.toplevel.openstack_networking_port_v2.bastion_port: Creation complete after 6s [id=43c96551-3600-4244-b6d9-35a5ff4f5363] +module.toplevel.openstack_compute_instance_v2.bastion: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Creation complete after 6s [id=31851ec6-83ae-40f6-b108-c6742b5bdd42] +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Creation complete after 6s [id=d8144013-bf87-427b-b546-6bd17f4b749c] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Creating... +module.toplevel.openstack_compute_instance_v2.nodes[1]: Creating... +module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0]: Creation complete after 7s [id=1fbc50d1-50e7-4de8-8e0b-e919d12685b9] +module.toplevel.openstack_compute_instance_v2.bastion: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.bastion: Creation complete after 11s [id=b4621741-7b87-4d4f-af14-c8764be41209] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Creating... +module.toplevel.openstack_compute_instance_v2.nodes[1]: Creation complete after 11s [id=f3d1409a-3dc6-48a8-916b-088bc3c967ab] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Creation complete after 11s [id=505d5414-53e4-4736-a886-992e16ab7a13] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Creation complete after 1s [id=195.113.243.33/b4621741-7b87-4d4f-af14-c8764be41209/] + +Apply complete! Resources: 18 added, 0 changed, 0 destroyed. +[freznicek@lenovo-t14 terraform 0]$ openstack server list ++--------------------------------------+--------------------------------+--------+-----------------------------------------------------------+---------------------+----------------+ +| ID | Name | Status | Networks | Image | Flavor | ++--------------------------------------+--------------------------------+--------+-----------------------------------------------------------+---------------------+----------------+ +| 505d5414-53e4-4736-a886-992e16ab7a13 | general-tf-demo-server-1 | ACTIVE | general-tf-demo_network=10.10.10.116 | ubuntu-jammy-x86_64 | e1.small | +| b4621741-7b87-4d4f-af14-c8764be41209 | general-tf-demo-bastion-server | ACTIVE | general-tf-demo_network=10.10.10.171, 195.113.243.33 | ubuntu-jammy-x86_64 | standard.small | +| f3d1409a-3dc6-48a8-916b-088bc3c967ab | general-tf-demo-server-2 | ACTIVE | general-tf-demo_network=10.10.10.210 | ubuntu-jammy-x86_64 | e1.small | ++--------------------------------------+--------------------------------+--------+-----------------------------------------------------------+---------------------+----------------+ + +# ########################################################################### +# in terminal B +# ########################################################################### +[freznicek@lenovo-t14 terraform 0]$ sshuttle -r ubuntu@195.113.243.33 10.10.10.0/24 +[local sudo] Password: +The authenticity of host '195.113.243.33 (195.113.243.33)' can't be established. +ED25519 key fingerprint is SHA256:e1D3sQga3lEGh85d3GkFvM8nCkQNLGGWS6MRZgF2U7I. +This key is not known by any other names +Are you sure you want to continue connecting (yes/no/[fingerprint])? yes +Warning: Permanently added '195.113.243.33' (ED25519) to the list of known hosts. +c : Connected to server. +^Cc : +c : Keyboard interrupt: exiting. + +# ########################################################################### +# terminal A continues +# ########################################################################### +[freznicek@lenovo-t14 terraform 0]$ for i_ip in 10.10.10.{171,116,210}; do ssh ubuntu@$i_ip 'uname -a;uptime'; doneThe authenticity of host '10.10.10.171 (10.10.10.171)' can't be established. +ED25519 key fingerprint is SHA256:e1D3sQga3lEGh85d3GkFvM8nCkQNLGGWS6MRZgF2U7I. +This host key is known by the following other names/addresses: + ~/.ssh/known_hosts:1296: 195.113.243.33 +Are you sure you want to continue connecting (yes/no/[fingerprint])? yes +Warning: Permanently added '10.10.10.171' (ED25519) to the list of known hosts. +Linux general-tf-demo-bastion-server 5.15.0-73-generic #80-Ubuntu SMP Mon May 15 15:18:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux + 17:40:38 up 1 min, 0 users, load average: 0.24, 0.17, 0.07 +The authenticity of host '10.10.10.116 (10.10.10.116)' can't be established. +ED25519 key fingerprint is SHA256:76kTPJmYHOhA/EtqUA2C2pW2DF4FyF81J2x/k0P/DII. +This key is not known by any other names +Are you sure you want to continue connecting (yes/no/[fingerprint])? yes +Warning: Permanently added '10.10.10.116' (ED25519) to the list of known hosts. +Linux general-tf-demo-server-1 5.15.0-73-generic #80-Ubuntu SMP Mon May 15 15:18:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux + 17:40:44 up 1 min, 0 users, load average: 0.19, 0.12, 0.05 +The authenticity of host '10.10.10.210 (10.10.10.210)' can't be established. +ED25519 key fingerprint is SHA256:oH7tIMZLj6MtZuMYqoc3SOIGJFsSHn5oF2KDNishmsk. +This key is not known by any other names +Are you sure you want to continue connecting (yes/no/[fingerprint])? yes +Warning: Permanently added '10.10.10.210' (ED25519) to the list of known hosts. +Linux general-tf-demo-server-2 5.15.0-73-generic #80-Ubuntu SMP Mon May 15 15:18:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux + 17:40:48 up 2 min, 0 users, load average: 0.34, 0.26, 0.10 +[freznicek@lenovo-t14 terraform 0]$ terraform destroy +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Refreshing state... [id=30bc1a97-d150-4d52-9e5e-b54f46e85caa] +module.toplevel.data.openstack_networking_network_v2.external_network: Reading... +module.toplevel.data.openstack_images_image_v2.nodes_image: Reading... +module.toplevel.openstack_compute_keypair_v2.pubkey: Refreshing state... [id=general-tf-demo-keypair] +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Refreshing state... [id=c8ea0ba8-4c69-45ac-96dd-d08270d53e39] +module.toplevel.openstack_networking_network_v2.network_default[0]: Refreshing state... [id=52a1637a-9950-46c5-8044-99c02fd608dd] +module.toplevel.data.openstack_images_image_v2.nodes_image: Read complete after 0s [id=9a071dba-67d5-445f-9d32-0f56360fb10f] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Refreshing state... [id=b0bbf3bb-e071-464e-8998-e615e9637ee4] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Refreshing state... [id=7404a85d-9bb9-41c9-9f78-5a225f03012f] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Refreshing state... [id=663be34f-2171-4999-9f79-7f3a9d985106] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Refreshing state... [id=ba11b2f0-4a09-4774-a185-6b29980591e2] +module.toplevel.openstack_networking_subnet_v2.subnet_default[0]: Refreshing state... [id=8be2ddeb-bf42-465f-a828-af67beafea23] +module.toplevel.data.openstack_networking_network_v2.external_network: Read complete after 0s [id=5a778b8d-4194-48fd-880d-181aaf7222c2] +module.toplevel.openstack_networking_router_v2.router_default[0]: Refreshing state... [id=7e061d3c-90c6-488c-9e8a-78d122fc0088] +module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0]: Refreshing state... [id=1fbc50d1-50e7-4de8-8e0b-e919d12685b9] +module.toplevel.openstack_networking_port_v2.bastion_port: Refreshing state... [id=43c96551-3600-4244-b6d9-35a5ff4f5363] +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Refreshing state... [id=31851ec6-83ae-40f6-b108-c6742b5bdd42] +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Refreshing state... [id=d8144013-bf87-427b-b546-6bd17f4b749c] +module.toplevel.openstack_compute_instance_v2.bastion: Refreshing state... [id=b4621741-7b87-4d4f-af14-c8764be41209] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Refreshing state... [id=505d5414-53e4-4736-a886-992e16ab7a13] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Refreshing state... [id=f3d1409a-3dc6-48a8-916b-088bc3c967ab] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Refreshing state... [id=195.113.243.33/b4621741-7b87-4d4f-af14-c8764be41209/] + +Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with +the following symbols: + - destroy + +Terraform will perform the following actions: + + # module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate will be destroyed + - resource "openstack_compute_floatingip_associate_v2" "bastion_fip_associate" { + - floating_ip = "195.113.243.33" -> null + - id = "195.113.243.33/b4621741-7b87-4d4f-af14-c8764be41209/" -> null + - instance_id = "b4621741-7b87-4d4f-af14-c8764be41209" -> null + - region = "Ostrava" -> null + } + + # module.toplevel.openstack_compute_instance_v2.bastion will be destroyed + - resource "openstack_compute_instance_v2" "bastion" { + - access_ip_v4 = "10.10.10.171" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:38:32 +0000 UTC" -> null + - flavor_id = "f5bb56cc-297d-4f1b-bf17-202fa0a8e9a3" -> null + - flavor_name = "standard.small" -> null + - force_delete = false -> null + - id = "b4621741-7b87-4d4f-af14-c8764be41209" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-bastion-server" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:38:38 +0000 UTC" -> null + - user_data = "c875cd218164c30103ab9399e7237ce0745df6ef" -> null + + - network { + - access_network = false -> null + - fixed_ip_v4 = "10.10.10.171" -> null + - mac = "fa:16:3e:71:5e:be" -> null + - name = "general-tf-demo_network" -> null + - port = "43c96551-3600-4244-b6d9-35a5ff4f5363" -> null + - uuid = "52a1637a-9950-46c5-8044-99c02fd608dd" -> null + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[0] will be destroyed + - resource "openstack_compute_instance_v2" "nodes" { + - access_ip_v4 = "10.10.10.116" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:38:32 +0000 UTC" -> null + - flavor_id = "77f5fa9b-255a-4bff-af57-be0bcf0dba03" -> null + - flavor_name = "e1.small" -> null + - force_delete = false -> null + - id = "505d5414-53e4-4736-a886-992e16ab7a13" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-server-1" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:38:38 +0000 UTC" -> null + - user_data = "4f71dc6cb6cef198c6b7be755b918c12ed196042" -> null + + - block_device { + - boot_index = 0 -> null + - delete_on_termination = true -> null + - destination_type = "local" -> null + - multiattach = false -> null + - source_type = "image" -> null + - uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - volume_size = 10 -> null + } + + - network { + - access_network = false -> null + - fixed_ip_v4 = "10.10.10.116" -> null + - mac = "fa:16:3e:26:94:51" -> null + - name = "general-tf-demo_network" -> null + - port = "31851ec6-83ae-40f6-b108-c6742b5bdd42" -> null + - uuid = "52a1637a-9950-46c5-8044-99c02fd608dd" -> null + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[1] will be destroyed + - resource "openstack_compute_instance_v2" "nodes" { + - access_ip_v4 = "10.10.10.210" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:38:32 +0000 UTC" -> null + - flavor_id = "77f5fa9b-255a-4bff-af57-be0bcf0dba03" -> null + - flavor_name = "e1.small" -> null + - force_delete = false -> null + - id = "f3d1409a-3dc6-48a8-916b-088bc3c967ab" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-server-2" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:38:36 +0000 UTC" -> null + - user_data = "02ba299fe90493a6657b8efdc54727f3ceceb1eb" -> null + + - block_device { + - boot_index = 0 -> null + - delete_on_termination = true -> null + - destination_type = "local" -> null + - multiattach = false -> null + - source_type = "image" -> null + - uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - volume_size = 10 -> null + } + + - network { + - access_network = false -> null + - fixed_ip_v4 = "10.10.10.210" -> null + - mac = "fa:16:3e:0d:26:c1" -> null + - name = "general-tf-demo_network" -> null + - port = "d8144013-bf87-427b-b546-6bd17f4b749c" -> null + - uuid = "52a1637a-9950-46c5-8044-99c02fd608dd" -> null + } + } + + # module.toplevel.openstack_compute_keypair_v2.pubkey will be destroyed + - resource "openstack_compute_keypair_v2" "pubkey" { + - fingerprint = "75:e0:a4:d6:4c:76:ba:21:f1:d1:75:c8:75:22:93:4f" -> null + - id = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-keypair" -> null + - public_key = <<-EOT + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCh5m8MwPW2mSXPFj0P3SSnAjukeQinvdESJfUeVqxOLozx3uAprm+ghPlun4V0mqfIfs6SmJM2wN8oDjd18yJVgCc1tfaSTDYDnVdrVPzWQYDdCqca0a3z+fXuK/sffv+9SH4LdNGqm6wA6xjJAbp8HbsnUNbcxs9bt9GJToxRjVCHjawJxlBBUemuYU7x7B8tdq3W5Fxtc9dIEcpO7NLvVujSSzbTwxVANSpOsbhroN6IQP299hB7Ggoa7P0MNaJa9VHJSU4Z6N7lYDrMG5gkm6LxL6s37ljyQS7IVDNKbhj1WrWfxAWrYtQy5alzisa7uuaxb1dOwEEWzZI5Z59T79cZActsJJPf6e4zurYo8Tqw9vpJId8ohDEQVnmb5asDGMz5G8xXa4G98McVYL1766fN1FxflYLIVRi7uPTLjN76COh/Q/ZxYuByFYl62VY+vT3CxcYInsqOkhwgfmHMbepq3ndRRIrN97IDDMutT5peTLSwpsmME+202Tg12TL7aGMyeNfcRxJkm3nHvXXKSAu1fJKXPvTQZZRxctX9GQ+2iYBhB57WnmtvfzgfcrAdZTXH3Mh08xRB+Uv/VqupLhm9Fgs/+IVUyi0AezsL6NrGItyPVcVU2HXF6xdsIFyHgb2Jhbdm2PzN/n7lcRa6lkltPBpLSWZb0N0DSHbrJw== freznicek@fedora + EOT -> null + - region = "Ostrava" -> null + } + + # module.toplevel.openstack_networking_floatingip_v2.bastion_fip will be destroyed + - resource "openstack_networking_floatingip_v2" "bastion_fip" { + - address = "195.113.243.33" -> null + - all_tags = [] -> null + - fixed_ip = "10.10.10.171" -> null + - id = "c8ea0ba8-4c69-45ac-96dd-d08270d53e39" -> null + - pool = "external-ipv4-general-public" -> null + - port_id = "43c96551-3600-4244-b6d9-35a5ff4f5363" -> null + - region = "Ostrava" -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_network_v2.network_default[0] will be destroyed + - resource "openstack_networking_network_v2" "network_default" { + - admin_state_up = true -> null + - all_tags = [] -> null + - availability_zone_hints = [ + - "nova", + ] -> null + - external = false -> null + - id = "52a1637a-9950-46c5-8044-99c02fd608dd" -> null + - mtu = 8950 -> null + - name = "general-tf-demo_network" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - shared = false -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + - transparent_vlan = false -> null + } + + # module.toplevel.openstack_networking_port_v2.bastion_port will be destroyed + - resource "openstack_networking_port_v2" "bastion_port" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "10.10.10.171", + ] -> null + - all_security_group_ids = [ + - "30bc1a97-d150-4d52-9e5e-b54f46e85caa", + ] -> null + - all_tags = [] -> null + - device_id = "b4621741-7b87-4d4f-af14-c8764be41209" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "43c96551-3600-4244-b6d9-35a5ff4f5363" -> null + - mac_address = "fa:16:3e:71:5e:be" -> null + - name = "general-tf-demo-bastion-server-port" -> null + - network_id = "52a1637a-9950-46c5-8044-99c02fd608dd" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "30bc1a97-d150-4d52-9e5e-b54f46e85caa", + ] -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "8be2ddeb-bf42-465f-a828-af67beafea23" -> null + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[0] will be destroyed + - resource "openstack_networking_port_v2" "nodes_ports" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "10.10.10.116", + ] -> null + - all_security_group_ids = [ + - "30bc1a97-d150-4d52-9e5e-b54f46e85caa", + ] -> null + - all_tags = [] -> null + - device_id = "505d5414-53e4-4736-a886-992e16ab7a13" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "31851ec6-83ae-40f6-b108-c6742b5bdd42" -> null + - mac_address = "fa:16:3e:26:94:51" -> null + - name = "general-tf-demo_server_port_1" -> null + - network_id = "52a1637a-9950-46c5-8044-99c02fd608dd" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "30bc1a97-d150-4d52-9e5e-b54f46e85caa", + ] -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "8be2ddeb-bf42-465f-a828-af67beafea23" -> null + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[1] will be destroyed + - resource "openstack_networking_port_v2" "nodes_ports" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "10.10.10.210", + ] -> null + - all_security_group_ids = [ + - "30bc1a97-d150-4d52-9e5e-b54f46e85caa", + ] -> null + - all_tags = [] -> null + - device_id = "f3d1409a-3dc6-48a8-916b-088bc3c967ab" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "d8144013-bf87-427b-b546-6bd17f4b749c" -> null + - mac_address = "fa:16:3e:0d:26:c1" -> null + - name = "general-tf-demo_server_port_2" -> null + - network_id = "52a1637a-9950-46c5-8044-99c02fd608dd" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "30bc1a97-d150-4d52-9e5e-b54f46e85caa", + ] -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "8be2ddeb-bf42-465f-a828-af67beafea23" -> null + } + } + + # module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0] will be destroyed + - resource "openstack_networking_router_interface_v2" "router_default_interface" { + - force_destroy = false -> null + - id = "1fbc50d1-50e7-4de8-8e0b-e919d12685b9" -> null + - port_id = "1fbc50d1-50e7-4de8-8e0b-e919d12685b9" -> null + - region = "Ostrava" -> null + - router_id = "7e061d3c-90c6-488c-9e8a-78d122fc0088" -> null + - subnet_id = "8be2ddeb-bf42-465f-a828-af67beafea23" -> null + } + + # module.toplevel.openstack_networking_router_v2.router_default[0] will be destroyed + - resource "openstack_networking_router_v2" "router_default" { + - admin_state_up = true -> null + - all_tags = [] -> null + - availability_zone_hints = [ + - "nova", + ] -> null + - distributed = false -> null + - enable_snat = true -> null + - external_gateway = "5a778b8d-4194-48fd-880d-181aaf7222c2" -> null + - external_network_id = "5a778b8d-4194-48fd-880d-181aaf7222c2" -> null + - id = "7e061d3c-90c6-488c-9e8a-78d122fc0088" -> null + - name = "general-tf-demo_infra-test" -> null + - region = "Ostrava" -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + + - external_fixed_ip { + - ip_address = "195.113.243.241" -> null + - subnet_id = "a8843622-1b54-414a-918a-1861434135ce" -> null + } + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_http4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "b0bbf3bb-e071-464e-8998-e615e9637ee4" -> null + - port_range_max = 80 -> null + - port_range_min = 80 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "30bc1a97-d150-4d52-9e5e-b54f46e85caa" -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_https4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "7404a85d-9bb9-41c9-9f78-5a225f03012f" -> null + - port_range_max = 443 -> null + - port_range_min = 443 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "30bc1a97-d150-4d52-9e5e-b54f46e85caa" -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_icmp4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "663be34f-2171-4999-9f79-7f3a9d985106" -> null + - port_range_max = 0 -> null + - port_range_min = 0 -> null + - protocol = "icmp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "30bc1a97-d150-4d52-9e5e-b54f46e85caa" -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_ssh4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "ba11b2f0-4a09-4774-a185-6b29980591e2" -> null + - port_range_max = 22 -> null + - port_range_min = 22 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "30bc1a97-d150-4d52-9e5e-b54f46e85caa" -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_secgroup_v2.secgroup_default will be destroyed + - resource "openstack_networking_secgroup_v2" "secgroup_default" { + - all_tags = [] -> null + - description = "general-tf-demo Security group" -> null + - id = "30bc1a97-d150-4d52-9e5e-b54f46e85caa" -> null + - name = "general-tf-demo_security_group" -> null + - region = "Ostrava" -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_subnet_v2.subnet_default[0] will be destroyed + - resource "openstack_networking_subnet_v2" "subnet_default" { + - all_tags = [] -> null + - cidr = "10.10.10.0/24" -> null + - dns_nameservers = [ + - "1.1.1.1", + - "8.8.8.8", + ] -> null + - enable_dhcp = true -> null + - gateway_ip = "10.10.10.1" -> null + - id = "8be2ddeb-bf42-465f-a828-af67beafea23" -> null + - ip_version = 4 -> null + - name = "general-tf-demo_subnet" -> null + - network_id = "52a1637a-9950-46c5-8044-99c02fd608dd" -> null + - no_gateway = false -> null + - region = "Ostrava" -> null + - service_types = [] -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + + - allocation_pool { + - end = "10.10.10.254" -> null + - start = "10.10.10.2" -> null + } + + - allocation_pools { + - end = "10.10.10.254" -> null + - start = "10.10.10.2" -> null + } + } + +Plan: 0 to add, 0 to change, 18 to destroy. + +Do you really want to destroy all resources? + Terraform will destroy all your managed infrastructure, as shown above. + There is no undo. Only 'yes' will be accepted to confirm. + + Enter a value: yes + +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Destroying... [id=195.113.243.33/b4621741-7b87-4d4f-af14-c8764be41209/] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Destroying... [id=ba11b2f0-4a09-4774-a185-6b29980591e2] +module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0]: Destroying... [id=1fbc50d1-50e7-4de8-8e0b-e919d12685b9] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Destroying... [id=7404a85d-9bb9-41c9-9f78-5a225f03012f] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Destroying... [id=663be34f-2171-4999-9f79-7f3a9d985106] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Destroying... [id=b0bbf3bb-e071-464e-8998-e615e9637ee4] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Destroying... [id=505d5414-53e4-4736-a886-992e16ab7a13] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Destroying... [id=f3d1409a-3dc6-48a8-916b-088bc3c967ab] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Destruction complete after 1s +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Destroying... [id=c8ea0ba8-4c69-45ac-96dd-d08270d53e39] +module.toplevel.openstack_compute_instance_v2.bastion: Destroying... [id=b4621741-7b87-4d4f-af14-c8764be41209] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Destruction complete after 6s +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Destruction complete after 6s +module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0]: Destruction complete after 9s +module.toplevel.openstack_networking_router_v2.router_default[0]: Destroying... [id=7e061d3c-90c6-488c-9e8a-78d122fc0088] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Still destroying... [id=b0bbf3bb-e071-464e-8998-e615e9637ee4, 10s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Still destroying... [id=663be34f-2171-4999-9f79-7f3a9d985106, 10s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Still destroying... [id=7404a85d-9bb9-41c9-9f78-5a225f03012f, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Still destroying... [id=505d5414-53e4-4736-a886-992e16ab7a13, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Still destroying... [id=f3d1409a-3dc6-48a8-916b-088bc3c967ab, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Destruction complete after 11s +module.toplevel.openstack_compute_instance_v2.nodes[0]: Destruction complete after 11s +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Destroying... [id=d8144013-bf87-427b-b546-6bd17f4b749c] +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Destroying... [id=31851ec6-83ae-40f6-b108-c6742b5bdd42] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Destruction complete after 11s +module.toplevel.openstack_compute_instance_v2.bastion: Still destroying... [id=b4621741-7b87-4d4f-af14-c8764be41209, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.bastion: Destruction complete after 10s +module.toplevel.openstack_compute_keypair_v2.pubkey: Destroying... [id=general-tf-demo-keypair] +module.toplevel.openstack_networking_port_v2.bastion_port: Destroying... [id=43c96551-3600-4244-b6d9-35a5ff4f5363] +module.toplevel.openstack_compute_keypair_v2.pubkey: Destruction complete after 1s +module.toplevel.openstack_networking_router_v2.router_default[0]: Destruction complete after 5s +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Destruction complete after 16s +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Destruction complete after 5s +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Destruction complete after 5s +module.toplevel.openstack_networking_port_v2.bastion_port: Destruction complete after 6s +module.toplevel.openstack_networking_subnet_v2.subnet_default[0]: Destroying... [id=8be2ddeb-bf42-465f-a828-af67beafea23] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Still destroying... [id=b0bbf3bb-e071-464e-8998-e615e9637ee4, 20s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Destruction complete after 21s +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Destroying... [id=30bc1a97-d150-4d52-9e5e-b54f46e85caa] +module.toplevel.openstack_networking_subnet_v2.subnet_default[0]: Destruction complete after 8s +module.toplevel.openstack_networking_network_v2.network_default[0]: Destroying... [id=52a1637a-9950-46c5-8044-99c02fd608dd] +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Destruction complete after 8s +module.toplevel.openstack_networking_network_v2.network_default[0]: Destruction complete after 5s + +Destroy complete! Resources: 18 destroyed. +[freznicek@lenovo-t14 terraform 0]$ diff --git a/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-group-project-wrapper.log b/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-group-project-wrapper.log new file mode 100644 index 0000000000000000000000000000000000000000..a0444929924ef844e186992a4d4aef5823ab4b09 --- /dev/null +++ b/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-group-project-wrapper.log @@ -0,0 +1,994 @@ +[freznicek@lenovo-t14 terraform 0]$ source ~/conf/g2-prod-ostrava-meta-cloud-training-all-roles-openrc.sh +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh detect-cloud + +Using OpenStack cloud: +"Ostrava","identity","3.14","CURRENT","https://identity.ostrava.openstack.cloud.e-infra.cz/v3/","","" +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh detect-project + +Using OpenStack group project named: meta-cloud-training +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh validate-tools + +Using commandline tools: +openstack --version: + openstack 5.5.0 +bash --version: + GNU bash, verze 5.2.15(1)-release (x86_64-redhat-linux-gnu) +awk -W version: + GNU Awk 5.1.1, API: 3.1 (GNU MPFR 4.1.0-p13, GNU MP 6.2.1) +ssh -V: + OpenSSH_8.8p1, OpenSSL 3.0.8 7 Feb 2023 +which ssh-keygen: + /usr/bin/ssh-keygen +ncat --version: + Ncat: Version 7.93 ( https://nmap.org/ncat ) +grep --version: + grep (GNU grep) 3.7 +terraform version: + Terraform v1.5.2 +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh init + +Initializing the backend... +Initializing modules... + +Initializing provider plugins... +- Reusing previous version of terraform-provider-openstack/openstack from the dependency lock file +- Using previously-installed terraform-provider-openstack/openstack v1.52.1 + +Terraform has been successfully initialized! + +You may now begin working with Terraform. Try running "terraform plan" to see +any changes that are required for your infrastructure. All Terraform commands +should now work. + +If you ever set or change modules or backend configuration for Terraform, +rerun this command to reinitialize your working directory. If you forget, other +commands will detect it and remind you to do so if necessary. +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh validate +Success! The configuration is valid. + + +[freznicek@lenovo-t14 terraform 127]$ ./terraform.sh plan --out group-project.plan +module.toplevel.data.openstack_networking_network_v2.external_network: Reading... +module.toplevel.data.openstack_images_image_v2.nodes_image: Reading... +module.toplevel.data.openstack_networking_network_v2.external_network: Read complete after 1s [id=5a778b8d-4194-48fd-880d-181aaf7222c2] +module.toplevel.data.openstack_images_image_v2.nodes_image: Read complete after 1s [id=9a071dba-67d5-445f-9d32-0f56360fb10f] + +Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with +the following symbols: + + create + +Terraform will perform the following actions: + + # module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate will be created + + resource "openstack_compute_floatingip_associate_v2" "bastion_fip_associate" { + + floating_ip = (known after apply) + + id = (known after apply) + + instance_id = (known after apply) + + region = (known after apply) + } + + # module.toplevel.openstack_compute_instance_v2.bastion will be created + + resource "openstack_compute_instance_v2" "bastion" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "standard.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-bastion-server" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "c875cd218164c30103ab9399e7237ce0745df6ef" + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = (known after apply) + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[0] will be created + + resource "openstack_compute_instance_v2" "nodes" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "e1.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-server-1" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "4f71dc6cb6cef198c6b7be755b918c12ed196042" + + + block_device { + + boot_index = 0 + + delete_on_termination = true + + destination_type = "local" + + multiattach = false + + source_type = "image" + + uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" + + volume_size = 10 + } + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = (known after apply) + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[1] will be created + + resource "openstack_compute_instance_v2" "nodes" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "e1.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-server-2" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "02ba299fe90493a6657b8efdc54727f3ceceb1eb" + + + block_device { + + boot_index = 0 + + delete_on_termination = true + + destination_type = "local" + + multiattach = false + + source_type = "image" + + uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" + + volume_size = 10 + } + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = (known after apply) + } + } + + # module.toplevel.openstack_compute_keypair_v2.pubkey will be created + + resource "openstack_compute_keypair_v2" "pubkey" { + + fingerprint = (known after apply) + + id = (known after apply) + + name = "general-tf-demo-keypair" + + private_key = (sensitive value) + + public_key = <<-EOT + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCh5m8MwPW2mSXPFj0P3SSnAjukeQinvdESJfUeVqxOLozx3uAprm+ghPlun4V0mqfIfs6SmJM2wN8oDjd18yJVgCc1tfaSTDYDnVdrVPzWQYDdCqca0a3z+fXuK/sffv+9SH4LdNGqm6wA6xjJAbp8HbsnUNbcxs9bt9GJToxRjVCHjawJxlBBUemuYU7x7B8tdq3W5Fxtc9dIEcpO7NLvVujSSzbTwxVANSpOsbhroN6IQP299hB7Ggoa7P0MNaJa9VHJSU4Z6N7lYDrMG5gkm6LxL6s37ljyQS7IVDNKbhj1WrWfxAWrYtQy5alzisa7uuaxb1dOwEEWzZI5Z59T79cZActsJJPf6e4zurYo8Tqw9vpJId8ohDEQVnmb5asDGMz5G8xXa4G98McVYL1766fN1FxflYLIVRi7uPTLjN76COh/Q/ZxYuByFYl62VY+vT3CxcYInsqOkhwgfmHMbepq3ndRRIrN97IDDMutT5peTLSwpsmME+202Tg12TL7aGMyeNfcRxJkm3nHvXXKSAu1fJKXPvTQZZRxctX9GQ+2iYBhB57WnmtvfzgfcrAdZTXH3Mh08xRB+Uv/VqupLhm9Fgs/+IVUyi0AezsL6NrGItyPVcVU2HXF6xdsIFyHgb2Jhbdm2PzN/n7lcRa6lkltPBpLSWZb0N0DSHbrJw== freznicek@fedora + EOT + + region = (known after apply) + + user_id = (known after apply) + } + + # module.toplevel.openstack_networking_floatingip_v2.bastion_fip will be created + + resource "openstack_networking_floatingip_v2" "bastion_fip" { + + address = (known after apply) + + all_tags = (known after apply) + + dns_domain = (known after apply) + + dns_name = (known after apply) + + fixed_ip = (known after apply) + + id = (known after apply) + + pool = "external-ipv4-general-public" + + port_id = (known after apply) + + region = (known after apply) + + subnet_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_network_v2.network_default[0] will be created + + resource "openstack_networking_network_v2" "network_default" { + + admin_state_up = true + + all_tags = (known after apply) + + availability_zone_hints = (known after apply) + + dns_domain = (known after apply) + + external = (known after apply) + + id = (known after apply) + + mtu = (known after apply) + + name = "general-tf-demo_network" + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + shared = (known after apply) + + tenant_id = (known after apply) + + transparent_vlan = (known after apply) + } + + # module.toplevel.openstack_networking_port_v2.bastion_port will be created + + resource "openstack_networking_port_v2" "bastion_port" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo-bastion-server-port" + + network_id = (known after apply) + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = (known after apply) + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[0] will be created + + resource "openstack_networking_port_v2" "nodes_ports" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo_server_port_1" + + network_id = (known after apply) + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = (known after apply) + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[1] will be created + + resource "openstack_networking_port_v2" "nodes_ports" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo_server_port_2" + + network_id = (known after apply) + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = (known after apply) + } + } + + # module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0] will be created + + resource "openstack_networking_router_interface_v2" "router_default_interface" { + + force_destroy = false + + id = (known after apply) + + port_id = (known after apply) + + region = (known after apply) + + router_id = (known after apply) + + subnet_id = (known after apply) + } + + # module.toplevel.openstack_networking_router_v2.router_default[0] will be created + + resource "openstack_networking_router_v2" "router_default" { + + admin_state_up = true + + all_tags = (known after apply) + + availability_zone_hints = (known after apply) + + distributed = (known after apply) + + enable_snat = (known after apply) + + external_gateway = (known after apply) + + external_network_id = "5a778b8d-4194-48fd-880d-181aaf7222c2" + + id = (known after apply) + + name = "general-tf-demo_infra-test" + + region = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_http4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 80 + + port_range_min = 80 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_https4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 443 + + port_range_min = 443 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_icmp4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 0 + + port_range_min = 0 + + protocol = "icmp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_ssh4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 22 + + port_range_min = 22 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_v2.secgroup_default will be created + + resource "openstack_networking_secgroup_v2" "secgroup_default" { + + all_tags = (known after apply) + + description = "general-tf-demo Security group" + + id = (known after apply) + + name = "general-tf-demo_security_group" + + region = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_subnet_v2.subnet_default[0] will be created + + resource "openstack_networking_subnet_v2" "subnet_default" { + + all_tags = (known after apply) + + cidr = "10.10.10.0/24" + + dns_nameservers = [ + + "1.1.1.1", + + "8.8.8.8", + ] + + enable_dhcp = true + + gateway_ip = (known after apply) + + id = (known after apply) + + ip_version = 4 + + ipv6_address_mode = (known after apply) + + ipv6_ra_mode = (known after apply) + + name = "general-tf-demo_subnet" + + network_id = (known after apply) + + no_gateway = false + + region = (known after apply) + + service_types = (known after apply) + + tenant_id = (known after apply) + } + +Plan: 18 to add, 0 to change, 0 to destroy. + +─────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + +Saved the plan to: group-project.plan + +To perform exactly these actions, run the following command to apply: + terraform apply "group-project.plan" +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh apply "group-project.plan" +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Creating... +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Creating... +module.toplevel.openstack_compute_keypair_v2.pubkey: Creating... +module.toplevel.openstack_networking_router_v2.router_default[0]: Creating... +module.toplevel.openstack_networking_network_v2.network_default[0]: Creating... +module.toplevel.openstack_compute_keypair_v2.pubkey: Creation complete after 1s [id=general-tf-demo-keypair] +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Creation complete after 1s [id=fe4f760c-52a4-4b9c-863a-be2a00ac49be] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Creation complete after 0s [id=ce5f3e79-ffcb-44e5-8d45-b12940d25361] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Creation complete after 1s [id=379d9e7c-d0d6-4a0d-bafc-6607a0e520b0] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Creation complete after 1s [id=e48033a1-7849-4968-a50f-6f80bd2a3f3c] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Creation complete after 1s [id=083d26d5-718b-4196-8baa-57357bf8deab] +module.toplevel.openstack_networking_network_v2.network_default[0]: Creation complete after 6s [id=dcf3f972-4e43-47ae-8aa3-709d065e523a] +module.toplevel.openstack_networking_subnet_v2.subnet_default[0]: Creating... +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Creation complete after 7s [id=af08b5cd-ee05-460d-b388-5dc450bb34b6] +module.toplevel.openstack_networking_router_v2.router_default[0]: Creation complete after 9s [id=0c3d769c-ba0a-4eb2-9d7b-3d3728145996] +module.toplevel.openstack_networking_subnet_v2.subnet_default[0]: Creation complete after 6s [id=54bc4d20-d0bf-4fd5-9467-5586a67a72f9] +module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0]: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Creating... +module.toplevel.openstack_networking_port_v2.bastion_port: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Creating... +module.toplevel.openstack_networking_port_v2.bastion_port: Creation complete after 5s [id=b89c3de0-8ec8-469e-963c-7abb9ad4e1af] +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Creation complete after 5s [id=9e517aee-1ad8-478c-8db8-0f7f86be42c2] +module.toplevel.openstack_compute_instance_v2.bastion: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Creation complete after 6s [id=8fd0aac2-e57a-41d9-827c-ceae90718ef3] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Creating... +module.toplevel.openstack_compute_instance_v2.nodes[0]: Creating... +module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0]: Creation complete after 6s [id=699e1c6f-3c53-435a-bb03-ab4a35e4b494] +module.toplevel.openstack_compute_instance_v2.bastion: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.bastion: Creation complete after 11s [id=f20f7683-4457-40c9-bac7-3b684a7c3d6f] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Creating... +module.toplevel.openstack_compute_instance_v2.nodes[1]: Creation complete after 11s [id=79c4c4e0-5237-43d1-8e13-0c1c1428b606] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Creation complete after 11s [id=a1ee4124-acb9-4f15-803e-fb6daa6dd654] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Creation complete after 1s [id=195.113.243.197/f20f7683-4457-40c9-bac7-3b684a7c3d6f/] + +Apply complete! Resources: 18 added, 0 changed, 0 destroyed. +[freznicek@lenovo-t14 terraform 0]$ openstack server list | grep bastion +| f20f7683-4457-40c9-bac7-3b684a7c3d6f | general-tf-demo-bastion-server | ACTIVE | general-tf-demo_network=10.10.10.56, 195.113.243.197 | ubuntu-jammy-x86_64 | standard.small | +[freznicek@lenovo-t14 terraform 0]$ ssh ubuntu@195.113.243.197 'uname -a;uptime' +The authenticity of host '195.113.243.197 (195.113.243.197)' can't be established. +ED25519 key fingerprint is SHA256:aJ/LVBbadgLD84ksuXwOhubxXXHgildqSTq5jRFg+x8. +This key is not known by any other names +Are you sure you want to continue connecting (yes/no/[fingerprint])? yes +Warning: Permanently added '195.113.243.197' (ED25519) to the list of known hosts. +Linux general-tf-demo-bastion-server 5.15.0-73-generic #80-Ubuntu SMP Mon May 15 15:18:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux + 17:13:02 up 0 min, 0 users, load average: 0.39, 0.12, 0.04 +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh destroy +module.toplevel.openstack_compute_keypair_v2.pubkey: Refreshing state... [id=general-tf-demo-keypair] +module.toplevel.data.openstack_images_image_v2.nodes_image: Reading... +module.toplevel.data.openstack_networking_network_v2.external_network: Reading... +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Refreshing state... [id=fe4f760c-52a4-4b9c-863a-be2a00ac49be] +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Refreshing state... [id=af08b5cd-ee05-460d-b388-5dc450bb34b6] +module.toplevel.openstack_networking_network_v2.network_default[0]: Refreshing state... [id=dcf3f972-4e43-47ae-8aa3-709d065e523a] +module.toplevel.data.openstack_images_image_v2.nodes_image: Read complete after 1s [id=9a071dba-67d5-445f-9d32-0f56360fb10f] +module.toplevel.data.openstack_networking_network_v2.external_network: Read complete after 1s [id=5a778b8d-4194-48fd-880d-181aaf7222c2] +module.toplevel.openstack_networking_router_v2.router_default[0]: Refreshing state... [id=0c3d769c-ba0a-4eb2-9d7b-3d3728145996] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Refreshing state... [id=ce5f3e79-ffcb-44e5-8d45-b12940d25361] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Refreshing state... [id=083d26d5-718b-4196-8baa-57357bf8deab] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Refreshing state... [id=379d9e7c-d0d6-4a0d-bafc-6607a0e520b0] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Refreshing state... [id=e48033a1-7849-4968-a50f-6f80bd2a3f3c] +module.toplevel.openstack_networking_subnet_v2.subnet_default[0]: Refreshing state... [id=54bc4d20-d0bf-4fd5-9467-5586a67a72f9] +module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0]: Refreshing state... [id=699e1c6f-3c53-435a-bb03-ab4a35e4b494] +module.toplevel.openstack_networking_port_v2.bastion_port: Refreshing state... [id=b89c3de0-8ec8-469e-963c-7abb9ad4e1af] +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Refreshing state... [id=9e517aee-1ad8-478c-8db8-0f7f86be42c2] +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Refreshing state... [id=8fd0aac2-e57a-41d9-827c-ceae90718ef3] +module.toplevel.openstack_compute_instance_v2.bastion: Refreshing state... [id=f20f7683-4457-40c9-bac7-3b684a7c3d6f] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Refreshing state... [id=a1ee4124-acb9-4f15-803e-fb6daa6dd654] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Refreshing state... [id=79c4c4e0-5237-43d1-8e13-0c1c1428b606] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Refreshing state... [id=195.113.243.197/f20f7683-4457-40c9-bac7-3b684a7c3d6f/] + +Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with +the following symbols: + - destroy + +Terraform will perform the following actions: + + # module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate will be destroyed + - resource "openstack_compute_floatingip_associate_v2" "bastion_fip_associate" { + - floating_ip = "195.113.243.197" -> null + - id = "195.113.243.197/f20f7683-4457-40c9-bac7-3b684a7c3d6f/" -> null + - instance_id = "f20f7683-4457-40c9-bac7-3b684a7c3d6f" -> null + - region = "Ostrava" -> null + } + + # module.toplevel.openstack_compute_instance_v2.bastion will be destroyed + - resource "openstack_compute_instance_v2" "bastion" { + - access_ip_v4 = "10.10.10.56" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:12:05 +0000 UTC" -> null + - flavor_id = "f5bb56cc-297d-4f1b-bf17-202fa0a8e9a3" -> null + - flavor_name = "standard.small" -> null + - force_delete = false -> null + - id = "f20f7683-4457-40c9-bac7-3b684a7c3d6f" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-bastion-server" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:12:09 +0000 UTC" -> null + - user_data = "c875cd218164c30103ab9399e7237ce0745df6ef" -> null + + - network { + - access_network = false -> null + - fixed_ip_v4 = "10.10.10.56" -> null + - mac = "fa:16:3e:80:2d:4a" -> null + - name = "general-tf-demo_network" -> null + - port = "b89c3de0-8ec8-469e-963c-7abb9ad4e1af" -> null + - uuid = "dcf3f972-4e43-47ae-8aa3-709d065e523a" -> null + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[0] will be destroyed + - resource "openstack_compute_instance_v2" "nodes" { + - access_ip_v4 = "10.10.10.171" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:12:06 +0000 UTC" -> null + - flavor_id = "77f5fa9b-255a-4bff-af57-be0bcf0dba03" -> null + - flavor_name = "e1.small" -> null + - force_delete = false -> null + - id = "a1ee4124-acb9-4f15-803e-fb6daa6dd654" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-server-1" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:12:11 +0000 UTC" -> null + - user_data = "4f71dc6cb6cef198c6b7be755b918c12ed196042" -> null + + - block_device { + - boot_index = 0 -> null + - delete_on_termination = true -> null + - destination_type = "local" -> null + - multiattach = false -> null + - source_type = "image" -> null + - uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - volume_size = 10 -> null + } + + - network { + - access_network = false -> null + - fixed_ip_v4 = "10.10.10.171" -> null + - mac = "fa:16:3e:e9:8d:1c" -> null + - name = "general-tf-demo_network" -> null + - port = "8fd0aac2-e57a-41d9-827c-ceae90718ef3" -> null + - uuid = "dcf3f972-4e43-47ae-8aa3-709d065e523a" -> null + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[1] will be destroyed + - resource "openstack_compute_instance_v2" "nodes" { + - access_ip_v4 = "10.10.10.36" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:12:06 +0000 UTC" -> null + - flavor_id = "77f5fa9b-255a-4bff-af57-be0bcf0dba03" -> null + - flavor_name = "e1.small" -> null + - force_delete = false -> null + - id = "79c4c4e0-5237-43d1-8e13-0c1c1428b606" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-server-2" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:12:11 +0000 UTC" -> null + - user_data = "02ba299fe90493a6657b8efdc54727f3ceceb1eb" -> null + + - block_device { + - boot_index = 0 -> null + - delete_on_termination = true -> null + - destination_type = "local" -> null + - multiattach = false -> null + - source_type = "image" -> null + - uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - volume_size = 10 -> null + } + + - network { + - access_network = false -> null + - fixed_ip_v4 = "10.10.10.36" -> null + - mac = "fa:16:3e:fb:4f:fc" -> null + - name = "general-tf-demo_network" -> null + - port = "9e517aee-1ad8-478c-8db8-0f7f86be42c2" -> null + - uuid = "dcf3f972-4e43-47ae-8aa3-709d065e523a" -> null + } + } + + # module.toplevel.openstack_compute_keypair_v2.pubkey will be destroyed + - resource "openstack_compute_keypair_v2" "pubkey" { + - fingerprint = "75:e0:a4:d6:4c:76:ba:21:f1:d1:75:c8:75:22:93:4f" -> null + - id = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-keypair" -> null + - public_key = <<-EOT + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCh5m8MwPW2mSXPFj0P3SSnAjukeQinvdESJfUeVqxOLozx3uAprm+ghPlun4V0mqfIfs6SmJM2wN8oDjd18yJVgCc1tfaSTDYDnVdrVPzWQYDdCqca0a3z+fXuK/sffv+9SH4LdNGqm6wA6xjJAbp8HbsnUNbcxs9bt9GJToxRjVCHjawJxlBBUemuYU7x7B8tdq3W5Fxtc9dIEcpO7NLvVujSSzbTwxVANSpOsbhroN6IQP299hB7Ggoa7P0MNaJa9VHJSU4Z6N7lYDrMG5gkm6LxL6s37ljyQS7IVDNKbhj1WrWfxAWrYtQy5alzisa7uuaxb1dOwEEWzZI5Z59T79cZActsJJPf6e4zurYo8Tqw9vpJId8ohDEQVnmb5asDGMz5G8xXa4G98McVYL1766fN1FxflYLIVRi7uPTLjN76COh/Q/ZxYuByFYl62VY+vT3CxcYInsqOkhwgfmHMbepq3ndRRIrN97IDDMutT5peTLSwpsmME+202Tg12TL7aGMyeNfcRxJkm3nHvXXKSAu1fJKXPvTQZZRxctX9GQ+2iYBhB57WnmtvfzgfcrAdZTXH3Mh08xRB+Uv/VqupLhm9Fgs/+IVUyi0AezsL6NrGItyPVcVU2HXF6xdsIFyHgb2Jhbdm2PzN/n7lcRa6lkltPBpLSWZb0N0DSHbrJw== freznicek@fedora + EOT -> null + - region = "Ostrava" -> null + } + + # module.toplevel.openstack_networking_floatingip_v2.bastion_fip will be destroyed + - resource "openstack_networking_floatingip_v2" "bastion_fip" { + - address = "195.113.243.197" -> null + - all_tags = [] -> null + - fixed_ip = "10.10.10.56" -> null + - id = "af08b5cd-ee05-460d-b388-5dc450bb34b6" -> null + - pool = "external-ipv4-general-public" -> null + - port_id = "b89c3de0-8ec8-469e-963c-7abb9ad4e1af" -> null + - region = "Ostrava" -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_network_v2.network_default[0] will be destroyed + - resource "openstack_networking_network_v2" "network_default" { + - admin_state_up = true -> null + - all_tags = [] -> null + - availability_zone_hints = [ + - "nova", + ] -> null + - external = false -> null + - id = "dcf3f972-4e43-47ae-8aa3-709d065e523a" -> null + - mtu = 8950 -> null + - name = "general-tf-demo_network" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - shared = false -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + - transparent_vlan = false -> null + } + + # module.toplevel.openstack_networking_port_v2.bastion_port will be destroyed + - resource "openstack_networking_port_v2" "bastion_port" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "10.10.10.56", + ] -> null + - all_security_group_ids = [ + - "fe4f760c-52a4-4b9c-863a-be2a00ac49be", + ] -> null + - all_tags = [] -> null + - device_id = "f20f7683-4457-40c9-bac7-3b684a7c3d6f" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "b89c3de0-8ec8-469e-963c-7abb9ad4e1af" -> null + - mac_address = "fa:16:3e:80:2d:4a" -> null + - name = "general-tf-demo-bastion-server-port" -> null + - network_id = "dcf3f972-4e43-47ae-8aa3-709d065e523a" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "fe4f760c-52a4-4b9c-863a-be2a00ac49be", + ] -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "54bc4d20-d0bf-4fd5-9467-5586a67a72f9" -> null + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[0] will be destroyed + - resource "openstack_networking_port_v2" "nodes_ports" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "10.10.10.171", + ] -> null + - all_security_group_ids = [ + - "fe4f760c-52a4-4b9c-863a-be2a00ac49be", + ] -> null + - all_tags = [] -> null + - device_id = "a1ee4124-acb9-4f15-803e-fb6daa6dd654" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "8fd0aac2-e57a-41d9-827c-ceae90718ef3" -> null + - mac_address = "fa:16:3e:e9:8d:1c" -> null + - name = "general-tf-demo_server_port_1" -> null + - network_id = "dcf3f972-4e43-47ae-8aa3-709d065e523a" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "fe4f760c-52a4-4b9c-863a-be2a00ac49be", + ] -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "54bc4d20-d0bf-4fd5-9467-5586a67a72f9" -> null + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[1] will be destroyed + - resource "openstack_networking_port_v2" "nodes_ports" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "10.10.10.36", + ] -> null + - all_security_group_ids = [ + - "fe4f760c-52a4-4b9c-863a-be2a00ac49be", + ] -> null + - all_tags = [] -> null + - device_id = "79c4c4e0-5237-43d1-8e13-0c1c1428b606" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "9e517aee-1ad8-478c-8db8-0f7f86be42c2" -> null + - mac_address = "fa:16:3e:fb:4f:fc" -> null + - name = "general-tf-demo_server_port_2" -> null + - network_id = "dcf3f972-4e43-47ae-8aa3-709d065e523a" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "fe4f760c-52a4-4b9c-863a-be2a00ac49be", + ] -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "54bc4d20-d0bf-4fd5-9467-5586a67a72f9" -> null + } + } + + # module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0] will be destroyed + - resource "openstack_networking_router_interface_v2" "router_default_interface" { + - force_destroy = false -> null + - id = "699e1c6f-3c53-435a-bb03-ab4a35e4b494" -> null + - port_id = "699e1c6f-3c53-435a-bb03-ab4a35e4b494" -> null + - region = "Ostrava" -> null + - router_id = "0c3d769c-ba0a-4eb2-9d7b-3d3728145996" -> null + - subnet_id = "54bc4d20-d0bf-4fd5-9467-5586a67a72f9" -> null + } + + # module.toplevel.openstack_networking_router_v2.router_default[0] will be destroyed + - resource "openstack_networking_router_v2" "router_default" { + - admin_state_up = true -> null + - all_tags = [] -> null + - availability_zone_hints = [ + - "nova", + ] -> null + - distributed = false -> null + - enable_snat = true -> null + - external_gateway = "5a778b8d-4194-48fd-880d-181aaf7222c2" -> null + - external_network_id = "5a778b8d-4194-48fd-880d-181aaf7222c2" -> null + - id = "0c3d769c-ba0a-4eb2-9d7b-3d3728145996" -> null + - name = "general-tf-demo_infra-test" -> null + - region = "Ostrava" -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + + - external_fixed_ip { + - ip_address = "195.113.243.169" -> null + - subnet_id = "a8843622-1b54-414a-918a-1861434135ce" -> null + } + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_http4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "083d26d5-718b-4196-8baa-57357bf8deab" -> null + - port_range_max = 80 -> null + - port_range_min = 80 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "fe4f760c-52a4-4b9c-863a-be2a00ac49be" -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_https4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "e48033a1-7849-4968-a50f-6f80bd2a3f3c" -> null + - port_range_max = 443 -> null + - port_range_min = 443 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "fe4f760c-52a4-4b9c-863a-be2a00ac49be" -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_icmp4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "ce5f3e79-ffcb-44e5-8d45-b12940d25361" -> null + - port_range_max = 0 -> null + - port_range_min = 0 -> null + - protocol = "icmp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "fe4f760c-52a4-4b9c-863a-be2a00ac49be" -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_ssh4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "379d9e7c-d0d6-4a0d-bafc-6607a0e520b0" -> null + - port_range_max = 22 -> null + - port_range_min = 22 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "fe4f760c-52a4-4b9c-863a-be2a00ac49be" -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_secgroup_v2.secgroup_default will be destroyed + - resource "openstack_networking_secgroup_v2" "secgroup_default" { + - all_tags = [] -> null + - description = "general-tf-demo Security group" -> null + - id = "fe4f760c-52a4-4b9c-863a-be2a00ac49be" -> null + - name = "general-tf-demo_security_group" -> null + - region = "Ostrava" -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + } + + # module.toplevel.openstack_networking_subnet_v2.subnet_default[0] will be destroyed + - resource "openstack_networking_subnet_v2" "subnet_default" { + - all_tags = [] -> null + - cidr = "10.10.10.0/24" -> null + - dns_nameservers = [ + - "1.1.1.1", + - "8.8.8.8", + ] -> null + - enable_dhcp = true -> null + - gateway_ip = "10.10.10.1" -> null + - id = "54bc4d20-d0bf-4fd5-9467-5586a67a72f9" -> null + - ip_version = 4 -> null + - name = "general-tf-demo_subnet" -> null + - network_id = "dcf3f972-4e43-47ae-8aa3-709d065e523a" -> null + - no_gateway = false -> null + - region = "Ostrava" -> null + - service_types = [] -> null + - tags = [] -> null + - tenant_id = "7587d86892f449c3b11fdedb05976007" -> null + + - allocation_pool { + - end = "10.10.10.254" -> null + - start = "10.10.10.2" -> null + } + + - allocation_pools { + - end = "10.10.10.254" -> null + - start = "10.10.10.2" -> null + } + } + +Plan: 0 to add, 0 to change, 18 to destroy. + +Do you really want to destroy all resources? + Terraform will destroy all your managed infrastructure, as shown above. + There is no undo. Only 'yes' will be accepted to confirm. + + Enter a value: yes + +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Destroying... [id=195.113.243.197/f20f7683-4457-40c9-bac7-3b684a7c3d6f/] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Destroying... [id=379d9e7c-d0d6-4a0d-bafc-6607a0e520b0] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Destroying... [id=ce5f3e79-ffcb-44e5-8d45-b12940d25361] +module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0]: Destroying... [id=699e1c6f-3c53-435a-bb03-ab4a35e4b494] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Destroying... [id=e48033a1-7849-4968-a50f-6f80bd2a3f3c] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Destroying... [id=083d26d5-718b-4196-8baa-57357bf8deab] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Destroying... [id=79c4c4e0-5237-43d1-8e13-0c1c1428b606] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Destroying... [id=a1ee4124-acb9-4f15-803e-fb6daa6dd654] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Destruction complete after 2s +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Destroying... [id=af08b5cd-ee05-460d-b388-5dc450bb34b6] +module.toplevel.openstack_compute_instance_v2.bastion: Destroying... [id=f20f7683-4457-40c9-bac7-3b684a7c3d6f] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Destruction complete after 6s +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Destruction complete after 5s +module.toplevel.openstack_networking_router_interface_v2.router_default_interface[0]: Destruction complete after 10s +module.toplevel.openstack_networking_router_v2.router_default[0]: Destroying... [id=0c3d769c-ba0a-4eb2-9d7b-3d3728145996] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Still destroying... [id=379d9e7c-d0d6-4a0d-bafc-6607a0e520b0, 10s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Still destroying... [id=e48033a1-7849-4968-a50f-6f80bd2a3f3c, 10s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Still destroying... [id=083d26d5-718b-4196-8baa-57357bf8deab, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Still destroying... [id=a1ee4124-acb9-4f15-803e-fb6daa6dd654, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Still destroying... [id=79c4c4e0-5237-43d1-8e13-0c1c1428b606, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Destruction complete after 11s +module.toplevel.openstack_compute_instance_v2.nodes[1]: Destruction complete after 11s +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Destroying... [id=8fd0aac2-e57a-41d9-827c-ceae90718ef3] +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Destroying... [id=9e517aee-1ad8-478c-8db8-0f7f86be42c2] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Destruction complete after 11s +module.toplevel.openstack_compute_instance_v2.bastion: Still destroying... [id=f20f7683-4457-40c9-bac7-3b684a7c3d6f, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.bastion: Destruction complete after 10s +module.toplevel.openstack_compute_keypair_v2.pubkey: Destroying... [id=general-tf-demo-keypair] +module.toplevel.openstack_networking_port_v2.bastion_port: Destroying... [id=b89c3de0-8ec8-469e-963c-7abb9ad4e1af] +module.toplevel.openstack_compute_keypair_v2.pubkey: Destruction complete after 0s +module.toplevel.openstack_networking_router_v2.router_default[0]: Destruction complete after 6s +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Destruction complete after 16s +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Destruction complete after 5s +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Destruction complete after 5s +module.toplevel.openstack_networking_port_v2.bastion_port: Destruction complete after 6s +module.toplevel.openstack_networking_subnet_v2.subnet_default[0]: Destroying... [id=54bc4d20-d0bf-4fd5-9467-5586a67a72f9] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Still destroying... [id=379d9e7c-d0d6-4a0d-bafc-6607a0e520b0, 20s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Destruction complete after 21s +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Destroying... [id=fe4f760c-52a4-4b9c-863a-be2a00ac49be] +module.toplevel.openstack_networking_subnet_v2.subnet_default[0]: Destruction complete after 8s +module.toplevel.openstack_networking_network_v2.network_default[0]: Destroying... [id=dcf3f972-4e43-47ae-8aa3-709d065e523a] +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Destruction complete after 8s +module.toplevel.openstack_networking_network_v2.network_default[0]: Destruction complete after 5s + +Destroy complete! Resources: 18 destroyed. +[freznicek@lenovo-t14 terraform 0]$ diff --git a/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-personal-project-no-wrapper.log b/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-personal-project-no-wrapper.log new file mode 100644 index 0000000000000000000000000000000000000000..45e343abac20b8d7c1f6cf8f0fe8b08a4a56a980 --- /dev/null +++ b/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-personal-project-no-wrapper.log @@ -0,0 +1,809 @@ +[freznicek@lenovo-t14 terraform 0]$ source ~/conf/g2-prod-ostrava-freznicek-all-roles.sh.inc +[freznicek@lenovo-t14 terraform 0]$ terraform init + +Initializing the backend... +Initializing modules... + +Initializing provider plugins... +- Reusing previous version of terraform-provider-openstack/openstack from the dependency lock file +- Using previously-installed terraform-provider-openstack/openstack v1.52.1 + +Terraform has been successfully initialized! + +You may now begin working with Terraform. Try running "terraform plan" to see +any changes that are required for your infrastructure. All Terraform commands +should now work. + +If you ever set or change modules or backend configuration for Terraform, +rerun this command to reinitialize your working directory. If you forget, other +commands will detect it and remind you to do so if necessary. +[freznicek@lenovo-t14 terraform 0]$ terraform validate +Success! The configuration is valid. + +[freznicek@lenovo-t14 terraform 0]$ terraform plan --out personal-project.plan --var-file=personal-projects.tfvars +module.toplevel.data.openstack_networking_network_v2.external_network: Reading... +module.toplevel.data.openstack_networking_network_v2.internal_shared_personal_network[0]: Reading... +module.toplevel.data.openstack_images_image_v2.nodes_image: Reading... +module.toplevel.data.openstack_networking_subnet_v2.internal_shared_personal_subnet[0]: Reading... +module.toplevel.data.openstack_networking_subnet_v2.internal_shared_personal_subnet[0]: Read complete after 1s [id=3170bacf-72e9-418f-8b0c-72f2e67eefd1] +module.toplevel.data.openstack_networking_network_v2.internal_shared_personal_network[0]: Read complete after 1s [id=968fe5cf-e7b3-4d47-8239-d6f3ea2edd16] +module.toplevel.data.openstack_networking_network_v2.external_network: Read complete after 1s [id=5a778b8d-4194-48fd-880d-181aaf7222c2] +module.toplevel.data.openstack_images_image_v2.nodes_image: Read complete after 1s [id=9a071dba-67d5-445f-9d32-0f56360fb10f] + +Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with +the following symbols: + + create + +Terraform will perform the following actions: + + # module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate will be created + + resource "openstack_compute_floatingip_associate_v2" "bastion_fip_associate" { + + floating_ip = (known after apply) + + id = (known after apply) + + instance_id = (known after apply) + + region = (known after apply) + } + + # module.toplevel.openstack_compute_instance_v2.bastion will be created + + resource "openstack_compute_instance_v2" "bastion" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "standard.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-bastion-server" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "c875cd218164c30103ab9399e7237ce0745df6ef" + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[0] will be created + + resource "openstack_compute_instance_v2" "nodes" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "e1.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-server-1" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "4f71dc6cb6cef198c6b7be755b918c12ed196042" + + + block_device { + + boot_index = 0 + + delete_on_termination = true + + destination_type = "local" + + multiattach = false + + source_type = "image" + + uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" + + volume_size = 10 + } + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[1] will be created + + resource "openstack_compute_instance_v2" "nodes" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "e1.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-server-2" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "02ba299fe90493a6657b8efdc54727f3ceceb1eb" + + + block_device { + + boot_index = 0 + + delete_on_termination = true + + destination_type = "local" + + multiattach = false + + source_type = "image" + + uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" + + volume_size = 10 + } + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + } + } + + # module.toplevel.openstack_compute_keypair_v2.pubkey will be created + + resource "openstack_compute_keypair_v2" "pubkey" { + + fingerprint = (known after apply) + + id = (known after apply) + + name = "general-tf-demo-keypair" + + private_key = (sensitive value) + + public_key = <<-EOT + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCh5m8MwPW2mSXPFj0P3SSnAjukeQinvdESJfUeVqxOLozx3uAprm+ghPlun4V0mqfIfs6SmJM2wN8oDjd18yJVgCc1tfaSTDYDnVdrVPzWQYDdCqca0a3z+fXuK/sffv+9SH4LdNGqm6wA6xjJAbp8HbsnUNbcxs9bt9GJToxRjVCHjawJxlBBUemuYU7x7B8tdq3W5Fxtc9dIEcpO7NLvVujSSzbTwxVANSpOsbhroN6IQP299hB7Ggoa7P0MNaJa9VHJSU4Z6N7lYDrMG5gkm6LxL6s37ljyQS7IVDNKbhj1WrWfxAWrYtQy5alzisa7uuaxb1dOwEEWzZI5Z59T79cZActsJJPf6e4zurYo8Tqw9vpJId8ohDEQVnmb5asDGMz5G8xXa4G98McVYL1766fN1FxflYLIVRi7uPTLjN76COh/Q/ZxYuByFYl62VY+vT3CxcYInsqOkhwgfmHMbepq3ndRRIrN97IDDMutT5peTLSwpsmME+202Tg12TL7aGMyeNfcRxJkm3nHvXXKSAu1fJKXPvTQZZRxctX9GQ+2iYBhB57WnmtvfzgfcrAdZTXH3Mh08xRB+Uv/VqupLhm9Fgs/+IVUyi0AezsL6NrGItyPVcVU2HXF6xdsIFyHgb2Jhbdm2PzN/n7lcRa6lkltPBpLSWZb0N0DSHbrJw== freznicek@fedora + EOT + + region = (known after apply) + + user_id = (known after apply) + } + + # module.toplevel.openstack_networking_floatingip_v2.bastion_fip will be created + + resource "openstack_networking_floatingip_v2" "bastion_fip" { + + address = (known after apply) + + all_tags = (known after apply) + + dns_domain = (known after apply) + + dns_name = (known after apply) + + fixed_ip = (known after apply) + + id = (known after apply) + + pool = "external-ipv4-general-public" + + port_id = (known after apply) + + region = (known after apply) + + subnet_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_port_v2.bastion_port will be created + + resource "openstack_networking_port_v2" "bastion_port" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo-bastion-server-port" + + network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[0] will be created + + resource "openstack_networking_port_v2" "nodes_ports" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo_server_port_1" + + network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[1] will be created + + resource "openstack_networking_port_v2" "nodes_ports" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo_server_port_2" + + network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" + } + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_http4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 80 + + port_range_min = 80 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_https4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 443 + + port_range_min = 443 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_icmp4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 0 + + port_range_min = 0 + + protocol = "icmp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_ssh4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 22 + + port_range_min = 22 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_v2.secgroup_default will be created + + resource "openstack_networking_secgroup_v2" "secgroup_default" { + + all_tags = (known after apply) + + description = "general-tf-demo Security group" + + id = (known after apply) + + name = "general-tf-demo_security_group" + + region = (known after apply) + + tenant_id = (known after apply) + } + +Plan: 14 to add, 0 to change, 0 to destroy. + +─────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + +Saved the plan to: personal-project.plan + +To perform exactly these actions, run the following command to apply: + terraform apply "personal-project.plan" +[freznicek@lenovo-t14 terraform 0]$ terraform apply "personal-project.plan" +module.toplevel.openstack_compute_keypair_v2.pubkey: Creating... +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Creating... +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Creating... +module.toplevel.openstack_compute_keypair_v2.pubkey: Creation complete after 1s [id=general-tf-demo-keypair] +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Creation complete after 1s [id=1a3db219-cb03-4e1a-9418-8a638bb3a4cf] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Creating... +module.toplevel.openstack_networking_port_v2.bastion_port: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Creation complete after 0s [id=7a02eeb5-8022-45b4-991b-289f46a255a9] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Creation complete after 1s [id=6a84e08f-c025-4d31-8a58-a982edc594ca] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Creation complete after 1s [id=915f5422-1869-4c82-aa73-29fd5f9b90a0] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Creation complete after 1s [id=6fd4e03e-1f8b-4c9d-b70b-395767545498] +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Creation complete after 7s [id=4bf848b8-867c-422f-8701-0c253b2a7b56] +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Creation complete after 6s [id=e5b9583a-aae4-4d14-ad58-85298c9a6697] +module.toplevel.openstack_networking_port_v2.bastion_port: Creation complete after 6s [id=38802910-0f68-405b-b1ae-232297ff6a26] +module.toplevel.openstack_compute_instance_v2.bastion: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Creation complete after 6s [id=cc27a165-09bc-493a-a028-2a1e9f06c5b1] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Creating... +module.toplevel.openstack_compute_instance_v2.nodes[0]: Creating... +module.toplevel.openstack_compute_instance_v2.bastion: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.bastion: Creation complete after 11s [id=c7f8f0ba-915a-40e6-8645-2542673351fb] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Creating... +module.toplevel.openstack_compute_instance_v2.nodes[0]: Creation complete after 11s [id=38da3e58-0638-4115-a0d5-f7721e12df85] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Creation complete after 12s [id=f96f232b-03e8-45d7-adf7-258f9337a500] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Creation complete after 2s [id=195.113.243.117/c7f8f0ba-915a-40e6-8645-2542673351fb/] + +Apply complete! Resources: 14 added, 0 changed, 0 destroyed. +[freznicek@lenovo-t14 terraform 0]$ openstack server list ++--------------------------------------+--------------------------------+--------+------------------------------------------------------------+---------------------+----------------+ +| ID | Name | Status | Networks | Image | Flavor | ++--------------------------------------+--------------------------------+--------+------------------------------------------------------------+---------------------+----------------+ +| 38da3e58-0638-4115-a0d5-f7721e12df85 | general-tf-demo-server-1 | ACTIVE | internal-ipv4-general-private=172.22.3.30 | ubuntu-jammy-x86_64 | e1.small | +| c7f8f0ba-915a-40e6-8645-2542673351fb | general-tf-demo-bastion-server | ACTIVE | internal-ipv4-general-private=172.22.2.46, 195.113.243.117 | ubuntu-jammy-x86_64 | standard.small | +| f96f232b-03e8-45d7-adf7-258f9337a500 | general-tf-demo-server-2 | ACTIVE | internal-ipv4-general-private=172.22.2.180 | ubuntu-jammy-x86_64 | e1.small | ++--------------------------------------+--------------------------------+--------+------------------------------------------------------------+---------------------+----------------+ +[freznicek@lenovo-t14 terraform 0]$ ssh ubuntu@195.113.243.117 'uname -a;uptime' +The authenticity of host '195.113.243.117 (195.113.243.117)' can't be established. +ED25519 key fingerprint is SHA256:mtll/X2XfIO5QginmB06RQmqNpOnPFEYHCZKgW111r4. +This key is not known by any other names +Are you sure you want to continue connecting (yes/no/[fingerprint])? yes +Warning: Permanently added '195.113.243.117' (ED25519) to the list of known hosts. +Linux general-tf-demo-bastion-server 5.15.0-73-generic #80-Ubuntu SMP Mon May 15 15:18:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux + 17:33:13 up 2 min, 0 users, load average: 0.22, 0.20, 0.08 +[freznicek@lenovo-t14 terraform 255]$ terraform destroy +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Refreshing state... [id=1a3db219-cb03-4e1a-9418-8a638bb3a4cf] +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Refreshing state... [id=4bf848b8-867c-422f-8701-0c253b2a7b56] +module.toplevel.data.openstack_networking_network_v2.external_network: Reading... +module.toplevel.data.openstack_images_image_v2.nodes_image: Reading... +module.toplevel.openstack_compute_keypair_v2.pubkey: Refreshing state... [id=general-tf-demo-keypair] +module.toplevel.data.openstack_images_image_v2.nodes_image: Read complete after 1s [id=9a071dba-67d5-445f-9d32-0f56360fb10f] +module.toplevel.data.openstack_networking_network_v2.external_network: Read complete after 1s [id=5a778b8d-4194-48fd-880d-181aaf7222c2] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Refreshing state... [id=915f5422-1869-4c82-aa73-29fd5f9b90a0] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Refreshing state... [id=6fd4e03e-1f8b-4c9d-b70b-395767545498] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Refreshing state... [id=7a02eeb5-8022-45b4-991b-289f46a255a9] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Refreshing state... [id=6a84e08f-c025-4d31-8a58-a982edc594ca] +module.toplevel.openstack_networking_port_v2.bastion_port: Refreshing state... [id=38802910-0f68-405b-b1ae-232297ff6a26] +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Refreshing state... [id=e5b9583a-aae4-4d14-ad58-85298c9a6697] +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Refreshing state... [id=cc27a165-09bc-493a-a028-2a1e9f06c5b1] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Refreshing state... [id=38da3e58-0638-4115-a0d5-f7721e12df85] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Refreshing state... [id=f96f232b-03e8-45d7-adf7-258f9337a500] +module.toplevel.openstack_compute_instance_v2.bastion: Refreshing state... [id=c7f8f0ba-915a-40e6-8645-2542673351fb] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Refreshing state... [id=195.113.243.117/c7f8f0ba-915a-40e6-8645-2542673351fb/] + +Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with +the following symbols: + - destroy + +Terraform will perform the following actions: + + # module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate will be destroyed + - resource "openstack_compute_floatingip_associate_v2" "bastion_fip_associate" { + - floating_ip = "195.113.243.117" -> null + - id = "195.113.243.117/c7f8f0ba-915a-40e6-8645-2542673351fb/" -> null + - instance_id = "c7f8f0ba-915a-40e6-8645-2542673351fb" -> null + - region = "Ostrava" -> null + } + + # module.toplevel.openstack_compute_instance_v2.bastion will be destroyed + - resource "openstack_compute_instance_v2" "bastion" { + - access_ip_v4 = "172.22.2.46" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:30:42 +0000 UTC" -> null + - flavor_id = "f5bb56cc-297d-4f1b-bf17-202fa0a8e9a3" -> null + - flavor_name = "standard.small" -> null + - force_delete = false -> null + - id = "c7f8f0ba-915a-40e6-8645-2542673351fb" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-bastion-server" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:30:47 +0000 UTC" -> null + - user_data = "c875cd218164c30103ab9399e7237ce0745df6ef" -> null + + - network { + - access_network = false -> null + - fixed_ip_v4 = "172.22.2.46" -> null + - mac = "fa:16:3e:e2:e1:79" -> null + - name = "internal-ipv4-general-private" -> null + - port = "38802910-0f68-405b-b1ae-232297ff6a26" -> null + - uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[0] will be destroyed + - resource "openstack_compute_instance_v2" "nodes" { + - access_ip_v4 = "172.22.3.30" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:30:42 +0000 UTC" -> null + - flavor_id = "77f5fa9b-255a-4bff-af57-be0bcf0dba03" -> null + - flavor_name = "e1.small" -> null + - force_delete = false -> null + - id = "38da3e58-0638-4115-a0d5-f7721e12df85" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-server-1" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:30:47 +0000 UTC" -> null + - user_data = "4f71dc6cb6cef198c6b7be755b918c12ed196042" -> null + + - block_device { + - boot_index = 0 -> null + - delete_on_termination = true -> null + - destination_type = "local" -> null + - multiattach = false -> null + - source_type = "image" -> null + - uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - volume_size = 10 -> null + } + + - network { + - access_network = false -> null + - fixed_ip_v4 = "172.22.3.30" -> null + - mac = "fa:16:3e:3f:75:61" -> null + - name = "internal-ipv4-general-private" -> null + - port = "e5b9583a-aae4-4d14-ad58-85298c9a6697" -> null + - uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[1] will be destroyed + - resource "openstack_compute_instance_v2" "nodes" { + - access_ip_v4 = "172.22.2.180" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:30:42 +0000 UTC" -> null + - flavor_id = "77f5fa9b-255a-4bff-af57-be0bcf0dba03" -> null + - flavor_name = "e1.small" -> null + - force_delete = false -> null + - id = "f96f232b-03e8-45d7-adf7-258f9337a500" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-server-2" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:30:46 +0000 UTC" -> null + - user_data = "02ba299fe90493a6657b8efdc54727f3ceceb1eb" -> null + + - block_device { + - boot_index = 0 -> null + - delete_on_termination = true -> null + - destination_type = "local" -> null + - multiattach = false -> null + - source_type = "image" -> null + - uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - volume_size = 10 -> null + } + + - network { + - access_network = false -> null + - fixed_ip_v4 = "172.22.2.180" -> null + - mac = "fa:16:3e:61:55:31" -> null + - name = "internal-ipv4-general-private" -> null + - port = "cc27a165-09bc-493a-a028-2a1e9f06c5b1" -> null + - uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + } + } + + # module.toplevel.openstack_compute_keypair_v2.pubkey will be destroyed + - resource "openstack_compute_keypair_v2" "pubkey" { + - fingerprint = "75:e0:a4:d6:4c:76:ba:21:f1:d1:75:c8:75:22:93:4f" -> null + - id = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-keypair" -> null + - public_key = <<-EOT + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCh5m8MwPW2mSXPFj0P3SSnAjukeQinvdESJfUeVqxOLozx3uAprm+ghPlun4V0mqfIfs6SmJM2wN8oDjd18yJVgCc1tfaSTDYDnVdrVPzWQYDdCqca0a3z+fXuK/sffv+9SH4LdNGqm6wA6xjJAbp8HbsnUNbcxs9bt9GJToxRjVCHjawJxlBBUemuYU7x7B8tdq3W5Fxtc9dIEcpO7NLvVujSSzbTwxVANSpOsbhroN6IQP299hB7Ggoa7P0MNaJa9VHJSU4Z6N7lYDrMG5gkm6LxL6s37ljyQS7IVDNKbhj1WrWfxAWrYtQy5alzisa7uuaxb1dOwEEWzZI5Z59T79cZActsJJPf6e4zurYo8Tqw9vpJId8ohDEQVnmb5asDGMz5G8xXa4G98McVYL1766fN1FxflYLIVRi7uPTLjN76COh/Q/ZxYuByFYl62VY+vT3CxcYInsqOkhwgfmHMbepq3ndRRIrN97IDDMutT5peTLSwpsmME+202Tg12TL7aGMyeNfcRxJkm3nHvXXKSAu1fJKXPvTQZZRxctX9GQ+2iYBhB57WnmtvfzgfcrAdZTXH3Mh08xRB+Uv/VqupLhm9Fgs/+IVUyi0AezsL6NrGItyPVcVU2HXF6xdsIFyHgb2Jhbdm2PzN/n7lcRa6lkltPBpLSWZb0N0DSHbrJw== freznicek@fedora + EOT -> null + - region = "Ostrava" -> null + } + + # module.toplevel.openstack_networking_floatingip_v2.bastion_fip will be destroyed + - resource "openstack_networking_floatingip_v2" "bastion_fip" { + - address = "195.113.243.117" -> null + - all_tags = [] -> null + - fixed_ip = "172.22.2.46" -> null + - id = "4bf848b8-867c-422f-8701-0c253b2a7b56" -> null + - pool = "external-ipv4-general-public" -> null + - port_id = "38802910-0f68-405b-b1ae-232297ff6a26" -> null + - region = "Ostrava" -> null + - tags = [] -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + + # module.toplevel.openstack_networking_port_v2.bastion_port will be destroyed + - resource "openstack_networking_port_v2" "bastion_port" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "172.22.2.46", + ] -> null + - all_security_group_ids = [ + - "1a3db219-cb03-4e1a-9418-8a638bb3a4cf", + ] -> null + - all_tags = [] -> null + - device_id = "c7f8f0ba-915a-40e6-8645-2542673351fb" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "38802910-0f68-405b-b1ae-232297ff6a26" -> null + - mac_address = "fa:16:3e:e2:e1:79" -> null + - name = "general-tf-demo-bastion-server-port" -> null + - network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "1a3db219-cb03-4e1a-9418-8a638bb3a4cf", + ] -> null + - tags = [] -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" -> null + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[0] will be destroyed + - resource "openstack_networking_port_v2" "nodes_ports" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "172.22.3.30", + ] -> null + - all_security_group_ids = [ + - "1a3db219-cb03-4e1a-9418-8a638bb3a4cf", + ] -> null + - all_tags = [] -> null + - device_id = "38da3e58-0638-4115-a0d5-f7721e12df85" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "e5b9583a-aae4-4d14-ad58-85298c9a6697" -> null + - mac_address = "fa:16:3e:3f:75:61" -> null + - name = "general-tf-demo_server_port_1" -> null + - network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "1a3db219-cb03-4e1a-9418-8a638bb3a4cf", + ] -> null + - tags = [] -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" -> null + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[1] will be destroyed + - resource "openstack_networking_port_v2" "nodes_ports" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "172.22.2.180", + ] -> null + - all_security_group_ids = [ + - "1a3db219-cb03-4e1a-9418-8a638bb3a4cf", + ] -> null + - all_tags = [] -> null + - device_id = "f96f232b-03e8-45d7-adf7-258f9337a500" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "cc27a165-09bc-493a-a028-2a1e9f06c5b1" -> null + - mac_address = "fa:16:3e:61:55:31" -> null + - name = "general-tf-demo_server_port_2" -> null + - network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "1a3db219-cb03-4e1a-9418-8a638bb3a4cf", + ] -> null + - tags = [] -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" -> null + } + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_http4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "6a84e08f-c025-4d31-8a58-a982edc594ca" -> null + - port_range_max = 80 -> null + - port_range_min = 80 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "1a3db219-cb03-4e1a-9418-8a638bb3a4cf" -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_https4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "915f5422-1869-4c82-aa73-29fd5f9b90a0" -> null + - port_range_max = 443 -> null + - port_range_min = 443 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "1a3db219-cb03-4e1a-9418-8a638bb3a4cf" -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_icmp4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "6fd4e03e-1f8b-4c9d-b70b-395767545498" -> null + - port_range_max = 0 -> null + - port_range_min = 0 -> null + - protocol = "icmp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "1a3db219-cb03-4e1a-9418-8a638bb3a4cf" -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_ssh4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "7a02eeb5-8022-45b4-991b-289f46a255a9" -> null + - port_range_max = 22 -> null + - port_range_min = 22 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "1a3db219-cb03-4e1a-9418-8a638bb3a4cf" -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + + # module.toplevel.openstack_networking_secgroup_v2.secgroup_default will be destroyed + - resource "openstack_networking_secgroup_v2" "secgroup_default" { + - all_tags = [] -> null + - description = "general-tf-demo Security group" -> null + - id = "1a3db219-cb03-4e1a-9418-8a638bb3a4cf" -> null + - name = "general-tf-demo_security_group" -> null + - region = "Ostrava" -> null + - tags = [] -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + +Plan: 0 to add, 0 to change, 14 to destroy. + +Do you really want to destroy all resources? + Terraform will destroy all your managed infrastructure, as shown above. + There is no undo. Only 'yes' will be accepted to confirm. + + Enter a value: yes + +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Destroying... [id=195.113.243.117/c7f8f0ba-915a-40e6-8645-2542673351fb/] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Destroying... [id=6a84e08f-c025-4d31-8a58-a982edc594ca] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Destroying... [id=915f5422-1869-4c82-aa73-29fd5f9b90a0] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Destroying... [id=7a02eeb5-8022-45b4-991b-289f46a255a9] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Destroying... [id=38da3e58-0638-4115-a0d5-f7721e12df85] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Destroying... [id=6fd4e03e-1f8b-4c9d-b70b-395767545498] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Destroying... [id=f96f232b-03e8-45d7-adf7-258f9337a500] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Destruction complete after 2s +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Destroying... [id=4bf848b8-867c-422f-8701-0c253b2a7b56] +module.toplevel.openstack_compute_instance_v2.bastion: Destroying... [id=c7f8f0ba-915a-40e6-8645-2542673351fb] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Destruction complete after 6s +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Destruction complete after 6s +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Still destroying... [id=7a02eeb5-8022-45b4-991b-289f46a255a9, 10s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Still destroying... [id=915f5422-1869-4c82-aa73-29fd5f9b90a0, 10s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Still destroying... [id=6fd4e03e-1f8b-4c9d-b70b-395767545498, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Still destroying... [id=38da3e58-0638-4115-a0d5-f7721e12df85, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Still destroying... [id=f96f232b-03e8-45d7-adf7-258f9337a500, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Destruction complete after 11s +module.toplevel.openstack_compute_instance_v2.nodes[0]: Destruction complete after 11s +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Destroying... [id=cc27a165-09bc-493a-a028-2a1e9f06c5b1] +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Destroying... [id=e5b9583a-aae4-4d14-ad58-85298c9a6697] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Destruction complete after 11s +module.toplevel.openstack_compute_instance_v2.bastion: Still destroying... [id=c7f8f0ba-915a-40e6-8645-2542673351fb, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.bastion: Destruction complete after 11s +module.toplevel.openstack_compute_keypair_v2.pubkey: Destroying... [id=general-tf-demo-keypair] +module.toplevel.openstack_networking_port_v2.bastion_port: Destroying... [id=38802910-0f68-405b-b1ae-232297ff6a26] +module.toplevel.openstack_compute_keypair_v2.pubkey: Destruction complete after 0s +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Destruction complete after 16s +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Destruction complete after 5s +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Destruction complete after 6s +module.toplevel.openstack_networking_port_v2.bastion_port: Destruction complete after 5s +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Still destroying... [id=6fd4e03e-1f8b-4c9d-b70b-395767545498, 20s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Destruction complete after 21s +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Destroying... [id=1a3db219-cb03-4e1a-9418-8a638bb3a4cf] +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Destruction complete after 9s + +Destroy complete! Resources: 14 destroyed. +[freznicek@lenovo-t14 terraform 0]$ diff --git a/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-personal-project-wrapper.log b/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-personal-project-wrapper.log new file mode 100644 index 0000000000000000000000000000000000000000..8efa0392a987033ad350766556829fafe5e00b67 --- /dev/null +++ b/clouds/g2/ostrava/general/terraform/terraform-2tier_public_bastion_private_vm_farm-personal-project-wrapper.log @@ -0,0 +1,835 @@ +[freznicek@lenovo-t14 terraform 0]$ source ~/conf/g2-prod-ostrava-freznicek-all-roles.sh.inc +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh detect-cloud + +Using OpenStack cloud: +"Ostrava","identity","3.14","CURRENT","https://identity.ostrava.openstack.cloud.e-infra.cz/v3/","","" +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh detect-project + +Using OpenStack personal project named: c2bf29961b887b399a456269bbcb7aedd3127a26@einfra.cesnet.cz +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh validate-tools + +Using commandline tools: +openstack --version: + openstack 5.5.0 +bash --version: + GNU bash, verze 5.2.15(1)-release (x86_64-redhat-linux-gnu) +awk -W version: + GNU Awk 5.1.1, API: 3.1 (GNU MPFR 4.1.0-p13, GNU MP 6.2.1) +ssh -V: + OpenSSH_8.8p1, OpenSSL 3.0.8 7 Feb 2023 +which ssh-keygen: + /usr/bin/ssh-keygen +ncat --version: + Ncat: Version 7.93 ( https://nmap.org/ncat ) +grep --version: + grep (GNU grep) 3.7 +terraform version: + Terraform v1.5.2 +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh init + +Initializing the backend... +Initializing modules... + +Initializing provider plugins... +- Reusing previous version of terraform-provider-openstack/openstack from the dependency lock file +- Using previously-installed terraform-provider-openstack/openstack v1.52.1 + +Terraform has been successfully initialized! + +You may now begin working with Terraform. Try running "terraform plan" to see +any changes that are required for your infrastructure. All Terraform commands +should now work. + +If you ever set or change modules or backend configuration for Terraform, +rerun this command to reinitialize your working directory. If you forget, other +commands will detect it and remind you to do so if necessary. +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh validate +Success! The configuration is valid. + +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh plan --out personal-project.plan +module.toplevel.data.openstack_networking_network_v2.external_network: Reading... +module.toplevel.data.openstack_networking_network_v2.internal_shared_personal_network[0]: Reading... +module.toplevel.data.openstack_images_image_v2.nodes_image: Reading... +module.toplevel.data.openstack_networking_subnet_v2.internal_shared_personal_subnet[0]: Reading... +module.toplevel.data.openstack_networking_network_v2.external_network: Read complete after 0s [id=5a778b8d-4194-48fd-880d-181aaf7222c2] +module.toplevel.data.openstack_networking_subnet_v2.internal_shared_personal_subnet[0]: Read complete after 0s [id=3170bacf-72e9-418f-8b0c-72f2e67eefd1] +module.toplevel.data.openstack_networking_network_v2.internal_shared_personal_network[0]: Read complete after 0s [id=968fe5cf-e7b3-4d47-8239-d6f3ea2edd16] +module.toplevel.data.openstack_images_image_v2.nodes_image: Read complete after 0s [id=9a071dba-67d5-445f-9d32-0f56360fb10f] + +Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with +the following symbols: + + create + +Terraform will perform the following actions: + + # module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate will be created + + resource "openstack_compute_floatingip_associate_v2" "bastion_fip_associate" { + + floating_ip = (known after apply) + + id = (known after apply) + + instance_id = (known after apply) + + region = (known after apply) + } + + # module.toplevel.openstack_compute_instance_v2.bastion will be created + + resource "openstack_compute_instance_v2" "bastion" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "standard.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-bastion-server" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "c875cd218164c30103ab9399e7237ce0745df6ef" + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[0] will be created + + resource "openstack_compute_instance_v2" "nodes" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "e1.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-server-1" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "4f71dc6cb6cef198c6b7be755b918c12ed196042" + + + block_device { + + boot_index = 0 + + delete_on_termination = true + + destination_type = "local" + + multiattach = false + + source_type = "image" + + uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" + + volume_size = 10 + } + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[1] will be created + + resource "openstack_compute_instance_v2" "nodes" { + + access_ip_v4 = (known after apply) + + access_ip_v6 = (known after apply) + + all_metadata = (known after apply) + + all_tags = (known after apply) + + availability_zone = (known after apply) + + created = (known after apply) + + flavor_id = (known after apply) + + flavor_name = "e1.small" + + force_delete = false + + id = (known after apply) + + image_id = (known after apply) + + image_name = "ubuntu-jammy-x86_64" + + key_pair = "general-tf-demo-keypair" + + name = "general-tf-demo-server-2" + + power_state = "active" + + region = (known after apply) + + security_groups = [ + + "general-tf-demo_security_group", + ] + + stop_before_destroy = false + + updated = (known after apply) + + user_data = "02ba299fe90493a6657b8efdc54727f3ceceb1eb" + + + block_device { + + boot_index = 0 + + delete_on_termination = true + + destination_type = "local" + + multiattach = false + + source_type = "image" + + uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" + + volume_size = 10 + } + + + network { + + access_network = false + + fixed_ip_v4 = (known after apply) + + fixed_ip_v6 = (known after apply) + + floating_ip = (known after apply) + + mac = (known after apply) + + name = (known after apply) + + port = (known after apply) + + uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + } + } + + # module.toplevel.openstack_compute_keypair_v2.pubkey will be created + + resource "openstack_compute_keypair_v2" "pubkey" { + + fingerprint = (known after apply) + + id = (known after apply) + + name = "general-tf-demo-keypair" + + private_key = (sensitive value) + + public_key = <<-EOT + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCh5m8MwPW2mSXPFj0P3SSnAjukeQinvdESJfUeVqxOLozx3uAprm+ghPlun4V0mqfIfs6SmJM2wN8oDjd18yJVgCc1tfaSTDYDnVdrVPzWQYDdCqca0a3z+fXuK/sffv+9SH4LdNGqm6wA6xjJAbp8HbsnUNbcxs9bt9GJToxRjVCHjawJxlBBUemuYU7x7B8tdq3W5Fxtc9dIEcpO7NLvVujSSzbTwxVANSpOsbhroN6IQP299hB7Ggoa7P0MNaJa9VHJSU4Z6N7lYDrMG5gkm6LxL6s37ljyQS7IVDNKbhj1WrWfxAWrYtQy5alzisa7uuaxb1dOwEEWzZI5Z59T79cZActsJJPf6e4zurYo8Tqw9vpJId8ohDEQVnmb5asDGMz5G8xXa4G98McVYL1766fN1FxflYLIVRi7uPTLjN76COh/Q/ZxYuByFYl62VY+vT3CxcYInsqOkhwgfmHMbepq3ndRRIrN97IDDMutT5peTLSwpsmME+202Tg12TL7aGMyeNfcRxJkm3nHvXXKSAu1fJKXPvTQZZRxctX9GQ+2iYBhB57WnmtvfzgfcrAdZTXH3Mh08xRB+Uv/VqupLhm9Fgs/+IVUyi0AezsL6NrGItyPVcVU2HXF6xdsIFyHgb2Jhbdm2PzN/n7lcRa6lkltPBpLSWZb0N0DSHbrJw== freznicek@fedora + EOT + + region = (known after apply) + + user_id = (known after apply) + } + + # module.toplevel.openstack_networking_floatingip_v2.bastion_fip will be created + + resource "openstack_networking_floatingip_v2" "bastion_fip" { + + address = (known after apply) + + all_tags = (known after apply) + + dns_domain = (known after apply) + + dns_name = (known after apply) + + fixed_ip = (known after apply) + + id = (known after apply) + + pool = "external-ipv4-general-public" + + port_id = (known after apply) + + region = (known after apply) + + subnet_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_port_v2.bastion_port will be created + + resource "openstack_networking_port_v2" "bastion_port" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo-bastion-server-port" + + network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[0] will be created + + resource "openstack_networking_port_v2" "nodes_ports" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo_server_port_1" + + network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[1] will be created + + resource "openstack_networking_port_v2" "nodes_ports" { + + admin_state_up = true + + all_fixed_ips = (known after apply) + + all_security_group_ids = (known after apply) + + all_tags = (known after apply) + + device_id = (known after apply) + + device_owner = (known after apply) + + dns_assignment = (known after apply) + + dns_name = (known after apply) + + id = (known after apply) + + mac_address = (known after apply) + + name = "general-tf-demo_server_port_2" + + network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" + + port_security_enabled = (known after apply) + + qos_policy_id = (known after apply) + + region = (known after apply) + + security_group_ids = (known after apply) + + tenant_id = (known after apply) + + + fixed_ip { + + subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" + } + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_http4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 80 + + port_range_min = 80 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_https4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 443 + + port_range_min = 443 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_icmp4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 0 + + port_range_min = 0 + + protocol = "icmp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4 will be created + + resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_ssh4" { + + direction = "ingress" + + ethertype = "IPv4" + + id = (known after apply) + + port_range_max = 22 + + port_range_min = 22 + + protocol = "tcp" + + region = (known after apply) + + remote_group_id = (known after apply) + + remote_ip_prefix = "0.0.0.0/0" + + security_group_id = (known after apply) + + tenant_id = (known after apply) + } + + # module.toplevel.openstack_networking_secgroup_v2.secgroup_default will be created + + resource "openstack_networking_secgroup_v2" "secgroup_default" { + + all_tags = (known after apply) + + description = "general-tf-demo Security group" + + id = (known after apply) + + name = "general-tf-demo_security_group" + + region = (known after apply) + + tenant_id = (known after apply) + } + +Plan: 14 to add, 0 to change, 0 to destroy. + +─────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + +Saved the plan to: personal-project.plan + +To perform exactly these actions, run the following command to apply: + terraform apply "personal-project.plan" +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh apply "personal-project.plan" +module.toplevel.openstack_compute_keypair_v2.pubkey: Creating... +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Creating... +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Creating... +module.toplevel.openstack_compute_keypair_v2.pubkey: Creation complete after 1s [id=general-tf-demo-keypair] +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Creation complete after 1s [id=e4684b28-ae66-4451-9f33-db447363c7c0] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Creating... +module.toplevel.openstack_networking_port_v2.bastion_port: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Creating... +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Creation complete after 0s [id=3579549a-7fb3-4422-95d2-89dd2040fcbc] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Creation complete after 0s [id=0a0e1719-ebd9-4e7c-9642-1419a3410a9f] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Creation complete after 0s [id=640ed715-5d0f-4489-893d-b1cf61048034] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Creation complete after 0s [id=f8d7179a-9110-46f7-a297-df570a02378e] +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Creation complete after 5s [id=e15542db-193a-48dd-bacc-5f64b479121b] +module.toplevel.openstack_networking_port_v2.bastion_port: Creation complete after 5s [id=e37bfaea-1b7e-415f-a49d-efb1ba212b17] +module.toplevel.openstack_compute_instance_v2.bastion: Creating... +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Creation complete after 6s [id=d211bac5-ba75-412e-9ca6-84284ca7a72d] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Creating... +module.toplevel.openstack_compute_instance_v2.nodes[0]: Creating... +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Creation complete after 7s [id=04af2bfb-fbb1-4ad4-9c60-aa37fea9b8c6] +module.toplevel.openstack_compute_instance_v2.bastion: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Still creating... [10s elapsed] +module.toplevel.openstack_compute_instance_v2.bastion: Creation complete after 12s [id=044e75f2-81ae-4186-95e0-409b186c06f1] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Creating... +module.toplevel.openstack_compute_instance_v2.nodes[0]: Creation complete after 11s [id=228a7292-8ec0-4a4b-b25a-06f4b4917aef] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Creation complete after 11s [id=2c811c7a-d075-4186-b143-79ac3a06eaeb] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Creation complete after 1s [id=195.113.243.143/044e75f2-81ae-4186-95e0-409b186c06f1/] + +Apply complete! Resources: 14 added, 0 changed, 0 destroyed. +[freznicek@lenovo-t14 terraform 0]$ openstack server list ++--------------------------------------+--------------------------------+--------+-----------------------------------------------------------+---------------------+----------------+ +| ID | Name | Status | Networks | Image | Flavor | ++--------------------------------------+--------------------------------+--------+-----------------------------------------------------------+---------------------+----------------+ +| 228a7292-8ec0-4a4b-b25a-06f4b4917aef | general-tf-demo-server-1 | ACTIVE | internal-ipv4-general-private=172.22.1.47 | ubuntu-jammy-x86_64 | e1.small | +| 2c811c7a-d075-4186-b143-79ac3a06eaeb | general-tf-demo-server-2 | ACTIVE | internal-ipv4-general-private=172.22.3.35 | ubuntu-jammy-x86_64 | e1.small | +| 044e75f2-81ae-4186-95e0-409b186c06f1 | general-tf-demo-bastion-server | ACTIVE | internal-ipv4-general-private=172.22.1.8, 195.113.243.143 | ubuntu-jammy-x86_64 | standard.small | ++--------------------------------------+--------------------------------+--------+-----------------------------------------------------------+---------------------+----------------+ +[freznicek@lenovo-t14 terraform 0]$ ssh ubuntu@195.113.243.143 'uname -a;uptime' +The authenticity of host '195.113.243.143 (195.113.243.143)' can't be established. +ED25519 key fingerprint is SHA256:xlVZc/zsjI6Eko98QVy5V6nuBaublIyOa7xmClqdCXQ. +This key is not known by any other names +Are you sure you want to continue connecting (yes/no/[fingerprint])? yes +Warning: Permanently added '195.113.243.143' (ED25519) to the list of known hosts. +Linux general-tf-demo-bastion-server 5.15.0-73-generic #80-Ubuntu SMP Mon May 15 15:18:26 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux + 17:18:44 up 0 min, 0 users, load average: 0.79, 0.22, 0.07 +[freznicek@lenovo-t14 terraform 0]$ ./terraform.sh destroy +module.toplevel.data.openstack_networking_network_v2.external_network: Reading... +module.toplevel.openstack_compute_keypair_v2.pubkey: Refreshing state... [id=general-tf-demo-keypair] +module.toplevel.data.openstack_images_image_v2.nodes_image: Reading... +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Refreshing state... [id=e4684b28-ae66-4451-9f33-db447363c7c0] +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Refreshing state... [id=04af2bfb-fbb1-4ad4-9c60-aa37fea9b8c6] +module.toplevel.data.openstack_images_image_v2.nodes_image: Read complete after 1s [id=9a071dba-67d5-445f-9d32-0f56360fb10f] +module.toplevel.data.openstack_networking_network_v2.external_network: Read complete after 1s [id=5a778b8d-4194-48fd-880d-181aaf7222c2] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Refreshing state... [id=0a0e1719-ebd9-4e7c-9642-1419a3410a9f] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Refreshing state... [id=3579549a-7fb3-4422-95d2-89dd2040fcbc] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Refreshing state... [id=640ed715-5d0f-4489-893d-b1cf61048034] +module.toplevel.openstack_networking_port_v2.bastion_port: Refreshing state... [id=e37bfaea-1b7e-415f-a49d-efb1ba212b17] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Refreshing state... [id=f8d7179a-9110-46f7-a297-df570a02378e] +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Refreshing state... [id=d211bac5-ba75-412e-9ca6-84284ca7a72d] +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Refreshing state... [id=e15542db-193a-48dd-bacc-5f64b479121b] +module.toplevel.openstack_compute_instance_v2.bastion: Refreshing state... [id=044e75f2-81ae-4186-95e0-409b186c06f1] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Refreshing state... [id=228a7292-8ec0-4a4b-b25a-06f4b4917aef] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Refreshing state... [id=2c811c7a-d075-4186-b143-79ac3a06eaeb] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Refreshing state... [id=195.113.243.143/044e75f2-81ae-4186-95e0-409b186c06f1/] + +Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with +the following symbols: + - destroy + +Terraform will perform the following actions: + + # module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate will be destroyed + - resource "openstack_compute_floatingip_associate_v2" "bastion_fip_associate" { + - floating_ip = "195.113.243.143" -> null + - id = "195.113.243.143/044e75f2-81ae-4186-95e0-409b186c06f1/" -> null + - instance_id = "044e75f2-81ae-4186-95e0-409b186c06f1" -> null + - region = "Ostrava" -> null + } + + # module.toplevel.openstack_compute_instance_v2.bastion will be destroyed + - resource "openstack_compute_instance_v2" "bastion" { + - access_ip_v4 = "172.22.1.8" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:17:56 +0000 UTC" -> null + - flavor_id = "f5bb56cc-297d-4f1b-bf17-202fa0a8e9a3" -> null + - flavor_name = "standard.small" -> null + - force_delete = false -> null + - id = "044e75f2-81ae-4186-95e0-409b186c06f1" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-bastion-server" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:18:00 +0000 UTC" -> null + - user_data = "c875cd218164c30103ab9399e7237ce0745df6ef" -> null + + - network { + - access_network = false -> null + - fixed_ip_v4 = "172.22.1.8" -> null + - mac = "fa:16:3e:18:ca:b5" -> null + - name = "internal-ipv4-general-private" -> null + - port = "e37bfaea-1b7e-415f-a49d-efb1ba212b17" -> null + - uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[0] will be destroyed + - resource "openstack_compute_instance_v2" "nodes" { + - access_ip_v4 = "172.22.1.47" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:17:57 +0000 UTC" -> null + - flavor_id = "77f5fa9b-255a-4bff-af57-be0bcf0dba03" -> null + - flavor_name = "e1.small" -> null + - force_delete = false -> null + - id = "228a7292-8ec0-4a4b-b25a-06f4b4917aef" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-server-1" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:18:02 +0000 UTC" -> null + - user_data = "4f71dc6cb6cef198c6b7be755b918c12ed196042" -> null + + - block_device { + - boot_index = 0 -> null + - delete_on_termination = true -> null + - destination_type = "local" -> null + - multiattach = false -> null + - source_type = "image" -> null + - uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - volume_size = 10 -> null + } + + - network { + - access_network = false -> null + - fixed_ip_v4 = "172.22.1.47" -> null + - mac = "fa:16:3e:60:49:ec" -> null + - name = "internal-ipv4-general-private" -> null + - port = "e15542db-193a-48dd-bacc-5f64b479121b" -> null + - uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + } + } + + # module.toplevel.openstack_compute_instance_v2.nodes[1] will be destroyed + - resource "openstack_compute_instance_v2" "nodes" { + - access_ip_v4 = "172.22.3.35" -> null + - all_metadata = {} -> null + - all_tags = [] -> null + - availability_zone = "nova" -> null + - created = "2023-08-06 17:17:57 +0000 UTC" -> null + - flavor_id = "77f5fa9b-255a-4bff-af57-be0bcf0dba03" -> null + - flavor_name = "e1.small" -> null + - force_delete = false -> null + - id = "2c811c7a-d075-4186-b143-79ac3a06eaeb" -> null + - image_id = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - image_name = "ubuntu-jammy-x86_64" -> null + - key_pair = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-server-2" -> null + - power_state = "active" -> null + - region = "Ostrava" -> null + - security_groups = [ + - "general-tf-demo_security_group", + ] -> null + - stop_before_destroy = false -> null + - tags = [] -> null + - updated = "2023-08-06 17:18:00 +0000 UTC" -> null + - user_data = "02ba299fe90493a6657b8efdc54727f3ceceb1eb" -> null + + - block_device { + - boot_index = 0 -> null + - delete_on_termination = true -> null + - destination_type = "local" -> null + - multiattach = false -> null + - source_type = "image" -> null + - uuid = "9a071dba-67d5-445f-9d32-0f56360fb10f" -> null + - volume_size = 10 -> null + } + + - network { + - access_network = false -> null + - fixed_ip_v4 = "172.22.3.35" -> null + - mac = "fa:16:3e:23:b4:4d" -> null + - name = "internal-ipv4-general-private" -> null + - port = "d211bac5-ba75-412e-9ca6-84284ca7a72d" -> null + - uuid = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + } + } + + # module.toplevel.openstack_compute_keypair_v2.pubkey will be destroyed + - resource "openstack_compute_keypair_v2" "pubkey" { + - fingerprint = "75:e0:a4:d6:4c:76:ba:21:f1:d1:75:c8:75:22:93:4f" -> null + - id = "general-tf-demo-keypair" -> null + - name = "general-tf-demo-keypair" -> null + - public_key = <<-EOT + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCh5m8MwPW2mSXPFj0P3SSnAjukeQinvdESJfUeVqxOLozx3uAprm+ghPlun4V0mqfIfs6SmJM2wN8oDjd18yJVgCc1tfaSTDYDnVdrVPzWQYDdCqca0a3z+fXuK/sffv+9SH4LdNGqm6wA6xjJAbp8HbsnUNbcxs9bt9GJToxRjVCHjawJxlBBUemuYU7x7B8tdq3W5Fxtc9dIEcpO7NLvVujSSzbTwxVANSpOsbhroN6IQP299hB7Ggoa7P0MNaJa9VHJSU4Z6N7lYDrMG5gkm6LxL6s37ljyQS7IVDNKbhj1WrWfxAWrYtQy5alzisa7uuaxb1dOwEEWzZI5Z59T79cZActsJJPf6e4zurYo8Tqw9vpJId8ohDEQVnmb5asDGMz5G8xXa4G98McVYL1766fN1FxflYLIVRi7uPTLjN76COh/Q/ZxYuByFYl62VY+vT3CxcYInsqOkhwgfmHMbepq3ndRRIrN97IDDMutT5peTLSwpsmME+202Tg12TL7aGMyeNfcRxJkm3nHvXXKSAu1fJKXPvTQZZRxctX9GQ+2iYBhB57WnmtvfzgfcrAdZTXH3Mh08xRB+Uv/VqupLhm9Fgs/+IVUyi0AezsL6NrGItyPVcVU2HXF6xdsIFyHgb2Jhbdm2PzN/n7lcRa6lkltPBpLSWZb0N0DSHbrJw== freznicek@fedora + EOT -> null + - region = "Ostrava" -> null + } + + # module.toplevel.openstack_networking_floatingip_v2.bastion_fip will be destroyed + - resource "openstack_networking_floatingip_v2" "bastion_fip" { + - address = "195.113.243.143" -> null + - all_tags = [] -> null + - fixed_ip = "172.22.1.8" -> null + - id = "04af2bfb-fbb1-4ad4-9c60-aa37fea9b8c6" -> null + - pool = "external-ipv4-general-public" -> null + - port_id = "e37bfaea-1b7e-415f-a49d-efb1ba212b17" -> null + - region = "Ostrava" -> null + - tags = [] -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + + # module.toplevel.openstack_networking_port_v2.bastion_port will be destroyed + - resource "openstack_networking_port_v2" "bastion_port" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "172.22.1.8", + ] -> null + - all_security_group_ids = [ + - "e4684b28-ae66-4451-9f33-db447363c7c0", + ] -> null + - all_tags = [] -> null + - device_id = "044e75f2-81ae-4186-95e0-409b186c06f1" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "e37bfaea-1b7e-415f-a49d-efb1ba212b17" -> null + - mac_address = "fa:16:3e:18:ca:b5" -> null + - name = "general-tf-demo-bastion-server-port" -> null + - network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "e4684b28-ae66-4451-9f33-db447363c7c0", + ] -> null + - tags = [] -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" -> null + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[0] will be destroyed + - resource "openstack_networking_port_v2" "nodes_ports" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "172.22.1.47", + ] -> null + - all_security_group_ids = [ + - "e4684b28-ae66-4451-9f33-db447363c7c0", + ] -> null + - all_tags = [] -> null + - device_id = "228a7292-8ec0-4a4b-b25a-06f4b4917aef" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "e15542db-193a-48dd-bacc-5f64b479121b" -> null + - mac_address = "fa:16:3e:60:49:ec" -> null + - name = "general-tf-demo_server_port_1" -> null + - network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "e4684b28-ae66-4451-9f33-db447363c7c0", + ] -> null + - tags = [] -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" -> null + } + } + + # module.toplevel.openstack_networking_port_v2.nodes_ports[1] will be destroyed + - resource "openstack_networking_port_v2" "nodes_ports" { + - admin_state_up = true -> null + - all_fixed_ips = [ + - "172.22.3.35", + ] -> null + - all_security_group_ids = [ + - "e4684b28-ae66-4451-9f33-db447363c7c0", + ] -> null + - all_tags = [] -> null + - device_id = "2c811c7a-d075-4186-b143-79ac3a06eaeb" -> null + - device_owner = "compute:nova" -> null + - dns_assignment = [] -> null + - id = "d211bac5-ba75-412e-9ca6-84284ca7a72d" -> null + - mac_address = "fa:16:3e:23:b4:4d" -> null + - name = "general-tf-demo_server_port_2" -> null + - network_id = "968fe5cf-e7b3-4d47-8239-d6f3ea2edd16" -> null + - port_security_enabled = true -> null + - region = "Ostrava" -> null + - security_group_ids = [ + - "e4684b28-ae66-4451-9f33-db447363c7c0", + ] -> null + - tags = [] -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + + - binding { + - vif_details = {} -> null + - vnic_type = "normal" -> null + } + + - fixed_ip { + - subnet_id = "3170bacf-72e9-418f-8b0c-72f2e67eefd1" -> null + } + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_http4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "0a0e1719-ebd9-4e7c-9642-1419a3410a9f" -> null + - port_range_max = 80 -> null + - port_range_min = 80 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "e4684b28-ae66-4451-9f33-db447363c7c0" -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_https4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "f8d7179a-9110-46f7-a297-df570a02378e" -> null + - port_range_max = 443 -> null + - port_range_min = 443 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "e4684b28-ae66-4451-9f33-db447363c7c0" -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_icmp4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "3579549a-7fb3-4422-95d2-89dd2040fcbc" -> null + - port_range_max = 0 -> null + - port_range_min = 0 -> null + - protocol = "icmp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "e4684b28-ae66-4451-9f33-db447363c7c0" -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + + # module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4 will be destroyed + - resource "openstack_networking_secgroup_rule_v2" "secgroup_rule_ssh4" { + - direction = "ingress" -> null + - ethertype = "IPv4" -> null + - id = "640ed715-5d0f-4489-893d-b1cf61048034" -> null + - port_range_max = 22 -> null + - port_range_min = 22 -> null + - protocol = "tcp" -> null + - region = "Ostrava" -> null + - remote_ip_prefix = "0.0.0.0/0" -> null + - security_group_id = "e4684b28-ae66-4451-9f33-db447363c7c0" -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + + # module.toplevel.openstack_networking_secgroup_v2.secgroup_default will be destroyed + - resource "openstack_networking_secgroup_v2" "secgroup_default" { + - all_tags = [] -> null + - description = "general-tf-demo Security group" -> null + - id = "e4684b28-ae66-4451-9f33-db447363c7c0" -> null + - name = "general-tf-demo_security_group" -> null + - region = "Ostrava" -> null + - tags = [] -> null + - tenant_id = "1b20bb11afbe41c1bd681d2e319ab9a0" -> null + } + +Plan: 0 to add, 0 to change, 14 to destroy. + +Do you really want to destroy all resources? + Terraform will destroy all your managed infrastructure, as shown above. + There is no undo. Only 'yes' will be accepted to confirm. + + Enter a value: yes + +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Destroying... [id=3579549a-7fb3-4422-95d2-89dd2040fcbc] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Destroying... [id=640ed715-5d0f-4489-893d-b1cf61048034] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Destroying... [id=195.113.243.143/044e75f2-81ae-4186-95e0-409b186c06f1/] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Destroying... [id=0a0e1719-ebd9-4e7c-9642-1419a3410a9f] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Destroying... [id=f8d7179a-9110-46f7-a297-df570a02378e] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Destroying... [id=228a7292-8ec0-4a4b-b25a-06f4b4917aef] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Destroying... [id=2c811c7a-d075-4186-b143-79ac3a06eaeb] +module.toplevel.openstack_compute_floatingip_associate_v2.bastion_fip_associate: Destruction complete after 2s +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Destroying... [id=04af2bfb-fbb1-4ad4-9c60-aa37fea9b8c6] +module.toplevel.openstack_compute_instance_v2.bastion: Destroying... [id=044e75f2-81ae-4186-95e0-409b186c06f1] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_ssh4: Destruction complete after 6s +module.toplevel.openstack_networking_floatingip_v2.bastion_fip: Destruction complete after 5s +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Still destroying... [id=0a0e1719-ebd9-4e7c-9642-1419a3410a9f, 10s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Still destroying... [id=f8d7179a-9110-46f7-a297-df570a02378e, 10s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Still destroying... [id=3579549a-7fb3-4422-95d2-89dd2040fcbc, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Still destroying... [id=228a7292-8ec0-4a4b-b25a-06f4b4917aef, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[1]: Still destroying... [id=2c811c7a-d075-4186-b143-79ac3a06eaeb, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.nodes[0]: Destruction complete after 11s +module.toplevel.openstack_compute_instance_v2.nodes[1]: Destruction complete after 11s +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Destroying... [id=d211bac5-ba75-412e-9ca6-84284ca7a72d] +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Destroying... [id=e15542db-193a-48dd-bacc-5f64b479121b] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_icmp4: Destruction complete after 11s +module.toplevel.openstack_compute_instance_v2.bastion: Still destroying... [id=044e75f2-81ae-4186-95e0-409b186c06f1, 10s elapsed] +module.toplevel.openstack_compute_instance_v2.bastion: Destruction complete after 10s +module.toplevel.openstack_compute_keypair_v2.pubkey: Destroying... [id=general-tf-demo-keypair] +module.toplevel.openstack_networking_port_v2.bastion_port: Destroying... [id=e37bfaea-1b7e-415f-a49d-efb1ba212b17] +module.toplevel.openstack_compute_keypair_v2.pubkey: Destruction complete after 0s +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_https4: Destruction complete after 16s +module.toplevel.openstack_networking_port_v2.nodes_ports[0]: Destruction complete after 5s +module.toplevel.openstack_networking_port_v2.nodes_ports[1]: Destruction complete after 5s +module.toplevel.openstack_networking_port_v2.bastion_port: Destruction complete after 5s +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Still destroying... [id=0a0e1719-ebd9-4e7c-9642-1419a3410a9f, 20s elapsed] +module.toplevel.openstack_networking_secgroup_rule_v2.secgroup_rule_http4: Destruction complete after 21s +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Destroying... [id=e4684b28-ae66-4451-9f33-db447363c7c0] +module.toplevel.openstack_networking_secgroup_v2.secgroup_default: Destruction complete after 8s + +Destroy complete! Resources: 14 destroyed. +[freznicek@lenovo-t14 terraform 0]$ diff --git a/clouds/g2/ostrava/general/terraform/terraform.sh b/clouds/g2/ostrava/general/terraform/terraform.sh new file mode 100755 index 0000000000000000000000000000000000000000..a36b8f9eb1e4cffcaeea378ba1bdab0fa2494f5f --- /dev/null +++ b/clouds/g2/ostrava/general/terraform/terraform.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# terraform wrapper for automatic personal/group project reconfiguration +# terraform.sh <arguments> +# +# <arguments> are: +# * detect-cloud +# * detect-project +# * validate-tools +# * or any valid terraform arguments + +# functions +SCRIPT_DIR=$(dirname $(readlink -f $0)) +source ${SCRIPT_DIR}/../../../../common/lib.sh.inc + + +if [[ "$1" =~ (detect-(cloud|project)|validate-tools) ]]; then + if [ "$1" == "detect-cloud" ]; then + log "Using OpenStack cloud:" + openstack version show -fcsv | grep identity + elif [ "$1" == "detect-project" ]; then + project_type=group + if prj_name=$(is_personal_project); then + project_type=personal + fi + log "Using OpenStack ${project_type} project named: ${prj_name}" + elif [ "$1" == "validate-tools" ]; then + log "Using commandline tools:" + report_tools "terraform version" + fi + exit $? +else + project_type=group + if prj_name=$(is_personal_project); then + project_type=personal + if [ "$1" == "plan" ]; then + terraform "$@" --var-file=personal-projects.tfvars + else + terraform "$@" + fi + else + terraform "$@" + fi +fi + + + + + diff --git a/clouds/g2/ostrava/general/terraform/variables.tf b/clouds/g2/ostrava/general/terraform/variables.tf new file mode 100644 index 0000000000000000000000000000000000000000..bddb30b20d0752b54ec63bd458ed804d3dbcc1b1 --- /dev/null +++ b/clouds/g2/ostrava/general/terraform/variables.tf @@ -0,0 +1,24 @@ +variable "router_creation_enable" { + description = "Create dedicated router instance. true/false ~ create new / reuse existing personal router" + default = true +} + +variable "internal_network_creation_enable" { + description = "Create dedicated internal network. true/false ~ create new / reuse existing personal network" + default = true +} + +variable "internal_network_name" { + description = "Internal network name. Either dedicated new network or existing personal network name" + default = "<var.infra_name>_network" +} + +variable "internal_subnet_creation_enable" { + description = "Create dedicated subnet instance. true/false ~ create new / reuse existing personal subnet" + default = true +} + +variable "internal_subnet_name" { + description = "Internal network subnet name. Either dedicated new subnet or existing personal subnet name" + default = "<var.infra_name>_subnet" +} diff --git a/clouds/g2/ostrava/terraform/README.md b/clouds/g2/ostrava/terraform/README.md deleted file mode 100644 index fe527c36e18e6c1442817d10464701a15c1784d8..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# Terraform Kubernetes Training - -This Terraform module creates an infrastructure required for a Kubernetes cluster in OpenStack. - -## Create Infrastructure - -1. Clone the repository. -1. Load you OpenStack application credentials to environment variables `source ~/conf/prod-meta-cloud-new-openstack-all-roles-openrc.sh` -1. Override any variable if needed. Every variable specified in [modules/kube_training/variables.tf](modules/kube_training/variables.tf) can be overridden in the [main.tf](main.tf) file in its *module* section. -1. If create infrastructure for kubespray see [this section](#kubespray) -1. In the root folder run `terraform init`. -1. In the root folder run `terraform validate`. -1. Run `terraform plan -out plan1` to generate terraform plan. -1. Run `terraform apply "plan1"` to apply the plan. - -## Destroy Infrastructure - -To delete all created resources run the following commands: - -```sh -terraform plan -destroy -out plan1 -terraform apply "plan1" -``` - -## SSH to Workers - -To connect to worker machines just use `sshuttle`. - -```sh -sshuttle -r ubuntu@<any-master-ip> 10.10.10.0/24 -``` diff --git a/clouds/g2/ostrava/terraform/main.tf b/clouds/g2/ostrava/terraform/main.tf deleted file mode 100644 index cdd7354cbd323c8e004688ae466219fcf2c6d20f..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/main.tf +++ /dev/null @@ -1,45 +0,0 @@ -terraform { - backend "local" {} -} - -terraform { - required_providers { - openstack = { - source = "terraform-provider-openstack/openstack" - version = "~> 1.47.0" - } - } -} - - -provider "openstack" { - # auth arguments are read from environment variables (sourced opestack RC file) - auth_url = "https://identity.ostrava.openstack.cloud.e-infra.cz/v3" -} - - -module "kube_training" { - source = "./modules/kube_training" - - # Example of variable override - master_nodes_count = 3 - worker_nodes_count = 1 - kusername = "user-kubernetes-demo" - public_key = "~/.ssh/id_rsa.pub" - - master_nodes_flavor = "e1.small" - worker_nodes_flavor = "e1.small" - image = "ubuntu-jammy-x86_64" - - int_network = "10.10.10.0/24" - pool = "external-ipv4-general-public" - - # attach additional single volume 64GB - master_node_volume_size = 64 - - # If you are using this modul for install kubespray - kube_vip = "10.10.10.5" - kube_fip = false - kube_fip_create_port = false -} - diff --git a/clouds/g2/ostrava/terraform/modules/kube_training/cloudinit.txt b/clouds/g2/ostrava/terraform/modules/kube_training/cloudinit.txt deleted file mode 100644 index b760d4eb67613269833858fb3bec83579c51d0ad..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/modules/kube_training/cloudinit.txt +++ /dev/null @@ -1,6 +0,0 @@ -users: - - default - - name: ubuntu - shell: /bin/bash - ssh_authorized_keys: - - ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDSS8J5AStswCnf2JQboCyue8JzX5T/Tsg68LasOT3XZkAMelVrjYBIZ/0P858WMTMW5Qc+ebSmbm0eOopuaN9FrZW2ZsaDyzPamAuxseoTkRV+7Oz5NOF0WCYspgLsbMcaQ+F+qrKzMJRLwduhL67inIJVYkgeXY6S1N2wZAEgYUE3jbZrhaGNA1kQf2dJoMtnikrtOB+vyZkLgFRfgjmq+ny5rCM277otFxwCHhm2+jrWtM8lPY6kJ6WcZfg2njdYW3Oda479jMUg28t4pjqmBygKl3MQ9MOVlJkde4Ez5LhTynXMkSPhH5PnzQrfkQMU2YozCNQ2KBiGDdB3Cd2Lqsou32zUk1/sKc+aN1+8jtm+iogpgYxAPwyCh8S/brVbDu9BerowNRMa4Nual/7YKdtwPEClFp34dgV7tvXVcnVF/TtAkJAUtd02Fh9iS2iM9IrC0gkDEBUr0HGY5U83zODf356aVGTE6hs65wsURGAT6z/DvWYZtMLWJB8Y3p7qHGV1N1OHSLDHgjzuhAHI54h8zhjQaiPsH3Yx4324D1ndtJX8DeWkKdzCNARnw8sfIUhCkwbgv0v6ZkDy8yP6jsHjBc89NjB9kNw1dZcnaDLNqGctcCy50BOeciBYC598i0hec2MieoN0Z2E7lbWZps/+0korxtIxp7TzcKfiKw== secureduser@securedhost diff --git a/clouds/g2/ostrava/terraform/modules/kube_training/instances.tf b/clouds/g2/ostrava/terraform/modules/kube_training/instances.tf deleted file mode 100644 index 4c3e2f98c5d56b9c345805ee5c7a87d904779327..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/modules/kube_training/instances.tf +++ /dev/null @@ -1,38 +0,0 @@ - -#################### -# Define instances # -#################### - -resource "openstack_compute_instance_v2" "master_nodes" { - count = var.master_nodes_count - name = "${var.kusername}-${var.master_nodes_name_prefix}-${count.index+1}" - image_name = var.image - flavor_name = var.master_nodes_flavor - key_pair = openstack_compute_keypair_v2.pubkey.name - security_groups = [openstack_networking_secgroup_v2.secgroup_default.name] - user_data = "#cloud-config\nhostname: ${var.kusername}-${var.master_nodes_name_prefix}-${count.index+1}.local\n${file("${path.module}/cloudinit.txt")}" - - network { - uuid = openstack_networking_network_v2.network_default.id - port = element(openstack_networking_port_v2.master_ports.*.id, count.index) - } - -} - - -resource "openstack_compute_instance_v2" "worker_nodes" { - count = var.worker_nodes_count - name = "${var.kusername}-${var.worker_nodes_name_prefix}-${count.index+1}" - image_name = var.image - flavor_name = var.worker_nodes_flavor - key_pair = openstack_compute_keypair_v2.pubkey.name - security_groups = [openstack_networking_secgroup_v2.secgroup_default.name] - user_data = "#cloud-config\nhostname: ${var.kusername}-${var.worker_nodes_name_prefix}-${count.index+1}.local\n${file("${path.module}/cloudinit.txt")}" - - network { - uuid = openstack_networking_network_v2.network_default.id - port = element(openstack_networking_port_v2.worker_ports.*.id, count.index) - } - -} - diff --git a/clouds/g2/ostrava/terraform/modules/kube_training/main.tf b/clouds/g2/ostrava/terraform/modules/kube_training/main.tf deleted file mode 100644 index a73d8c2d00b0a2d55b24a6cc995eadd42903603c..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/modules/kube_training/main.tf +++ /dev/null @@ -1,6 +0,0 @@ - -resource "openstack_compute_keypair_v2" "pubkey" { - name = "${var.kusername}-kubedemo" - public_key = file("${var.public_key}") -} - diff --git a/clouds/g2/ostrava/terraform/modules/kube_training/networks.tf b/clouds/g2/ostrava/terraform/modules/kube_training/networks.tf deleted file mode 100644 index e3144e6656fc5e957d9a986cc67411587a391a26..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/modules/kube_training/networks.tf +++ /dev/null @@ -1,95 +0,0 @@ -############################################################### -# Define networking # -# Security group rules are in separate file secgroup_rules.tf # -############################################################### - -resource "openstack_networking_network_v2" "network_default" { - name = "${var.kusername}_kubedemo" - admin_state_up = "true" -} - -resource "openstack_networking_subnet_v2" "subnet_default" { - name = "${var.kusername}_kubedemo" - network_id = openstack_networking_network_v2.network_default.id - cidr = var.int_network - ip_version = 4 - dns_nameservers = ["1.1.1.1", "8.8.8.8"] -} - -data "openstack_networking_network_v2" "terraform-demo-external-net" { - name = var.pool -} - -resource "openstack_networking_router_v2" "router_default" { - name = "${var.kusername}_kubedemo" - admin_state_up = "true" - external_network_id = data.openstack_networking_network_v2.terraform-demo-external-net.id -} - -resource "openstack_networking_router_interface_v2" "terraform-demo-router-interface-1" { - router_id = openstack_networking_router_v2.router_default.id - subnet_id = openstack_networking_subnet_v2.subnet_default.id -} - -# Floating VIP IPs -resource "openstack_networking_floatingip_v2" "vip_fip" { - count = var.kube_fip ? 1 : 0 - pool = var.pool -} - -resource "openstack_networking_floatingip_associate_v2" "res_vip_fip_associate" { - count = var.kube_fip_create_port && var.kube_fip ? 1 : 0 - floating_ip = openstack_networking_floatingip_v2.vip_fip[count.index].address - port_id = openstack_networking_port_v2.vip_port[count.index].id -} - -# Floating IPs (only for master nodes) -resource "openstack_networking_floatingip_v2" "fip_head_master" { - pool = var.pool -} - -resource "openstack_compute_floatingip_associate_v2" "res_fip_associate" { - floating_ip = openstack_networking_floatingip_v2.fip_head_master.address - instance_id = openstack_compute_instance_v2.master_nodes[0].id -} - -# Ports -resource "openstack_networking_port_v2" "vip_port" { - count = var.kube_fip_create_port && var.kube_fip ? 1 : 0 - name = "${var.kusername}_vip_port" - network_id = openstack_networking_network_v2.network_default.id - admin_state_up = "true" - security_group_ids = [openstack_networking_secgroup_v2.secgroup_default.id] - fixed_ip { - subnet_id = openstack_networking_subnet_v2.subnet_default.id - ip_address = var.kube_vip - } -} - -resource "openstack_networking_port_v2" "worker_ports" { - count = var.worker_nodes_count - name = "${var.kusername}_worker_port_${count.index+1}" - network_id = openstack_networking_network_v2.network_default.id - admin_state_up = "true" - security_group_ids = [openstack_networking_secgroup_v2.secgroup_default.id] - fixed_ip { - subnet_id = openstack_networking_subnet_v2.subnet_default.id - } - allowed_address_pairs { - ip_address = var.kube_vip - } -} - -resource "openstack_networking_port_v2" "master_ports" { - count = var.master_nodes_count - name = "${var.kusername}_master_port_${count.index+1}" - network_id = openstack_networking_network_v2.network_default.id - admin_state_up = "true" - security_group_ids = [openstack_networking_secgroup_v2.secgroup_default.id] - fixed_ip { - subnet_id = openstack_networking_subnet_v2.subnet_default.id - } - allowed_address_pairs { - ip_address = var.kube_vip - } -} \ No newline at end of file diff --git a/clouds/g2/ostrava/terraform/modules/kube_training/output.tf b/clouds/g2/ostrava/terraform/modules/kube_training/output.tf deleted file mode 100644 index 2151fcd0cf762c979ad74e63c46cd9cdc731285a..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/modules/kube_training/output.tf +++ /dev/null @@ -1,19 +0,0 @@ -output "master_instance_ip" { - value = openstack_compute_instance_v2.master_nodes[*].access_ip_v4 -} - -output "worker_instance_ip" { - value = openstack_compute_instance_v2.worker_nodes[*].access_ip_v4 -} - -output "vip_ip" { - value = var.kube_vip -} - -output "vip_fip" { - value = var.kube_fip ? openstack_networking_floatingip_v2.vip_fip[0].address : null -} - -output "head_master_fip" { - value = openstack_networking_floatingip_v2.fip_head_master.address -} \ No newline at end of file diff --git a/clouds/g2/ostrava/terraform/modules/kube_training/providers.tf b/clouds/g2/ostrava/terraform/modules/kube_training/providers.tf deleted file mode 100644 index ef4ba65152b61ce99a5dfe96616724d08fad199b..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/modules/kube_training/providers.tf +++ /dev/null @@ -1,9 +0,0 @@ -terraform { - required_providers { - openstack = { - source = "terraform-provider-openstack/openstack" - version = "~> 1.47.0" - } - } -} - diff --git a/clouds/g2/ostrava/terraform/modules/kube_training/secgroup_rules.tf b/clouds/g2/ostrava/terraform/modules/kube_training/secgroup_rules.tf deleted file mode 100644 index 8b13b6578c7e770a57f17754bcad43deb4df14ef..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/modules/kube_training/secgroup_rules.tf +++ /dev/null @@ -1,96 +0,0 @@ -################################## -# Define Network Security Groups # -################################## - - -resource "openstack_networking_secgroup_v2" "secgroup_default" { - name = "${var.kusername}_kubedemo" - description = "Security group for Kubernetes demo" -} - - -# Allow all internal TCP & UDP - -resource "openstack_networking_secgroup_rule_v2" "alltcp4" { - direction = "ingress" - ethertype = "IPv4" - protocol = "tcp" - port_range_min = 1 - port_range_max = 32768 - remote_ip_prefix = var.int_network - security_group_id = openstack_networking_secgroup_v2.secgroup_default.id -} - -resource "openstack_networking_secgroup_rule_v2" "alludp4" { - direction = "ingress" - ethertype = "IPv4" - protocol = "udp" - port_range_min = 1 - port_range_max = 32768 - remote_ip_prefix = var.int_network - security_group_id = openstack_networking_secgroup_v2.secgroup_default.id -} - - -# External communication -# HTTP(S) - -resource "openstack_networking_secgroup_rule_v2" "https4" { - direction = "ingress" - ethertype = "IPv4" - protocol = "tcp" - port_range_min = 443 - port_range_max = 443 - remote_ip_prefix = "0.0.0.0/0" - security_group_id = openstack_networking_secgroup_v2.secgroup_default.id -} - -resource "openstack_networking_secgroup_rule_v2" "http4" { - direction = "ingress" - ethertype = "IPv4" - protocol = "tcp" - port_range_min = 80 - port_range_max = 80 - remote_ip_prefix = "0.0.0.0/0" - security_group_id = openstack_networking_secgroup_v2.secgroup_default.id -} - - - -# ICMP - -resource "openstack_networking_secgroup_rule_v2" "icmp4" { - direction = "ingress" - ethertype = "IPv4" - protocol = "icmp" - port_range_min = 0 - port_range_max = 0 - remote_ip_prefix = "0.0.0.0/0" - security_group_id = openstack_networking_secgroup_v2.secgroup_default.id -} - - - -# SSH - -resource "openstack_networking_secgroup_rule_v2" "ssh4" { - direction = "ingress" - ethertype = "IPv4" - protocol = "tcp" - port_range_min = 22 - port_range_max = 22 - remote_ip_prefix = "0.0.0.0/0" - security_group_id = openstack_networking_secgroup_v2.secgroup_default.id -} - -# LB - -resource "openstack_networking_secgroup_rule_v2" "lb4" { - direction = "ingress" - ethertype = "IPv4" - protocol = "tcp" - port_range_min = 6443 - port_range_max = 6443 - remote_ip_prefix = "0.0.0.0/0" - security_group_id = openstack_networking_secgroup_v2.secgroup_default.id -} \ No newline at end of file diff --git a/clouds/g2/ostrava/terraform/modules/kube_training/variables.tf b/clouds/g2/ostrava/terraform/modules/kube_training/variables.tf deleted file mode 100644 index 0767679a90d7b29f981151f174993191ee1e2612..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/modules/kube_training/variables.tf +++ /dev/null @@ -1,94 +0,0 @@ -variable "kusername" { - description = "Name prefix for all resources. Use a-z, 0-9 and the hyphen (-) only." - default = "kubetraining" -} - -variable "public_key" { - default = "~/.ssh/id_rsa.pub" -} - -######################### -# master nodes settings # -######################### -variable "master_nodes_count" { - default = 3 -} - -variable "master_nodes_name_prefix" { - description = "Use a-z, 0-9 and the hyphen (-) only." - default = "master" -} - -variable "master_nodes_flavor" { - default = "hpc.8core-32ram-ssd-ephem" -} - - -######################### -# worker nodes settings # -######################### -variable "worker_nodes_count" { - default = 8 -} - -variable "worker_nodes_name_prefix" { - description = "Use a-z, 0-9 and the hyphen (-) only." - default = "worker" -} - -variable "worker_nodes_flavor" { - default = "standard.small" -} - - -variable "int_network" { - description = "Internal network address, use CIDR notation" - default = "10.0.0.0/24" -} - -variable "pool" { - description = "FIP pool" - default = "public-cesnet-195-113-167-GROUP" -} - - -variable "image" { - description = "Image used for both master and worker servers" - default = "88f8e72a-bbf0-4ccc-8ff2-4f3188cd0d18" -} - -variable "ssh_user_name" { - default = "ubuntu" -} - -variable "kube_vip" { - description = "Internal IP for kube-vip to access kube-api" - default = "10.0.0.5" -} - -variable "kube_fip" { - description = "Allocate floating IP for kubespray" - type = bool - default = false -} - -variable "kube_fip_create_port" { - description = "True if you want floating IP address for kube-vip to access kube-api" - type = bool - default = false -} - - -######################### -# master node volumes -######################### - -variable "master_node_volumes_count" { - description = "Number of volumes added to master nodes (0 to disable attaching volumes)" - default = "" -} - -variable "master_node_volume_size" { - description = "Size of volume attached to master nodes (in GB)" - default = 500 -} diff --git a/clouds/g2/ostrava/terraform/modules/kube_training/volumes.tf b/clouds/g2/ostrava/terraform/modules/kube_training/volumes.tf deleted file mode 100644 index 1ae0f2e909efa5d5356152e976e35f697699a52c..0000000000000000000000000000000000000000 --- a/clouds/g2/ostrava/terraform/modules/kube_training/volumes.tf +++ /dev/null @@ -1,14 +0,0 @@ - -resource "openstack_blockstorage_volume_v3" "master_volumes_b" { - count = var.master_node_volumes_count != "" ? var.master_node_volumes_count : var.master_nodes_count - name = "${var.kusername}-master-node-volume-b-${count.index+1}" - size = var.master_node_volume_size -} - -resource "openstack_compute_volume_attach_v2" "master_volumes_b_attachments" { - count = var.master_node_volumes_count != "" ? var.master_node_volumes_count : var.master_nodes_count - instance_id = element(openstack_compute_instance_v2.master_nodes.*.id, count.index) - volume_id = element(openstack_blockstorage_volume_v3.master_volumes_b.*.id, count.index) - #device = "/dev/sdb" -} -