From d568408331d6ae3b25c11ff9b7d88206693732e2 Mon Sep 17 00:00:00 2001 From: eliamaldini Date: Fri, 18 Aug 2023 11:20:27 +0200 Subject: [PATCH] fixed variable name and regex --- modules/gcve-private-cloud/README.md | 32 ++++++++++++------------- modules/gcve-private-cloud/main.tf | 7 +++--- modules/gcve-private-cloud/outputs.tf | 24 +++++++++++-------- modules/gcve-private-cloud/variables.tf | 10 ++++---- 4 files changed, 40 insertions(+), 33 deletions(-) diff --git a/modules/gcve-private-cloud/README.md b/modules/gcve-private-cloud/README.md index 0c3fe404..93e9271e 100644 --- a/modules/gcve-private-cloud/README.md +++ b/modules/gcve-private-cloud/README.md @@ -26,13 +26,13 @@ module "gcve-pc" { source = "./fabric/modules/gcve-private-cloud" name = "gcve-pc" project_id = "gcve-test-project" - zone = "asia-southeast1-a" - management_cidr = "192.168.0.0/24" + zone = "europe-west8-a" + cidr = "192.168.0.0/24" private_connections = { transit-conn1 = { name = "transit-conn1", - network_self_link = "projects/test-prj-elia-01/global/networks/default", + network_self_link = "projects/test-prj-gcve-01/global/networks/default", peering_name = "servicenetworking-googleapis-com" type = "PRIVATE_SERVICE_ACCESS", routing_mode = "REGIONAL" @@ -48,8 +48,8 @@ module "gcve-pc" { source = "./fabric/modules/gcve-private-cloud" name = "gcve-pc" project_id = "gcve-test-project" - zone = "asia-southeast1-a" - management_cidr = "192.168.0.0/24" + zone = "europe-west8-a" + cidr = "192.168.0.0/24" management_cluster_config = { node_type_id = "standard-72" @@ -60,7 +60,7 @@ module "gcve-pc" { private_connections = { transit-conn1 = { name = "transit-conn1", - network_self_link = "projects/test-prj-elia-01/global/networks/default", + network_self_link = "projects/test-prj-gcve-01/global/networks/default", peering_name = "servicenetworking-googleapis-com" type = "PRIVATE_SERVICE_ACCESS", routing_mode = "REGIONAL" @@ -74,15 +74,15 @@ module "gcve-pc" { | name | description | type | required | default | |---|---|:---:|:---:|:---:| -| [management_cidr](variables.tf#L23) | vSphere/vSAN subnets CIDR range. To undersatnd the limits, please refer to [GCVE network requirements](https://cloud.google.com/vmware-engine/docs/quickstart-networking-requirements). | string | ✓ | | -| [name](variables.tf#L42) | Private cloud name. | string | ✓ | | -| [project_id](variables.tf#L74) | Project id. | string | ✓ | | -| [zone](variables.tf#L91) | Private cloud zone. | string | ✓ | | +| [cidr](variables.tf#L23) | vSphere/vSAN subnets CIDR range. To undersatnd the limits, please refer to [GCVE network requirements](https://cloud.google.com/vmware-engine/docs/quickstart-networking-requirements). | string | ✓ | | +| [name](variables.tf#L43) | Private cloud name. | string | ✓ | | +| [project_id](variables.tf#L76) | Project id. | string | ✓ | | +| [zone](variables.tf#L93) | Private cloud zone. | string | ✓ | | | [description](variables.tf#L17) | Private cloud description. | string | | "Terraform-managed." | | [management_cluster_config](variables.tf#L28) | Management cluster configuration. | object({…}) | | {…} | -| [private_connections](variables.tf#L47) | VMWare private connections configuration. It is used to create the gcloud command printed as output. | map(object({…})) | | {} | -| [vmw_network_create](variables.tf#L79) | Create the VMware Engine network. When set to false, it uses a data source to reference an existing VMware Engine network. | bool | | true | -| [vmw_network_description](variables.tf#L85) | VMware Engine network description. | string | | "Terraform-managed." | +| [private_connections](variables.tf#L48) | VMWare private connections configuration. It is used to create the gcloud command printed as output. | map(object({…})) | | {} | +| [vmw_network_create](variables.tf#L81) | Create the VMware Engine network. When set to false, it uses a data source to reference an existing VMware Engine network. | bool | | true | +| [vmw_network_description](variables.tf#L87) | VMware Engine network description. | string | | "Terraform-managed." | ## Outputs @@ -94,7 +94,7 @@ module "gcve-pc" { | [network_config](outputs.tf#L32) | Details about the network configuration of the private cloud | | | [nsx](outputs.tf#L37) | Details about a NSX Manager appliance. | | | [private-cloud](outputs.tf#L42) | The private cloud resource | | -| [private_connections_setup](outputs.tf#L57) | Cloud SDK commands for the private connections manual setup. | | -| [state](outputs.tf#L52) | Details about the state of the private cloud | | -| [vcenter](outputs.tf#L47) | Details about a vCenter Server management appliance. | | +| [private_connections_setup](outputs.tf#L47) | Cloud SDK commands for the private connections manual setup. | | +| [state](outputs.tf#L63) | Details about the state of the private cloud | | +| [vcenter](outputs.tf#L68) | Details about a vCenter Server management appliance. | | diff --git a/modules/gcve-private-cloud/main.tf b/modules/gcve-private-cloud/main.tf index 13b915b7..875798d2 100644 --- a/modules/gcve-private-cloud/main.tf +++ b/modules/gcve-private-cloud/main.tf @@ -15,7 +15,7 @@ */ locals { - region = join("-", slice(split("-", "${var.zone}"), 0, 2)) + region = regex("([a-z]*-[a-z]*[0-9]{1,2})-([a-z])", var.zone)[0] vmw_network = ( var.vmw_network_create ? try(google_vmwareengine_network.private-cloud-network.0, null) @@ -23,7 +23,7 @@ locals { ) psa_peering = { for k, v in data.google_compute_network_peering.psa_peering : - k => slice(split("/", "${v.peer_network}"), 6, 7)[0] + k => regex("(.*)/projects/([a-z0-9-]*)/(.*)", "${v.peer_network}")[1] } } @@ -35,6 +35,7 @@ data "google_vmwareengine_network" "private-cloud-network" { location = local.region } +#TO REMOVE? data "google_compute_network_peering" "psa_peering" { for_each = var.private_connections @@ -50,7 +51,7 @@ resource "google_vmwareengine_private_cloud" "private-cloud" { description = var.description network_config { - management_cidr = var.management_cidr + management_cidr = var.cidr vmware_engine_network = local.vmw_network.id } diff --git a/modules/gcve-private-cloud/outputs.tf b/modules/gcve-private-cloud/outputs.tf index f1af67ec..ff60b349 100644 --- a/modules/gcve-private-cloud/outputs.tf +++ b/modules/gcve-private-cloud/outputs.tf @@ -44,16 +44,6 @@ output "private-cloud" { value = google_vmwareengine_private_cloud.private-cloud } -output "vcenter" { - description = "Details about a vCenter Server management appliance." - value = google_vmwareengine_private_cloud.private-cloud.vcenter -} - -output "state" { - description = "Details about the state of the private cloud" - value = google_vmwareengine_private_cloud.private-cloud.state -} - output "private_connections_setup" { description = "Cloud SDK commands for the private connections manual setup." value = { @@ -69,3 +59,17 @@ output "private_connections_setup" { EOT } } + +output "state" { + description = "Details about the state of the private cloud" + value = google_vmwareengine_private_cloud.private-cloud.state +} + +output "vcenter" { + description = "Details about a vCenter Server management appliance." + value = google_vmwareengine_private_cloud.private-cloud.vcenter +} + +output "test" { + value = data.google_compute_network_peering.psa_peering +} diff --git a/modules/gcve-private-cloud/variables.tf b/modules/gcve-private-cloud/variables.tf index 945b5b10..1449476b 100644 --- a/modules/gcve-private-cloud/variables.tf +++ b/modules/gcve-private-cloud/variables.tf @@ -20,7 +20,7 @@ variable "description" { default = "Terraform-managed." } -variable "management_cidr" { +variable "cidr" { description = "vSphere/vSAN subnets CIDR range. To undersatnd the limits, please refer to [GCVE network requirements](https://cloud.google.com/vmware-engine/docs/quickstart-networking-requirements)." type = string } @@ -37,6 +37,7 @@ variable "management_cluster_config" { node_count = 3, custom_core_count = null } + nullable = false } variable "name" { @@ -51,10 +52,11 @@ variable "private_connections" { network_self_link = string peering_name = string description = optional(string, "Terraform-managed.") - type = optional(string, "REGIONAL") - routing_mode = optional(string, "PRIVATE_SERVICE_ACCESS") + type = optional(string, "PRIVATE_SERVICE_ACCESS") + routing_mode = optional(string, "REGIONAL") })) - default = {} + default = {} + nullable = false validation { condition = alltrue([ for r in var.private_connections :