This Terraform module deploys a VMware Cloud Foundation (VCF) environment on Equinix Metal.
Name | Version |
---|---|
terraform | >= 1.5 |
equinix | >= 1.35 |
random | >= 3 |
Name | Version |
---|---|
equinix | >= 1.35 |
random | >= 3 |
Name | Source | Version |
---|---|---|
metal_vrf | ./modules/metal_vrf_w_interconnection_service_tokens | n/a |
metal_vrf_gateways_w_dynamic_neighbor | ./modules/metal_vrf_gateway_w_dynamic_neighbor | n/a |
ssh | ./modules/ssh/ | n/a |
vcf_metal_devices | ./modules/vcf_metal_device | n/a |
Name | Type |
---|---|
equinix_metal_device.bastion | resource |
equinix_metal_device.management | resource |
equinix_metal_port.bastion_bond0 | resource |
equinix_metal_port.management_bond0 | resource |
random_password.management | resource |
Name | Description | Type | Default | Required |
---|---|---|---|---|
equinix_client_id | Client ID for Equinix Fabric API interaction https://developer.equinix.com/docs?page=/dev-docs/fabric/overview | string |
n/a | yes |
equinix_client_secret | Client Secret for Equinix Fabric API interaction https://developer.equinix.com/docs?page=/dev-docs/fabric/overview | string |
n/a | yes |
esxi_devices | Map containing individual ESXi device details for each Metal Instance | map(object({ |
n/a | yes |
esxi_dns_server | DNS Server to be configured in ESXi (vcf-ems-deployment-parameter.xlsx > Deploy Parameters Sheet > F6:G6) | string |
n/a | yes |
esxi_domain | Domain Name to be configured in ESXi FQDN along with name in Map above (vcf-ems-deployment-parameter.xlsx > Deploy Parameters Sheet > J6:K6) | string |
n/a | yes |
esxi_management_gateway | Management Network Gateway for ESXi default TCP/IP Stack (vcf-ems-deployment-parameter.xlsx > Hosts and Networks Sheet > F8) | string |
n/a | yes |
esxi_management_subnet | Management Network Subnet Mask for VMK0 (vcf-ems-deployment-parameter.xlsx > Hosts and Networks Sheet > E8) | string |
n/a | yes |
esxi_mgmt_vlan | VLAN ID of Management VLAN for ESXi Management Network portgroup/VMK0 (vcf-ems-deployment-parameter.xlsx > Hosts and Networks Sheet > C8) | string |
n/a | yes |
esxi_network_space | Overall Network space for the VCF project | string |
n/a | yes |
esxi_ntp_server | NTP Server to be configured in ESXi (vcf-ems-deployment-parameter.xlsx > Deploy Parameters Sheet > F8:G8) | string |
n/a | yes |
esxi_password | mkpasswd Pre-hashed root password to be set for ESXi instances (Hash the password from vcf-ems-deployment-parameter.xlsx > Credentials Sheet > C8 using 'mkpasswd --method=SHA-512' from Linux whois package) | string |
n/a | yes |
esxi_plan | Slug for target hardware plan type. The only officially supported server plan for ESXi/VCF is the 'n3.xlarge.opt-m4s2' https://deploy.equinix.com/product/servers/n3-xlarge-opt-m4s2/ | string |
n/a | yes |
esxi_version_slug | Slug for ESXi OS version to be deployed on Metal Instances https://github.com/equinixmetal-images/changelog/blob/main/vmware-esxi/x86_64/8.md | string |
n/a | yes |
metal_auth_token | API Token for Equinix Metal API interaction https://deploy.equinix.com/developers/docs/metal/identity-access-management/api-keys/ | string |
n/a | yes |
metal_project_id | Equinix Metal Project UUID, can be found in the General Tab of the Organization Settings https://deploy.equinix.com/developers/docs/metal/identity-access-management/organizations/#organization-settings-and-roles | string |
n/a | yes |
metal_vrf_asn | ASN to be used for Metal VRF https://deploy.equinix.com/developers/docs/metal/networking/vrf/ | string |
n/a | yes |
metro | Equinix Metal Metro where Metal resources are going to be deployed https://deploy.equinix.com/developers/docs/metal/locations/metros/#metros-quick-reference | string |
n/a | yes |
vcf_vrf_networks | Map of Objects representing configuration specifics for various network segments required for VCF Management and Underlay Networking | map(object({ |
n/a | yes |
vrf_bgp_customer_peer_ip_pri | IP of BGP Neighbor on Primary Interconnection that Metal VRF should expect to peer with | string |
n/a | yes |
vrf_bgp_customer_peer_ip_sec | IP of BGP Neighbor on Secondary Interconnection that Metal VRF should expect to peer with | string |
n/a | yes |
vrf_bgp_md5_pri | MD5 Shared Password for BGP session authentication | string |
n/a | yes |
vrf_bgp_md5_sec | MD5 Shared Password for BGP session authentication | string |
n/a | yes |
vrf_bgp_metal_peer_ip_pri | IP of Metal VRF on Primary Interconnection for peering with BGP Neighbor | string |
n/a | yes |
vrf_bgp_metal_peer_ip_sec | IP of Metal VRF on Secondary Interconnection for peering with BGP Neighbor | string |
n/a | yes |
vrf_peer_asn | ASN that will establish BGP Peering with the Metal VRF across the interconnections | string |
n/a | yes |
vrf_peer_subnet | Subnet used for both Metal VRF interconnections (/29 or larger) | string |
n/a | yes |
vrf_peer_subnet_pri | Subnet used for point to point Metal VRF BGP Neighbor connection across the Primary interconnection | string |
n/a | yes |
vrf_peer_subnet_sec | Subnet used for point to point Metal VRF BGP Neighbor connection across the Secondary interconnection | string |
n/a | yes |
bastion_plan | Which plan to use for the ubuntu based bastion host. | string |
"m3.small.x86" |
no |
management_plan | Which plan to use for the windows management host. | string |
"m3.small.x86" |
no |
Name | Description |
---|---|
bastion_public_ip | The public IP address of the bastion host. |
management_password | Randomly generated password used for the Admin accounts on the management host. |
management_public_ip | The public IP address of the windows management host. |
next_steps | Instructions for accessing the management host. |
ssh_private_key | SSH Private key to use to connect to bastion and management hosts over SSH. |