diff --git a/modules/gcve-private-cloud/README.md b/modules/gcve-private-cloud/README.md
index 0c3fe404e..93e9271e6 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 13b915b7a..875798d26 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 f1af67ec9..ff60b349f 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 945b5b104..1449476b5 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 :