gcloud container vmware clusters create (CLUSTER : --location=LOCATION) --version=VERSION (--admin-cluster-membership=ADMIN_CLUSTER_MEMBERSHIP : --admin-cluster-membership-location=ADMIN_CLUSTER_MEMBERSHIP_LOCATION --admin-cluster-membership-project=ADMIN_CLUSTER_MEMBERSHIP_PROJECT) ((--control-plane-vip=CONTROL_PLANE_VIP --ingress-vip=INGRESS_VIP) (--metal-lb-config-address-pools=[addresses=ADDRESSES],[avoid-buggy-ips=AVOID-BUGGY-IPS],[manual-assign=MANUAL-ASSIGN],[pool=POOL] | --control-plane-node-port=CONTROL_PLANE_NODE_PORT --ingress-http-node-port=INGRESS_HTTP_NODE_PORT --ingress-https-node-port=INGRESS_HTTPS_NODE_PORT --konnectivity-server-node-port=KONNECTIVITY_SERVER_NODE_PORT | [--f5-config-address=F5_CONFIG_ADDRESS --f5-config-partition=F5_CONFIG_PARTITION : --f5-config-snat-pool=F5_CONFIG_SNAT_POOL])) (--pod-address-cidr-blocks=POD_ADDRESS --service-address-cidr-blocks=SERVICE_ADDRESS : --control-plane-ip-block=[gateway=GATEWAY],[ips=IPS],[netmask=NETMASK] --dns-search-domains=[DNS_SEARCH_DOMAINS,…] --dns-servers=[DNS_SERVERS,…] --ntp-servers=[NTP_SERVERS,…] --enable-dhcp | --static-ip-config-ip-blocks=[gateway=GATEWAY],[ips=IPS],[netmask=NETMASK]) [--admin-users=ADMIN_USERS] [--annotations=[KEY=VALUE,…]] [--async] [--description=DESCRIPTION] [--disable-aag-config] [--disable-vsphere-csi] [--enable-auto-repair] [--enable-vm-tracking] [--upgrade-policy=[control-plane-only=CONTROL-PLANE-ONLY]] [--validate-only] [--cpus=CPUS --enable-auto-resize --memory=MEMORY --replicas=REPLICAS] [--disable-control-plane-v2 | --enable-control-plane-v2] [--enable-advanced-networking --enable-dataplane-v2] [--vcenter-ca-cert-data=VCENTER_CA_CERT_DATA --vcenter-cluster=VCENTER_CLUSTER --vcenter-datacenter=VCENTER_DATACENTER --vcenter-datastore=VCENTER_DATASTORE --vcenter-folder=VCENTER_FOLDER --vcenter-resource-pool=VCENTER_RESOURCE_POOL --vcenter-storage-policy-name=VCENTER_STORAGE_POLICY_NAME] [GCLOUD_WIDE_FLAG …]
my-cluster
managed in location us-west1, run:
gcloud container vmware clusters create my-cluster --location=us-west1
To set the project attribute:
cluster on the command line with a fully
specified name;
--project on the command line;
core/project.
CLUSTER
To set the cluster attribute:
cluster on the command line.
--location=LOCATIONlocation attribute:
cluster on the command line with a fully
specified name;
--location on the command line;
container_vmware/location.
--version=VERSIONExamples:
gcloud container vmware clusters create
--admin-cluster-membership=projects/example-project-12345/locations/us-west1/memberships/example-admin-cluster-nameor
gcloud container vmware clusters create
--admin-cluster-membership-project=example-project-12345
--admin-cluster-membership-location=us-west1
--admin-cluster-membership=example-admin-cluster-nameThe arguments in this group can be used to specify the attributes of this resource.
--admin-cluster-membership=ADMIN_CLUSTER_MEMBERSHIP
To set the admin_cluster_membership attribute:
--admin-cluster-membership on the command
line.
--admin-cluster-membership-location=ADMIN_CLUSTER_MEMBERSHIP_LOCATIONlocation attribute:
--admin-cluster-membership on the command line
with a fully specified name;
--admin-cluster-membership-location on the
command line.
--admin-cluster-membership-project=ADMIN_CLUSTER_MEMBERSHIP_PROJECTproject attribute:
--admin-cluster-membership on the command line
with a fully specified name;
--admin-cluster-membership-project on the
command line.
--control-plane-vip=CONTROL_PLANE_VIP--ingress-vip=INGRESS_VIP--metal-lb-config-address-pools=[addresses=ADDRESSES],[avoid-buggy-ips=AVOID-BUGGY-IPS],[manual-assign=MANUAL-ASSIGN],[pool=POOL]Examples:
To specify MetalLB load balancer configurations for two address pools
pool1 and pool2,
gcloud gcloud container vmware clusters create
--metal-lb-config-address-pools 'pool=pool1,avoid-buggy-ips=True,manual-assign=True,addresses=192.168.1.1/32;192.168.1.2-192.168.1.3'
--metal-lb-config-address-pools 'pool=pool2,avoid-buggy-ips=False,manual-assign=False,addresses=192.168.2.1/32;192.168.2.2-192.168.2.3'--control-plane-node-port=CONTROL_PLANE_NODE_PORT--ingress-http-node-port=INGRESS_HTTP_NODE_PORT--ingress-https-node-port=INGRESS_HTTPS_NODE_PORT--konnectivity-server-node-port=KONNECTIVITY_SERVER_NODE_PORT--f5-config-address=F5_CONFIG_ADDRESS--f5-config-partition=F5_CONFIG_PARTITION--f5-config-snat-pool=F5_CONFIG_SNAT_POOL--pod-address-cidr-blocks=POD_ADDRESS--service-address-cidr-blocks=SERVICE_ADDRESS--control-plane-ip-block=[gateway=GATEWAY],[ips=IPS],[netmask=NETMASK]--replicas.
To specify the control plane IP block,
gcloud gcloud container vmware clusters create
--control-plane-ip-block 'gateway=192.168.0.1,netmask=255.255.255.0,ips=192.168.1.1;0.0.0.0 localhost;'--dns-search-domains=[DNS_SEARCH_DOMAINS,…]--dns-servers=[DNS_SERVERS,…]--ntp-servers=[NTP_SERVERS,…]--enable-dhcp--static-ip-config-ip-blocks=[gateway=GATEWAY],[ips=IPS],[netmask=NETMASK]Expect an individual IP address, an individual IP address with an optional hostname, or a CIDR block.
Example:
To specify two Static IP blocks,
gcloud gcloud container vmware clusters create
--static-ip-config-ip-blocks 'gateway=192.168.0.1,netmask=255.255.255.0,ips=192.168.1.1;0.0.0.0 localhost;192.168.1.2/16'
--static-ip-config-ip-blocks 'gateway=192.168.1.1,netmask=255.255.0.0,ips=8.8.8.8;4.4.4.4'--admin-users=ADMIN_USERSTo add multiple users, specify one in each flag. When updating, the update command overwrites the whole grant list. Specify all existing and new users that you want to be cluster administrators.
Examples:
gcloud container vmware clusters create
--admin-users alice@example.com
--admin-users bob@example.com--annotations=[KEY=VALUE,…]--async--description=DESCRIPTION--disable-aag-config--disable-vsphere-csi--enable-auto-repair--enable-vm-tracking--upgrade-policy=[control-plane-only=CONTROL-PLANE-ONLY]Example:
To upgrade the control plane only and keep worker node pools version unchanged, first specify the policy:
gcloud container vmware clusters create CLUSTER --upgrade-policy control-plane-only=TrueThen to start the upgrade operation using the specified policy, run:
gcloud container vmware clusters upgrade CLUSTER --version=VERSIONAfter upgrading only the cluster control plane, to upgrade an individual node pool, run:
gcloud container vmware node-pools update NODE_POOL --version=VERSIONExample:
Alternatively, to upgrade both the control plane and all worker node pools, first specify the policy:
gcloud container vmware clusters create CLUSTER --upgrade-policy control-plane-only=FalseThen to start the upgrade operation using the specified policy, run:
gcloud container vmware clusters upgrade CLUSTER --version=VERSION--validate-only--cpus=CPUS--enable-auto-resize--memory=MEMORY--replicas=REPLICAS--disable-control-plane-v2--enable-control-plane-v2--enable-advanced-networking--enable-dataplane-v2--vcenter-ca-cert-data=VCENTER_CA_CERT_DATA--vcenter-cluster=VCENTER_CLUSTER--vcenter-datacenter=VCENTER_DATACENTER--vcenter-datastore=VCENTER_DATASTORE--vcenter-folder=VCENTER_FOLDER--vcenter-resource-pool=VCENTER_RESOURCE_POOL--vcenter-storage-policy-name=VCENTER_STORAGE_POLICY_NAME--access-token-file,
--account, --billing-project,
--configuration,
--flags-file,
--flatten, --format, --help, --impersonate-service-account,
--log-http,
--project, --quiet, --trace-token, --user-output-enabled,
--verbosity.
Run $ gcloud help for details.
gcloud alpha container vmware clusters creategcloud beta container vmware clusters create
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-05-27 UTC.