GCP.VMwareEngine reference
Datastore
Section titled “Datastore”Source:
src/GCP/VMwareEngine/Datastore.ts
A Google Cloud VMware Engine NFS datastore.
Datastores have no labels field, so Alchemy stamps ownership into the
description for list / nuke. Changing datastoreId, location, or
the NFS backend identity replaces the datastore. Description updates
in place.
Datastore: Creating a Datastore
Section titled “Datastore: Creating a Datastore”Filestore-backed NFS datastore
const datastore = yield* GCP.VMwareEngine.Datastore("Nfs", { nfsDatastore: { googleFileService: { filestoreInstance: "projects/my-project/locations/us-central1-a/instances/share", }, }, description: "app nfs datastore",});Third-party NFS
const datastore = yield* GCP.VMwareEngine.Datastore("VendorNfs", { nfsDatastore: { thirdPartyFileService: { servers: ["10.1.2.3"], network: "projects/my-project/global/networks/default", fileShare: "vol1", }, },});NetworkPeering
Section titled “NetworkPeering”Source:
src/GCP/VMwareEngine/NetworkPeering.ts
A peering between a VMware Engine network and a VPC or another VMware Engine network. NetworkPeering is a global resource.
Network peerings have no labels field, so Alchemy stamps ownership into
the description for list / nuke. Identity, peer network, peer type,
and VMware Engine network are immutable. Description updates in place.
NetworkPeering: Creating a NetworkPeering
Section titled “NetworkPeering: Creating a NetworkPeering”const peering = yield* GCP.VMwareEngine.NetworkPeering("ToVpc", { vmwareEngineNetwork: ven.name, peerNetwork: "projects/my-project/global/networks/default", peerNetworkType: "STANDARD", description: "gcve to vpc",});NetworkPoliciesExternalAccessRule
Section titled “NetworkPoliciesExternalAccessRule”Source:
src/GCP/VMwareEngine/NetworkPoliciesExternalAccessRule.ts
An inbound firewall rule on a VMware Engine network policy that filters traffic destined to ExternalAddress resources.
Rules have no labels field, so Alchemy stamps ownership into the
description for list / nuke. Changing the parent policy, rule id, or
location replaces the rule. Priority, action, protocol, ranges, ports,
and description update in place.
NetworkPoliciesExternalAccessRule: Creating a NetworkPoliciesExternalAccessRule
Section titled “NetworkPoliciesExternalAccessRule: Creating a NetworkPoliciesExternalAccessRule”const rule = yield* GCP.VMwareEngine.NetworkPoliciesExternalAccessRule( "Https", { networkPolicy: policy.name, action: "ALLOW", ipProtocol: "tcp", priority: 1000, sourceIpRanges: [{ ipAddressRange: "0.0.0.0/0" }], sourcePorts: ["0-65535"], destinationIpRanges: [{ ipAddressRange: "0.0.0.0/0" }], destinationPorts: ["443"], description: "allow https", },);NetworkPolicy
Section titled “NetworkPolicy”Source:
src/GCP/VMwareEngine/NetworkPolicy.ts
A regional VMware Engine network policy that controls internet and external IP access for private clouds on a VMware Engine network.
Network policies have no labels field, so Alchemy stamps ownership into
the description for list / nuke. Changing networkPolicyId,
location, or vmwareEngineNetwork replaces the policy. CIDR,
internet access, external IP, and description update in place.
NetworkPolicy: Creating a NetworkPolicy
Section titled “NetworkPolicy: Creating a NetworkPolicy”const policy = yield* GCP.VMwareEngine.NetworkPolicy("Edge", { vmwareEngineNetwork: ven.name, edgeServicesCidr: "192.168.100.0/26", internetAccess: { enabled: false }, externalIp: { enabled: false }, description: "edge policy",});PrivateCloud
Section titled “PrivateCloud”Source:
src/GCP/VMwareEngine/PrivateCloud.ts
A Google Cloud VMware Engine private cloud. STANDARD and
TIME_LIMITED clouds are zonal; STRETCHED clouds are regional.
Creating a private cloud also creates its management cluster.
Private clouds have no labels field, so Alchemy stamps ownership into
the description for list / nuke. Type, location, management cluster
identity, and network config are immutable. Description updates in
place. Delete uses delayHours=0 so billing stops immediately.
Provisioning typically takes 30-120 minutes.
PrivateCloud: Creating a PrivateCloud
Section titled “PrivateCloud: Creating a PrivateCloud”const cloud = yield* GCP.VMwareEngine.PrivateCloud("Sddc", { location: "us-central1-a", type: "STANDARD", networkConfig: { managementCidr: "192.168.1.0/24", vmwareEngineNetwork: ven.name, }, managementCluster: { clusterId: "mgmt", nodeTypeConfigs: { "standard-72": { nodeCount: 3 }, }, }, description: "app sddc",});PrivateCloudsCluster
Section titled “PrivateCloudsCluster”Source:
src/GCP/VMwareEngine/PrivateCloudsCluster.ts
A workload cluster in a VMware Engine private cloud. The management cluster is created with the private cloud and cannot be deleted independently.
Clusters have no labels or description field, so Alchemy treats
clusters whose parent private cloud carries the [alchemy …]
ownership marker as owned for list / nuke. Changing the parent
cloud, cluster id, location, or stretched config replaces the
cluster. Node counts and autoscaling update in place.
PrivateCloudsCluster: Creating a PrivateCloudsCluster
Section titled “PrivateCloudsCluster: Creating a PrivateCloudsCluster”const cluster = yield* GCP.VMwareEngine.PrivateCloudsCluster("Work", { privateCloud: cloud.name, nodeTypeConfigs: { "standard-72": { nodeCount: 3 }, },});PrivateCloudsExternalAddress
Section titled “PrivateCloudsExternalAddress”Source:
src/GCP/VMwareEngine/PrivateCloudsExternalAddress.ts
An allocated external IP address mapped to a workload VM inside a
VMware Engine private cloud. The corresponding network policy must have
externalIp enabled.
External addresses have no labels field, so Alchemy stamps ownership
into the description for list / nuke. Changing the parent cloud,
address id, or location replaces the address. Internal IP and
description update in place.
PrivateCloudsExternalAddress: Creating a PrivateCloudsExternalAddress
Section titled “PrivateCloudsExternalAddress: Creating a PrivateCloudsExternalAddress”const address = yield* GCP.VMwareEngine.PrivateCloudsExternalAddress( "Web", { privateCloud: cloud.name, internalIp: "192.168.1.10", description: "web vip", },);PrivateCloudsLoggingServer
Section titled “PrivateCloudsLoggingServer”Source:
src/GCP/VMwareEngine/PrivateCloudsLoggingServer.ts
A syslog destination that receives vCenter or ESXi logs from a VMware Engine private cloud.
Logging servers have no labels or description field, so Alchemy treats
servers whose parent private cloud carries the [alchemy …] ownership
marker as owned for list / nuke. Changing the parent cloud, server
id, or location replaces the server. Hostname, port, protocol, and
source type update in place.
PrivateCloudsLoggingServer: Creating a PrivateCloudsLoggingServer
Section titled “PrivateCloudsLoggingServer: Creating a PrivateCloudsLoggingServer”const syslog = yield* GCP.VMwareEngine.PrivateCloudsLoggingServer( "Esxi", { privateCloud: cloud.name, hostname: "logs.example.com", port: 514, protocol: "UDP", sourceType: "ESXI", },);PrivateCloudsManagementDnsZoneBinding
Section titled “PrivateCloudsManagementDnsZoneBinding”Source:
src/GCP/VMwareEngine/PrivateCloudsManagementDnsZoneBinding.ts
A binding between a consumer VPC (or VMware Engine network) and a private cloud’s management DNS zone.
The management DNS zone holds FQDNs for ESXi hosts and management appliances (vCenter, NSX Manager). Changing the parent private cloud, binding id, or bound network replaces the binding. Description updates in place.
PrivateCloudsManagementDnsZoneBinding: Creating a Binding
Section titled “PrivateCloudsManagementDnsZoneBinding: Creating a Binding”Bind a consumer VPC
const binding = yield* GCP.VMwareEngine.PrivateCloudsManagementDnsZoneBinding( "VpcDns", { privateCloud: cloud.name, vpcNetwork: "projects/my-project/global/networks/default", description: "consumer vpc", },);Bind a VMware Engine network
const binding = yield* GCP.VMwareEngine.PrivateCloudsManagementDnsZoneBinding( "VenDns", { privateCloud: cloud.name, vmwareEngineNetwork: ven.name, description: "standard ven", },);PrivateCloudsManagementDnsZoneBinding: Updating a Binding
Section titled “PrivateCloudsManagementDnsZoneBinding: Updating a Binding”Re-declare the same logical id with changed props; the engine keeps the physical resource and updates it in place.
const binding = yield* GCP.VMwareEngine.PrivateCloudsManagementDnsZoneBinding( "VpcDns", { privateCloud: cloud.name, vpcNetwork: "projects/my-project/global/networks/default", description: "consumer vpc v2", },);PrivateConnection
Section titled “PrivateConnection”Source:
src/GCP/VMwareEngine/PrivateConnection.ts
A private connection that peers a service VPC with a VMware Engine network so private clouds can reach Google Cloud services, NetApp, Dell PowerScale, or a third-party VPC.
Changing id, location, type, vmwareEngineNetwork, or
serviceNetwork replaces the connection. Description and routing
mode update in place.
PrivateConnection: Creating a Connection
Section titled “PrivateConnection: Creating a Connection”Third-party VPC
const connection = yield* GCP.VMwareEngine.PrivateConnection("Peer", { type: "THIRD_PARTY_SERVICE", vmwareEngineNetwork: ven.name, serviceNetwork: "projects/my-project/global/networks/default", description: "consumer vpc",});Private Service Access
const connection = yield* GCP.VMwareEngine.PrivateConnection("Psa", { location: "us-central1", type: "PRIVATE_SERVICE_ACCESS", vmwareEngineNetwork: ven.name, serviceNetwork: "projects/my-project/global/networks/servicenetworking", routingMode: "GLOBAL",});PrivateConnection: Updating a Connection
Section titled “PrivateConnection: Updating a Connection”Re-declare the same logical id with changed props; the engine keeps the physical resource and updates it in place.
const connection = yield* GCP.VMwareEngine.PrivateConnection("Psa", { location: "us-central1", type: "PRIVATE_SERVICE_ACCESS", vmwareEngineNetwork: ven.name, serviceNetwork: "projects/my-project/global/networks/servicenetworking", routingMode: "REGIONAL", description: "psa v2",});VmwareEngineNetwork
Section titled “VmwareEngineNetwork”Source:
src/GCP/VMwareEngine/VmwareEngineNetwork.ts
A VMware Engine network that private clouds attach to for intranet, internet, and Google Cloud connectivity.
STANDARD networks live at locations/global. LEGACY networks are
regional singletons named {region}-default. Changing id, location,
or type replaces the network. Description updates in place.
VmwareEngineNetwork: Creating a Network
Section titled “VmwareEngineNetwork: Creating a Network”Generated STANDARD network
const network = yield* GCP.VMwareEngine.VmwareEngineNetwork("Ven", { type: "STANDARD", description: "app network",});Named STANDARD network
const network = yield* GCP.VMwareEngine.VmwareEngineNetwork("Ven", { vmwareEngineNetworkId: "app-ven", location: "global", type: "STANDARD", description: "prod network",});VmwareEngineNetwork: Legacy regional network
Section titled “VmwareEngineNetwork: Legacy regional network”const network = yield* GCP.VMwareEngine.VmwareEngineNetwork("Legacy", { location: "us-central1", type: "LEGACY", description: "legacy default",});VmwareEngineNetwork: Updating a Network
Section titled “VmwareEngineNetwork: Updating a Network”Re-declare the same logical id with changed props; the engine keeps the physical resource and updates it in place.
const network = yield* GCP.VMwareEngine.VmwareEngineNetwork("Ven", { location: "global", type: "STANDARD", description: "prod network v2",});