gcloud alpha edge-cloud container clusters create

NAME
gcloud alpha edge-cloud container clusters create - create an Edge Container cluster
SYNOPSIS
gcloud alpha edge-cloud container clusters create(CLUSTER :--location=LOCATION)[--admin-users=ADMIN_USERS][--async][--cluster-ipv4-cidr=CLUSTER_IPV4_CIDR; default="10.0.0.0/17"][--cluster-ipv6-cidr=CLUSTER_IPV6_CIDR][--container-default-runtime-class=CONTAINER_DEFAULT_RUNTIME_CLASS][--control-plane-kms-key=CONTROL_PLANE_KMS_KEY][--control-plane-machine-filter=CONTROL_PLANE_MACHINE_FILTER][--control-plane-node-count=CONTROL_PLANE_NODE_COUNT][--control-plane-node-location=CONTROL_PLANE_NODE_LOCATION][--control-plane-node-storage-schema=CONTROL_PLANE_NODE_STORAGE_SCHEMA][--control-plane-shared-deployment-policy=CONTROL_PLANE_SHARED_DEPLOYMENT_POLICY][--default-max-pods-per-node=DEFAULT_MAX_PODS_PER_NODE][--enable-cluster-isolation=ENABLE_CLUSTER_ISOLATION][--enable-google-group-authentication][--external-lb-address-pools=EXTERNAL_LB_ADDRESS_POOLS][--external-lb-ipv4-address-pools=[EXTERNAL_LB_IPV4_ADDRESS,…]][--external-lb-ipv6-address-pools=[EXTERNAL_LB_IPV6_ADDRESS,…]][--fleet-project=FLEET_PROJECT][--labels=[KEY=VALUE,…]][--lro-timeout=LRO_TIMEOUT][--maintenance-window-end=MAINTENANCE_WINDOW_END][--maintenance-window-recurrence=MAINTENANCE_WINDOW_RECURRENCE][--maintenance-window-start=MAINTENANCE_WINDOW_START][--offline-reboot-ttl=OFFLINE_REBOOT_TTL][--release-channel=RELEASE_CHANNEL; default="RELEASE_CHANNEL_UNSPECIFIED"][--services-ipv4-cidr=SERVICES_IPV4_CIDR; default="10.96.0.0/12"][--services-ipv6-cidr=SERVICES_IPV6_CIDR][--system-addons-config=SYSTEM_ADDONS_CONFIG][--version=VERSION][--zone-storage-kms-key=ZONE_STORAGE_KMS_KEY][GCLOUD_WIDE_FLAG]
DESCRIPTION
(ALPHA) Create an Edge Container cluster.
EXAMPLES
To create a cluster calledmy-cluster in region us-central1, run:
gcloudalphaedge-cloudcontainerclusterscreatemy-cluster--location=us-central1
POSITIONAL ARGUMENTS
Cluster resource - Edge Container cluster to create. The arguments in this groupcan be used to specify the attributes of this resource. (NOTE) Some attributesare not given arguments in this group but can be set in other ways.

To set theproject attribute:

  • provide the argumentcluster on the command line with a fullyspecified name;
  • provide the argument--project on the command line;
  • set the propertycore/project.

This must be specified.

CLUSTER
ID of the cluster or fully qualified identifier for the cluster.

To set thecluster attribute:

  • provide the argumentcluster on the command line.

This positional argument must be specified if any of the other arguments in thisgroup are specified.

--location=LOCATION
Google Cloud location for the cluster.

To set thelocation attribute:

  • provide the argumentcluster on the command line with a fullyspecified name;
  • provide the argument--location on the command line.
FLAGS
--admin-users=ADMIN_USERS
Username (Google email address) of the user who should be granted cluster-admininitially. This currently supports exactly one admin. If not set, the accountissuing the creation request will be used by default.
--async
Return immediately, without waiting for the operation in progress to complete.
--cluster-ipv4-cidr=CLUSTER_IPV4_CIDR; default="10.0.0.0/17"
All pods in the cluster are assigned an RFC1918 IPv4 address from this block.This field cannot be changed after creation.
--cluster-ipv6-cidr=CLUSTER_IPV6_CIDR
If specified, all pods in the cluster are assigned an RFC4193 IPv6 address fromthis block. This field cannot be changed after creation.
--container-default-runtime-class=CONTAINER_DEFAULT_RUNTIME_CLASS
Name of the default runtime class for containers. It supports two values RUNCand GVISOR.
--control-plane-kms-key=CONTROL_PLANE_KMS_KEY
Google Cloud KMS key that will be used to secure persistent disks of the controlplane VMs of a remote control plane cluster. The Edge Container service accountfor this project must haveroles/cloudkms.cryptoKeyEncrypterDecrypter on the key.

If not provided, a Google-managed key will be used by default.

--control-plane-machine-filter=CONTROL_PLANE_MACHINE_FILTER
Only machines matching this filter will be allowed to host local control planenodes. The filtering language accepts strings like "name=<name>", and isdocumented here:AIP-160.
--control-plane-node-count=CONTROL_PLANE_NODE_COUNT
The number of local control plane nodes in a cluster. Use one to create asingle-node control plane or use three to create a high availability controlplane. Any other numbers of nodes will not be accepted.
--control-plane-node-location=CONTROL_PLANE_NODE_LOCATION
Google Edge Cloud zone where the local control plane nodes will be created.
--control-plane-node-storage-schema=CONTROL_PLANE_NODE_STORAGE_SCHEMA
Name for the storage schema of control plane nodes.
--control-plane-shared-deployment-policy=CONTROL_PLANE_SHARED_DEPLOYMENT_POLICY
Policy configuration about how user application is deployed for local controlplane cluster. It supports two values, ALLOWED and DISALLOWED. ALLOWED meansthat user application can be deployed on control plane nodes. DISALLOWED meansthat user application can not be deployed on control plane nodes. Instead, itcan only be deployed on worker nodes. By default, this value is DISALLOWED. Theinput is case insensitive.
--default-max-pods-per-node=DEFAULT_MAX_PODS_PER_NODE
The default maximum number of pods per node.
--enable-cluster-isolation=ENABLE_CLUSTER_ISOLATION
If set, the cluster will be created in a secure cluster isolation mode.
--enable-google-group-authentication
If set, the cluster will be configured to use Google Group authentication.
--external-lb-address-pools=EXTERNAL_LB_ADDRESS_POOLS
Path to a YAML/JSON file containing external load balancer pool configuration.External load balancer pools are used for data plane load balancing of localcontrol plane clusters, with custom config such as address pool name. Either--external-lb-ipv4-address-pools or --external-lb-address-pools should bespecified. Existing pools cannot be updated after cluster creation; only addingnew pools is allowed currently.

For example,

{"externalLoadBalancerAddressPools":[{"addressPool":"MyLoadBalancerPool","ipv4Range":["10.200.0.200-10.200.0.204","10.200.0.300/30"],"avoidBuggyIps":"false","manualAssign":"true"}]}
address_pool
Optional. A name that identifies an address pool. If a name is not specified, anauto-generated one will be used.
ipv4_range
Mandatory. One or more ipv4 address range, each must be specified as one of thefollowing two types of values:
1.AIPv4addressrange,forexample,"10.0.0.1-10.0.0.10".ArangethatcontainsasingleIP(e.g."10.0.0.1-10.0.0.1")isallowed.
2.AIPv4CIDRblock,forexample,"10.0.0.1/24"
ipv6_range
Optional. One or more ipv6 address range, each must be specified as one of thefollowing two types of values:
1.AIPv6addressrange,forexample,"2001:db8::1-2001:db8::a".ArangethatcontainsasingleIP(e.g."2001:db8::1-2001:db8::1")isallowed.
2.AIPv6CIDRblock,forexample,"2001:db8::/120"
avoid_buggy_ips
Optional. If true, the pool omits IP addresses ending in .0 and .255. Somenetwork hardware drops traffic to these special addresses. Its default value isfalse.
manual_assign
Optional. If true, addresses in this pool are not automatically assigned toKubernetes Services. If true, an IP address in this pool is used only when it isspecified explicitly by a service. Its default value is false.
--external-lb-ipv4-address-pools=[EXTERNAL_LB_IPV4_ADDRESS,…]
IPv4 address pools that are used for data plane load balancing of local controlplane clusters. Existing pools cannot be updated after cluster creation; onlyadding new pools is allowed. Each address pool must be specified as one of thefollowing two types of values: 1. A IPv4 address range, for example,"10.0.0.1-10.0.0.10". A range that contains a single IP (e.g."10.0.0.1-10.0.0.1") is allowed. 2. A IPv4 CIDR block, for example,"10.0.0.1/24" Use comma when specifying multiple address pools, for example:--external-lb-ipv4-address-pools 10.0.0.1-10.0.0.10,10.0.0.1/24
--external-lb-ipv6-address-pools=[EXTERNAL_LB_IPV6_ADDRESS,…]
IPv6 address pools that are used for data plane load balancing of local controlplane clusters. Existing pools cannot be updated after cluster creation; onlyadding new pools is allowed. Each address pool must be specified as one of thefollowing two types of values: 1. A IPv6 address range, for example,"2001:db8::1-2001:db8::a". A range that contains a single IP (e.g."2001:db8::1-2001:db8::1") is allowed. 2. A IPv6 CIDR block, for example,"2001:db8::/120" Use comma when specifying multiple address pools, for example:--external-lb-ipv6-address-pools 2001:db8::1-2001:db8::a,2001:db8::/120
--fleet-project=FLEET_PROJECT
Name of the Fleet host project where the cluster is registered.
--labels=[KEY=VALUE,…]
List of label KEY=VALUE pairs to add.

Keys must start with a lowercase character and contain only hyphens (-),underscores (_), lowercase characters, and numbers. Values mustcontain only hyphens (-), underscores (_), lowercase characters,and numbers.

--lro-timeout=LRO_TIMEOUT
Overwrite the default LRO maximum timeout.
--maintenance-window-end=MAINTENANCE_WINDOW_END
End time of the recurring cluster maintenance window in the RFC 3339(https://www.rfc-editor.org/rfc/rfc3339.txt) format. E.g. "2021-01-01T00:00:00Z"or "2021-01-01T00:00:00-05:00"
--maintenance-window-recurrence=MAINTENANCE_WINDOW_RECURRENCE
An RFC 5545 (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) recurrencerule for how the cluster maintenance window recurs. They go on for the span oftime between the start and the end time. E.g. FREQ=WEEKLY;BYDAY=SU.
--maintenance-window-start=MAINTENANCE_WINDOW_START
Start time of the recurring cluster maintenance window in the RFC 3339(https://www.rfc-editor.org/rfc/rfc3339.txt) format. E.g. "2021-01-01T00:00:00Z"or "2021-01-01T00:00:00-05:00"
--offline-reboot-ttl=OFFLINE_REBOOT_TTL
Specifies the maximum duration a node can reboot offline (without connection toGoogle) and then rejoin its cluster to resume its designated workloads. Thisduration is relative to the machine's most recent connection to Google. Themaximum allowed duration is 7 days. To disallow offline reboot, set the durationto "PT0S". The parameter should be an ISO 8601 duration string, for example,"P1DT1H2M3S".
--release-channel=RELEASE_CHANNEL; default="RELEASE_CHANNEL_UNSPECIFIED"
Release channel a cluster is subscribed to. It supports two values, NONE andREGULAR. NONE is used to opt out of any release channel. Clusters subscribed tothe REGULAR channel will be automatically upgraded to versions that areconsidered GA quality, and cannot be manually upgraded. Additionally, if theREGULAR channel is used, a specific target version cannot be set with the'version' flag. If left unspecified, the release channel will default toREGULAR.
--services-ipv4-cidr=SERVICES_IPV4_CIDR; default="10.96.0.0/12"
All services in the cluster are assigned an RFC1918 IPv4 address from thisblock. This field cannot be changed after creation.
--services-ipv6-cidr=SERVICES_IPV6_CIDR
If specified, all services in the cluster are assigned an RFC4193 IPv6 addressfrom this block. This field cannot be changed after creation.
--system-addons-config=SYSTEM_ADDONS_CONFIG
If specified as a YAML/JSON file, customized configuration in this file will beapplied to the system add-ons.

For example,

{ "systemAddonsConfig": { "ingress": { "disabled": true, "ipv4_vip": "10.0.0.1"} } }

--version=VERSION
Target cluster version. For example: "1.5.0".
--zone-storage-kms-key=ZONE_STORAGE_KMS_KEY
Google Cloud KMS key that will be used to encrypt and decrypt the root key forzone storage encryption. The zone storage KMS key is only applicable to thestorage infra cluster. The Edge Container service account for this project musthaveroles/cloudkms.cryptoKeyEncrypterDecrypter on the key.

If not provided, a Google-managed key will be used by default.

GCLOUD WIDE FLAGS
These flags are available to all commands:--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.

API REFERENCE
This command uses the edgecontainer/v1alpha API. The full documentation for thisAPI can be found at:https://cloud.google.com/edge-cloud
NOTES
This command is currently in alpha and might change without notice. If thiscommand fails with API permission errors despite specifying the correct project,you might be trying to access an API with an invitation-only early accessallowlist. This variant is also available:
gcloudedge-cloudcontainerclusterscreate

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-10-07 UTC.