cloud-foundation-fabric/modules/gcve-private-cloud
eliamaldini 126d75a311 fixed typo 2023-08-18 17:01:12 +02:00
..
README.md fixed typo 2023-08-18 17:01:12 +02:00
main.tf fixed tests 2023-08-18 15:38:35 +02:00
outputs.tf fixed typo 2023-08-18 17:01:12 +02:00
variables.tf fixed variables order 2023-08-18 15:52:56 +02:00
versions.tf GCVE module first release 2023-08-14 11:48:27 +02:00

README.md

Google Cloud VMWare Engine Private Cloud Module

This module implements the creation and management of a Google Cloud VMWare Engine Private Cloud with its management cluster. If configured, it also creates the VMWare engine network or it can work with an existing one. The creation of the private connection with the user VPC requires the execution of the Google SDK command the module provides as an output.

To understand the limits and to propertly configure the vSphere/vSAN subnets CIDR range please refer to the GCVE public documetation.

Be aware that the deployment of this module might require up to 2 hours depending on the selected private cloud target zone.

Limitations

At the moment this module doesn't support the following use cases:

  • Single node private cloud
  • Stretched private cloud

Basic Private Cloud Creation

module "gcve-pc" {
  source     = "./fabric/modules/gcve-private-cloud"
  name       = "gcve-pc"
  project_id = "gcve-test-project"
  zone       = "europe-west8-a"
  cidr       = "192.168.0.0/24"

  private_connections = {
    transit-conn1 = {
      name                = "transit-conn1"
      network_self_link   = "projects/test-prj-gcve-01/global/networks/default"
      tenant_host_project = "g39a814990532d10ap-tp"
      type                = "PRIVATE_SERVICE_ACCESS"
      routing_mode        = "REGIONAL"
    }
  }
}
# tftest modules=1 resources=2 inventory=basic.yaml

Private Cloud Creation with custom nodes and cores count

module "gcve-pc" {
  source     = "./fabric/modules/gcve-private-cloud"
  name       = "gcve-pc"
  project_id = "gcve-test-project"
  zone       = "europe-west8-a"
  cidr       = "192.168.0.0/24"

  management_cluster_config = {
    node_type_id      = "standard-72"
    node_count        = 6
    custom_core_count = 28
  }

  private_connections = {
    transit-conn1 = {
      name                = "transit-conn1"
      network_self_link   = "projects/test-prj-gcve-01/global/networks/default"
      tenant_host_project = "g39a814990532d10ap-tp"
      type                = "PRIVATE_SERVICE_ACCESS"
      routing_mode        = "REGIONAL"
    }
  }
}
# tftest modules=1 resources=2 inventory=custom.yaml

Variables

name description type required default
cidr vSphere/vSAN subnets CIDR range. To undersatnd the limits, please refer to GCVE network requirements. string
name Private cloud name. string
project_id Project id. string
zone Private cloud zone. string
description Private cloud description. string "Terraform-managed."
management_cluster_config Management cluster configuration. object({…}) {…}
private_connections VMWare private connections configuration. It is used to create the gcloud command printed as output. map(object({…})) {}
vmw_network_create 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 VMware Engine network description. string "Terraform-managed."

Outputs

name description sensitive
hcx Details about a HCX Cloud Manager appliance.
id ID of the private cloud.
management_cluster Details of the management cluster of the private cloud.
network_config Details about the network configuration of the private cloud.
nsx Details about a NSX Manager appliance.
private-cloud The private cloud resource.
private_connections_setup Cloud SDK commands for the private connections manual setup.
state Details about the state of the private cloud.
vcenter Details about a vCenter Server management appliance.