REST Resource: projects.locations.clusters

Resource: Cluster

A Google Kubernetes Engine cluster.

JSON representation
{
  "name": string,
  "description": string,
  "initialNodeCount": number,
  "nodeConfig": {
    object(NodeConfig)
  },
  "masterAuth": {
    object(MasterAuth)
  },
  "loggingService": string,
  "monitoringService": string,
  "network": string,
  "clusterIpv4Cidr": string,
  "addonsConfig": {
    object(AddonsConfig)
  },
  "subnetwork": string,
  "nodePools": [
    {
      object(NodePool)
    }
  ],
  "locations": [
    string
  ],
  "enableKubernetesAlpha": boolean,
  "networkPolicy": {
    object(NetworkPolicy)
  },
  "ipAllocationPolicy": {
    object(IPAllocationPolicy)
  },
  "masterAuthorizedNetworksConfig": {
    object(MasterAuthorizedNetworksConfig)
  },
  "maintenancePolicy": {
    object(MaintenancePolicy)
  },
  "podSecurityPolicyConfig": {
    object(PodSecurityPolicyConfig)
  },
  "selfLink": string,
  "zone": string,
  "endpoint": string,
  "initialClusterVersion": string,
  "currentMasterVersion": string,
  "currentNodeVersion": string,
  "createTime": string,
  "status": enum(Status),
  "statusMessage": string,
  "nodeIpv4CidrSize": number,
  "servicesIpv4Cidr": string,
  "instanceGroupUrls": [
    string
  ],
  "currentNodeCount": number,
  "expireTime": string,
  "location": string,
}
Fields
name

string

The name of this cluster. The name must be unique within this project and zone, and can be up to 40 characters with the following restrictions:

  • Lowercase letters, numbers, and hyphens only.
  • Must start with a letter.
  • Must end with a number or a letter.

description

string

An optional description of this cluster.

initialNodeCount

number

The number of nodes to create in this cluster. You must ensure that your Compute Engine resource quota is sufficient for this number of instances. You must also have available firewall and routes quota. For requests, this field should only be used in lieu of a "nodePool" object, since this configuration (along with the "nodeConfig") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a nodePool at the same time.

nodeConfig

object(NodeConfig)

Parameters used in creating the cluster's nodes. See nodeConfig for the description of its properties. For requests, this field should only be used in lieu of a "nodePool" object, since this configuration (along with the "initialNodeCount") will be used to create a "NodePool" object with an auto-generated name. Do not use this and a nodePool at the same time. For responses, this field will be populated with the node configuration of the first node pool.

If unspecified, the defaults are used.

masterAuth

object(MasterAuth)

The authentication information for accessing the master endpoint.

loggingService

string

The logging service the cluster should use to write logs. Currently available options:

  • logging.googleapis.com - the Google Cloud Logging service.
  • none - no logs will be exported from the cluster.
  • if left as an empty string,logging.googleapis.com will be used.

monitoringService

string

The monitoring service the cluster should use to write metrics. Currently available options:

  • monitoring.googleapis.com - the Google Cloud Monitoring service.
  • none - no metrics will be exported from the cluster.
  • if left as an empty string, monitoring.googleapis.com will be used.

network

string

The name of the Google Compute Engine network to which the cluster is connected. If left unspecified, the default network will be used.

clusterIpv4Cidr

string

The IP address range of the container pods in this cluster, in CIDR notation (e.g. 10.96.0.0/14). Leave blank to have one automatically chosen or specify a /14 block in 10.0.0.0/8.

addonsConfig

object(AddonsConfig)

Configurations for the various addons available to run in the cluster.

subnetwork

string

The name of the Google Compute Engine subnetwork to which the cluster is connected.

nodePools[]

object(NodePool)

The node pools associated with this cluster. This field should not be set if "nodeConfig" or "initialNodeCount" are specified.

locations[]

string

The list of Google Compute Engine locations in which the cluster's nodes should be located.

enableKubernetesAlpha

boolean

Kubernetes alpha features are enabled on this cluster. This includes alpha API groups (e.g. v1beta1) and features that may not be production ready in the kubernetes version of the master and nodes. The cluster has no SLA for uptime and master/node upgrades are disabled. Alpha enabled clusters are automatically deleted thirty days after creation.

networkPolicy

object(NetworkPolicy)

Configuration options for the NetworkPolicy feature.

ipAllocationPolicy

object(IPAllocationPolicy)

Configuration for cluster IP allocation.

masterAuthorizedNetworksConfig

object(MasterAuthorizedNetworksConfig)

The configuration options for master authorized networks feature.

maintenancePolicy

object(MaintenancePolicy)

Configure the maintenance policy for this cluster.

podSecurityPolicyConfig

object(PodSecurityPolicyConfig)

Configuration for the PodSecurityPolicy feature.

zone
(deprecated)

string

[Output only] The name of the Google Compute Engine zone in which the cluster resides. This field is deprecated, use location instead.

endpoint

string

[Output only] The IP address of this cluster's master endpoint. The endpoint can be accessed from the internet at https://username:password@endpoint/.

See the masterAuth property of this resource for username and password information.

initialClusterVersion

string

The initial Kubernetes version for this cluster. Valid versions are those found in validMasterVersions returned by getServerConfig. The version can be upgraded over time; such upgrades are reflected in currentMasterVersion and currentNodeVersion.

currentMasterVersion

string

[Output only] The current software version of the master endpoint.

currentNodeVersion

string

[Output only] The current version of the node software components. If they are currently at multiple versions because they're in the process of being upgraded, this reflects the minimum version of all nodes.

createTime

string

[Output only] The time the cluster was created, in RFC3339 text format.

status

enum(Status)

[Output only] The current status of this cluster.

statusMessage

string

[Output only] Additional information about the current status of this cluster, if available.

nodeIpv4CidrSize

number

[Output only] The size of the address space on each node for hosting containers. This is provisioned from within the container_ipv4_cidr range.

servicesIpv4Cidr

string

[Output only] The IP address range of the Kubernetes services in this cluster, in CIDR notation (e.g. 1.2.3.4/29). Service addresses are typically put in the last /16 from the container CIDR.

instanceGroupUrls[]
(deprecated)

string

Deprecated. Use nodePools.instance_group_urls.

currentNodeCount

number

[Output only] The number of nodes currently in the cluster.

expireTime

string

[Output only] The time the cluster will be automatically deleted in RFC3339 text format.

location

string

[Output only] The name of the Google Compute Engine zone or region in which the cluster resides.

MasterAuth

The authentication information for accessing the master endpoint. Authentication can be done using HTTP basic auth or using client certificates.

JSON representation
{
  "username": string,
  "password": string,
  "clientCertificateConfig": {
    object(ClientCertificateConfig)
  },
  "clusterCaCertificate": string,
  "clientCertificate": string,
  "clientKey": string,
}
Fields
username

string

The username to use for HTTP basic authentication to the master endpoint. For clusters v1.6.0 and later, you can disable basic authentication by providing an empty username.

password

string

The password to use for HTTP basic authentication to the master endpoint. Because the master endpoint is open to the Internet, you should create a strong password. If a password is provided for cluster creation, username must be non-empty.

clientCertificateConfig

object(ClientCertificateConfig)

Configuration for client certificate authentication on the cluster. If no configuration is specified, a client certificate is issued.

clusterCaCertificate

string

[Output only] Base64-encoded public certificate that is the root of trust for the cluster.

clientCertificate

string

[Output only] Base64-encoded public certificate used by clients to authenticate to the cluster endpoint.

clientKey

string

[Output only] Base64-encoded private key used by clients to authenticate to the cluster endpoint.

ClientCertificateConfig

Configuration for client certificates on the cluster.

JSON representation
{
  "issueClientCertificate": boolean,
}
Fields
issueClientCertificate

boolean

Issue a client certificate.

AddonsConfig

Configuration for the addons that can be automatically spun up in the cluster, enabling additional functionality.

JSON representation
{
  "httpLoadBalancing": {
    object(HttpLoadBalancing)
  },
  "horizontalPodAutoscaling": {
    object(HorizontalPodAutoscaling)
  },
  "kubernetesDashboard": {
    object(KubernetesDashboard)
  },
  "networkPolicyConfig": {
    object(NetworkPolicyConfig)
  },
}
Fields
httpLoadBalancing

object(HttpLoadBalancing)

Configuration for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.

horizontalPodAutoscaling

object(HorizontalPodAutoscaling)

Configuration for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods.

kubernetesDashboard

object(KubernetesDashboard)

Configuration for the Kubernetes Dashboard.

networkPolicyConfig

object(NetworkPolicyConfig)

Configuration for NetworkPolicy. This only tracks whether the addon is enabled or not on the Master, it does not track whether network policy is enabled for the nodes.

HttpLoadBalancing

Configuration options for the HTTP (L7) load balancing controller addon, which makes it easy to set up HTTP load balancers for services in a cluster.

JSON representation
{
  "disabled": boolean,
}
Fields
disabled

boolean

Whether the HTTP Load Balancing controller is enabled in the cluster. When enabled, it runs a small pod in the cluster that manages the load balancers.

HorizontalPodAutoscaling

Configuration options for the horizontal pod autoscaling feature, which increases or decreases the number of replica pods a replication controller has based on the resource usage of the existing pods.

JSON representation
{
  "disabled": boolean,
}
Fields
disabled

boolean

Whether the Horizontal Pod Autoscaling feature is enabled in the cluster. When enabled, it ensures that a Heapster pod is running in the cluster, which is also used by the Cloud Monitoring service.

KubernetesDashboard

Configuration for the Kubernetes Dashboard.

JSON representation
{
  "disabled": boolean,
}
Fields
disabled

boolean

Whether the Kubernetes Dashboard is enabled for this cluster.

NetworkPolicyConfig

Configuration for NetworkPolicy. This only tracks whether the addon is enabled or not on the Master, it does not track whether network policy is enabled for the nodes.

JSON representation
{
  "disabled": boolean,
}
Fields
disabled

boolean

Whether NetworkPolicy is enabled for this cluster.

NetworkPolicy

Configuration options for the NetworkPolicy feature. https://kubernetes.io/docs/concepts/services-networking/networkpolicies/

JSON representation
{
  "provider": enum(Provider),
  "enabled": boolean,
}
Fields
provider

enum(Provider)

The selected network policy provider.

enabled

boolean

Whether network policy is enabled on the cluster.

Provider

Allowed Network Policy providers.

Enums
PROVIDER_UNSPECIFIED Not set
CALICO Tigera (Calico Felix).

IPAllocationPolicy

Configuration for controlling how IPs are allocated in the cluster.

JSON representation
{
  "useIpAliases": boolean,
  "createSubnetwork": boolean,
  "subnetworkName": string,
  "clusterIpv4Cidr": string,
  "nodeIpv4Cidr": string,
  "servicesIpv4Cidr": string,
  "clusterSecondaryRangeName": string,
  "servicesSecondaryRangeName": string,
  "clusterIpv4CidrBlock": string,
  "nodeIpv4CidrBlock": string,
  "servicesIpv4CidrBlock": string,
  "allowRouteOverlap": boolean,
}
Fields
useIpAliases

boolean

Whether alias IPs will be used for pod IPs in the cluster.

createSubnetwork

boolean

Whether a new subnetwork will be created automatically for the cluster.

This field is only applicable when useIpAliases is true.

subnetworkName

string

A custom subnetwork name to be used if createSubnetwork is true. If this field is empty, then an automatic name will be chosen for the new subnetwork.

clusterIpv4Cidr
(deprecated)

string

This field is deprecated, use clusterIpv4CidrBlock.

nodeIpv4Cidr
(deprecated)

string

This field is deprecated, use nodeIpv4CidrBlock.

servicesIpv4Cidr
(deprecated)

string

This field is deprecated, use servicesIpv4CidrBlock.

clusterSecondaryRangeName

string

The name of the secondary range to be used for the cluster CIDR block. The secondary range will be used for pod IP addresses. This must be an existing secondary range associated with the cluster subnetwork.

This field is only applicable with useIpAliases and createSubnetwork is false.

servicesSecondaryRangeName

string

The name of the secondary range to be used as for the services CIDR block. The secondary range will be used for service ClusterIPs. This must be an existing secondary range associated with the cluster subnetwork.

This field is only applicable with useIpAliases and createSubnetwork is false.

clusterIpv4CidrBlock

string

The IP address range for the cluster pod IPs. If this field is set, then cluster.cluster_ipv4_cidr must be left blank.

This field is only applicable when useIpAliases is true.

Set to blank to have a range chosen with the default size.

Set to /netmask (e.g. /14) to have a range chosen with a specific netmask.

Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.

nodeIpv4CidrBlock

string

The IP address range of the instance IPs in this cluster.

This is applicable only if createSubnetwork is true.

Set to blank to have a range chosen with the default size.

Set to /netmask (e.g. /14) to have a range chosen with a specific netmask.

Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.

servicesIpv4CidrBlock

string

The IP address range of the services IPs in this cluster. If blank, a range will be automatically chosen with the default size.

This field is only applicable when useIpAliases is true.

Set to blank to have a range chosen with the default size.

Set to /netmask (e.g. /14) to have a range chosen with a specific netmask.

Set to a CIDR notation (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use.

allowRouteOverlap

boolean

If true, allow allocation of cluster CIDR ranges that overlap with certain kinds of network routes. By default we do not allow cluster CIDR ranges to intersect with any user declared routes. With allowRouteOverlap == true, we allow overlapping with CIDR ranges that are larger than the cluster CIDR range.

If this field is set to true, then cluster and services CIDRs must be fully-specified (e.g. 10.96.0.0/14, but not /14), which means: 1) When useIpAliases is true, clusterIpv4CidrBlock and servicesIpv4CidrBlock must be fully-specified. 2) When useIpAliases is false, cluster.cluster_ipv4_cidr muse be fully-specified.

MasterAuthorizedNetworksConfig

Configuration options for the master authorized networks feature. Enabled master authorized networks will disallow all external traffic to access Kubernetes master through HTTPS except traffic from the given CIDR blocks, Google Compute Engine Public IPs and Google Prod IPs.

JSON representation
{
  "enabled": boolean,
  "cidrBlocks": [
    {
      object(CidrBlock)
    }
  ],
}
Fields
enabled

boolean

Whether or not master authorized networks is enabled.

cidrBlocks[]

object(CidrBlock)

cidrBlocks define up to 10 external networks that could access Kubernetes master through HTTPS.

CidrBlock

CidrBlock contains an optional name and one CIDR block.

JSON representation
{
  "displayName": string,
  "cidrBlock": string,
}
Fields
displayName

string

displayName is an optional field for users to identify CIDR blocks.

cidrBlock

string

cidrBlock must be specified in CIDR notation.

MaintenancePolicy

MaintenancePolicy defines the maintenance policy to be used for the cluster.

JSON representation
{
  "window": {
    object(MaintenanceWindow)
  },
}
Fields
window

object(MaintenanceWindow)

Specifies the maintenance window in which maintenance may be performed.

MaintenanceWindow

MaintenanceWindow defines the maintenance window to be used for the cluster.

JSON representation
{
  "dailyMaintenanceWindow": {
    object(DailyMaintenanceWindow)
  },
}
Fields
dailyMaintenanceWindow

object(DailyMaintenanceWindow)

DailyMaintenanceWindow specifies a daily maintenance operation window.

DailyMaintenanceWindow

Time window specified for daily maintenance operations.

JSON representation
{
  "startTime": string,
  "duration": string,
}
Fields
startTime

string

Time within the maintenance window to start the maintenance operations. It must be in format "HH:MM”, where HH : [00-23] and MM : [00-59] GMT.

duration

string

[Output only] Duration of the time window, automatically chosen to be smallest possible in the given scenario.

PodSecurityPolicyConfig

Configuration for the PodSecurityPolicy feature.

JSON representation
{
  "enabled": boolean,
}
Fields
enabled

boolean

Enable the PodSecurityPolicy controller for this cluster. If enabled, pods must be valid under a PodSecurityPolicy to be created.

Status

The current status of the cluster.

Enums
STATUS_UNSPECIFIED Not set.
PROVISIONING The PROVISIONING state indicates the cluster is being created.
RUNNING The RUNNING state indicates the cluster has been created and is fully usable.
RECONCILING The RECONCILING state indicates that some work is actively being done on the cluster, such as upgrading the master or node software. Details can be found in the statusMessage field.
STOPPING The STOPPING state indicates the cluster is being deleted.
ERROR The ERROR state indicates the cluster may be unusable. Details can be found in the statusMessage field.

Methods

completeIpRotation

Completes master IP rotation.

create

Creates a cluster, consisting of the specified number and type of Google Compute Engine instances.

delete

Deletes the cluster, including the Kubernetes endpoint and all worker nodes.

get

Gets the details of a specific cluster.

list

Lists all clusters owned by a project in either the specified zone or all zones.

setAddons

Sets the addons of a specific cluster.

setLegacyAbac

Enables or disables the ABAC authorization mechanism on a cluster.

setLocations

Sets the locations of a specific cluster.

setLogging

Sets the logging service of a specific cluster.

setMaintenancePolicy

Sets the maintenance policy for a cluster.

setMasterAuth

Used to set master auth materials.

setMonitoring

Sets the monitoring service of a specific cluster.

setNetworkPolicy

Enables/Disables Network Policy for a cluster.

setResourceLabels

Sets labels on a cluster.

startIpRotation

Start master IP rotation.

update

Updates the settings of a specific cluster.

updateMaster

Updates the master of a specific cluster.

Send feedback about...

Kubernetes Engine