cloud-foundation-fabric/modules/gcve-private-cloud/README.md

139 lines
6.8 KiB
Markdown
Raw Normal View History

2023-08-14 02:48:27 -07:00
# Google Cloud VMWare Engine Private Cloud Module
The module manages one or more Google Cloud VMWare Engine Private Clouds.
It also optionally creates:
- A VMWare engine network, shared betwee or it can work with an existing one. The module optionally creates peering connections to users' VPCs or other VMware engine networks.
2023-08-14 02:48:27 -07:00
2023-10-31 07:35:27 -07:00
To understand the limits and to properly configure the vSphere/vSAN subnets CIDR range please refer to the [GCVE public documentation](https://cloud.google.com/vmware-engine/docs/quickstart-networking-requirements).
2023-08-14 02:48:27 -07:00
2023-08-17 03:05:44 -07:00
Be aware that the deployment of this module might require up to 2 hours depending on the selected private cloud target zone.
2023-08-14 02:48:27 -07:00
<!-- BEGIN TOC -->
- [Limitations](#limitations)
- [Basic Private Cloud Creation](#basic-private-cloud-creation)
- [Customize management cluster configs](#customize-management-cluster-configs)
- [Create additional clusters](#create-additional-clusters)
2023-08-14 02:48:27 -07:00
- [Variables](#variables)
2023-08-17 00:37:48 -07:00
- [Outputs](#outputs)
2023-08-14 02:48:27 -07:00
<!-- END TOC -->
## Limitations
At the moment this module doesn't support the creation of stretched private clouds.
2023-08-14 02:48:27 -07:00
## Basic Private Cloud Creation
```hcl
module "gcve-pc" {
2023-08-18 06:38:35 -07:00
source = "./fabric/modules/gcve-private-cloud"
prefix = "gcve-pc"
2023-08-18 06:38:35 -07:00
project_id = "gcve-test-project"
2023-08-14 02:48:27 -07:00
vmw_network_peerings = {
2023-08-14 02:48:27 -07:00
transit-conn1 = {
name = "to-my-vpc"
peer_network = "projects/test-prj-gcve-01/global/networks/default"
}
}
vmw_private_cloud_configs = {
pcc_one = {
cidr = "192.168.0.0/24"
zone = "europe-west8-a"
2023-08-14 02:48:27 -07:00
}
}
}
# tftest modules=1 resources=3 inventory=basic.yaml
2023-08-14 02:48:27 -07:00
```
## Customize management cluster configs
You can customize the management cluster of each VMware engine private cloud.
2023-08-14 02:48:27 -07:00
```hcl
module "gcve-pc" {
2023-08-18 06:38:35 -07:00
source = "./fabric/modules/gcve-private-cloud"
prefix = "gcve-pc"
2023-08-18 06:38:35 -07:00
project_id = "gcve-test-project"
2023-08-14 02:48:27 -07:00
vmw_network_peerings = {
transit-conn1 = {
name = "to-my-vpc"
peer_network = "projects/test-prj-gcve-01/global/networks/default"
}
}
vmw_private_cloud_configs = {
pcc_one = {
cidr = "192.168.0.0/24"
management_cluster_config = {
node_type_id = "standard-72"
node_count = 6
custom_core_count = 28
}
zone = "europe-west8-a"
}
2023-08-14 02:48:27 -07:00
}
}
# tftest modules=1 resources=3 inventory=custom-management.yaml
```
## Create additional clusters
You can optionally create additional clusters in each VMware engine private cloud.
```hcl
module "gcve-pc" {
source = "./fabric/modules/gcve-private-cloud"
prefix = "gcve-pc"
project_id = "gcve-test-project"
2023-08-14 02:48:27 -07:00
vmw_network_peerings = {
2023-08-14 02:48:27 -07:00
transit-conn1 = {
name = "to-my-vpc"
peer_network = "projects/test-prj-gcve-01/global/networks/default"
}
}
vmw_private_cloud_configs = {
pcc_one = {
cidr = "192.168.0.0/24"
additional_cluster_configs = {
test-cluster-one = {
node_type_id = "standard-72"
node_count = 6
custom_core_count = 28
}
test-cluster-two = {
node_type_id = "standard-72"
node_count = 4
custom_core_count = 28
}
}
zone = "europe-west8-a"
2023-08-14 02:48:27 -07:00
}
}
}
# tftest modules=1 resources=5 inventory=additional-clusters.yaml
2023-08-14 02:48:27 -07:00
```
<!-- BEGIN TFDOC -->
## Variables
| name | description | type | required | default |
|---|---|:---:|:---:|:---:|
| [prefix](variables.tf#L17) | Resources name prefix. | <code>string</code> | ✓ | |
| [project_id](variables.tf#L22) | Project id. | <code>string</code> | ✓ | |
| [vmw_network_config](variables.tf#L27) | VMware Engine network configuration. | <code title="object&#40;&#123;&#10; create &#61; optional&#40;bool, true&#41;&#10; description &#61; optional&#40;string, &#34;Terraform-managed.&#34;&#41;&#10; name &#61; optional&#40;string, &#34;default&#34;&#41;&#10;&#125;&#41;">object&#40;&#123;&#8230;&#125;&#41;</code> | | <code>&#123;&#125;</code> |
| [vmw_network_peerings](variables.tf#L37) | The network peerings towards users' VPCs or other VMware Engine networks. The key is the peering name suffix. | <code title="map&#40;object&#40;&#123;&#10; peer_network &#61; string&#10; description &#61; optional&#40;string, &#34;Managed by Terraform.&#34;&#41;&#10; export_custom_routes &#61; optional&#40;bool, false&#41;&#10; export_custom_routes_with_public_ip &#61; optional&#40;bool, false&#41;&#10; import_custom_routes &#61; optional&#40;bool, false&#41;&#10; import_custom_routes_with_public_ip &#61; optional&#40;bool, false&#41;&#10; peer_to_vmware_engine_network &#61; optional&#40;bool, false&#41;&#10;&#125;&#41;&#41;">map&#40;object&#40;&#123;&#8230;&#125;&#41;&#41;</code> | | <code>&#123;&#125;</code> |
| [vmw_private_cloud_configs](variables.tf#L51) | The VMware private cloud configurations. The key is the unique private cloud name suffix. | <code title="map&#40;object&#40;&#123;&#10; cidr &#61; string&#10; zone &#61; string&#10; additional_cluster_configs &#61; optional&#40;map&#40;object&#40;&#123;&#10; custom_core_count &#61; optional&#40;number&#41;&#10; node_count &#61; optional&#40;number, 3&#41;&#10; node_type_id &#61; optional&#40;string, &#34;standard-72&#34;&#41;&#10; &#125;&#41;&#41;, &#123;&#125;&#41;&#10; management_cluster_config &#61; optional&#40;object&#40;&#123;&#10; custom_core_count &#61; optional&#40;number&#41;&#10; name &#61; optional&#40;string, &#34;mgmt-cluster&#34;&#41;&#10; node_count &#61; optional&#40;number, 3&#41;&#10; node_type_id &#61; optional&#40;string, &#34;standard-72&#34;&#41;&#10; &#125;&#41;, &#123;&#125;&#41;&#10; description &#61; optional&#40;string, &#34;Managed by Terraform.&#34;&#41;&#10;&#125;&#41;&#41;">map&#40;object&#40;&#123;&#8230;&#125;&#41;&#41;</code> | | <code title="&#123;&#10; pcc_one &#61; &#123;&#10; cidr &#61; &#34;192.168.0.0&#47;24&#34;&#10; additional_cluster_configs &#61; &#123;&#10; test-cluster-one &#61; &#123;&#10; node_type_id &#61; &#34;standard-72&#34;&#10; node_count &#61; 6&#10; custom_core_count &#61; 28&#10; &#125;&#10; test-cluster-two &#61; &#123;&#10; node_type_id &#61; &#34;standard-72&#34;&#10; node_count &#61; 4&#10; custom_core_count &#61; 28&#10; &#125;&#10; &#125;&#10; zone &#61; &#34;europe-west8-a&#34;&#10; &#125;&#10;&#125;">&#123;&#8230;&#125;</code> |
2023-08-17 00:37:48 -07:00
## Outputs
| name | description | sensitive |
|---|---|:---:|
| [vmw_engine_network_config](outputs.tf#L17) | VMware engine network configuration. | |
| [vmw_engine_network_peerings](outputs.tf#L22) | The peerings created towards the user VPC or other VMware engine networks. | |
| [vmw_engine_private_clouds](outputs.tf#L27) | VMware engine private cloud resources. | |
2023-08-14 02:48:27 -07:00
<!-- END TFDOC -->