Managed Services for Kubernetes API, gRPC: ClusterService.Create
- gRPC request
- CreateClusterRequest
- MasterSpec
- ZonalMasterSpec
- InternalAddressSpec
- ExternalAddressSpec
- RegionalMasterSpec
- MasterLocation
- LocationSpec
- MasterMaintenancePolicy
- MaintenanceWindow
- AnytimeMaintenanceWindow
- DailyMaintenanceWindow
- WeeklyMaintenanceWindow
- DaysOfWeekMaintenanceWindow
- MasterLogging
- IPAllocationPolicy
- NetworkPolicy
- KMSProvider
- Cilium
- operation.Operation
- CreateClusterMetadata
- Cluster
- Master
- ZonalMaster
- RegionalMaster
- Location
- MasterEndpoints
- MasterAuth
- VersionInfo
- MasterMaintenancePolicy
- MaintenanceWindow
- AnytimeMaintenanceWindow
- DailyMaintenanceWindow
- WeeklyMaintenanceWindow
- DaysOfWeekMaintenanceWindow
- MasterLogging
- IPAllocationPolicy
- NetworkPolicy
- KMSProvider
- Cilium
Creates a Kubernetes cluster in the specified folder.
gRPC request
rpc Create (CreateClusterRequest) returns (operation.Operation)
CreateClusterRequest
{
"folderId": "string",
"name": "string",
"description": "string",
"labels": "string",
"networkId": "string",
"masterSpec": {
// Includes only one of the fields `zonalMasterSpec`, `regionalMasterSpec`
"zonalMasterSpec": {
"zoneId": "string",
"internalV4AddressSpec": {
"subnetId": "string"
},
"externalV4AddressSpec": {
"address": "string"
}
},
"regionalMasterSpec": {
"regionId": "string",
"locations": [
{
"zoneId": "string",
"internalV4AddressSpec": {
"subnetId": "string"
}
}
],
"externalV4AddressSpec": {
"address": "string"
},
"externalV6AddressSpec": {
"address": "string"
}
},
// end of the list of possible fields
"locations": [
{
"zoneId": "string",
"subnetId": "string"
}
],
"etcdClusterSize": "int64",
"externalV4AddressSpec": {
"address": "string"
},
"externalV6AddressSpec": {
"address": "string"
},
"version": "string",
"maintenancePolicy": {
"autoUpgrade": "bool",
"maintenanceWindow": {
// Includes only one of the fields `anytime`, `dailyMaintenanceWindow`, `weeklyMaintenanceWindow`
"anytime": "AnytimeMaintenanceWindow",
"dailyMaintenanceWindow": {
"startTime": "google.type.TimeOfDay",
"duration": "google.protobuf.Duration"
},
"weeklyMaintenanceWindow": {
"daysOfWeek": [
{
"days": [
"DayOfWeek"
],
"startTime": "google.type.TimeOfDay",
"duration": "google.protobuf.Duration"
}
]
}
// end of the list of possible fields
}
},
"securityGroupIds": [
"string"
],
"masterLogging": {
"enabled": "bool",
// Includes only one of the fields `logGroupId`, `folderId`
"logGroupId": "string",
"folderId": "string",
// end of the list of possible fields
"auditEnabled": "bool",
"clusterAutoscalerEnabled": "bool",
"kubeApiserverEnabled": "bool",
"eventsEnabled": "bool"
}
},
"ipAllocationPolicy": {
"clusterIpv4CidrBlock": "string",
"nodeIpv4CidrMaskSize": "int64",
"serviceIpv4CidrBlock": "string",
"clusterIpv6CidrBlock": "string",
"serviceIpv6CidrBlock": "string"
},
// Includes only one of the fields `gatewayIpv4Address`
"gatewayIpv4Address": "string",
// end of the list of possible fields
"serviceAccountId": "string",
"nodeServiceAccountId": "string",
"releaseChannel": "ReleaseChannel",
"networkPolicy": {
"provider": "Provider"
},
"kmsProvider": {
"keyId": "string"
},
// Includes only one of the fields `cilium`
"cilium": {
"routingMode": "RoutingMode"
}
// end of the list of possible fields
}
Field |
Description |
folderId |
string Required field. ID of the folder to create a Kubernetes cluster in. |
name |
string Name of the Kubernetes cluster. |
description |
string Description of the Kubernetes cluster. |
labels |
string Resource labels as |
networkId |
string Required field. ID of the network. |
masterSpec |
Required field. Master specification of the Kubernetes cluster. |
ipAllocationPolicy |
IP allocation policy of the Kubernetes cluster. |
gatewayIpv4Address |
string Gateway IPv4 address. Includes only one of the fields |
serviceAccountId |
string Required field. Service account to be used for provisioning Compute Cloud and VPC resources for Kubernetes cluster. |
nodeServiceAccountId |
string Required field. Service account to be used by the worker nodes of the Kubernetes cluster to access Container Registry or to push node logs and metrics. |
releaseChannel |
enum ReleaseChannel Release channel for the master.
|
networkPolicy |
|
kmsProvider |
KMS provider configuration. |
cilium |
Includes only one of the fields |
MasterSpec
Field |
Description |
zonalMasterSpec |
Specification of the zonal master. Includes only one of the fields |
regionalMasterSpec |
Specification of the regional master. Includes only one of the fields |
locations[] |
Locations specification for Kubernetes control-plane (master) instances.
|
etcdClusterSize |
int64 Number of etcd nodes in cluster. |
externalV4AddressSpec |
Specification of parameters for external IPv4 networking. |
externalV6AddressSpec |
Specification of parameters for external IPv6 networking. |
version |
string Version of Kubernetes components that runs on the master. |
maintenancePolicy |
Maintenance policy of the master. |
securityGroupIds[] |
string Master security groups. |
masterLogging |
Cloud Logging for master components. |
ZonalMasterSpec
Field |
Description |
zoneId |
string Required field. ID of the availability zone. |
internalV4AddressSpec |
Specification of parameters for internal IPv4 networking. |
externalV4AddressSpec |
Specification of parameters for external IPv4 networking. |
InternalAddressSpec
Field |
Description |
subnetId |
string ID of the subnet. If no ID is specified, and there only one subnet in specified zone, an address in this subnet will be allocated. |
ExternalAddressSpec
Field |
Description |
address |
string IP address. |
RegionalMasterSpec
Field |
Description |
regionId |
string Required field. ID of the availability zone where the master resides. |
locations[] |
List of locations where the master will be allocated. |
externalV4AddressSpec |
Specify to allocate a static public IP for the master. |
externalV6AddressSpec |
Specification of parameters for external IPv6 networking. |
MasterLocation
Field |
Description |
zoneId |
string Required field. ID of the availability zone. |
internalV4AddressSpec |
If not specified and there is a single subnet in specified zone, address |
LocationSpec
Field |
Description |
zoneId |
string Required field. ID of the availability zone where the master resides. |
subnetId |
string ID of the VPC network's subnet where the master resides. |
MasterMaintenancePolicy
Field |
Description |
autoUpgrade |
bool If set to true, automatic updates are installed in the specified period of time with no interaction from the user. |
maintenanceWindow |
Maintenance window settings. Update will start at the specified time and last no more than the specified duration. |
MaintenanceWindow
Field |
Description |
anytime |
Updating the master at any time. Includes only one of the fields Maintenance policy. |
dailyMaintenanceWindow |
Updating the master on any day during the specified time window. Includes only one of the fields Maintenance policy. |
weeklyMaintenanceWindow |
Updating the master on selected days during the specified time window. Includes only one of the fields Maintenance policy. |
AnytimeMaintenanceWindow
Field |
Description |
Empty |
DailyMaintenanceWindow
Field |
Description |
startTime |
Required field. Window start time, in the UTC timezone. |
duration |
Window duration. |
WeeklyMaintenanceWindow
Field |
Description |
daysOfWeek[] |
Days of the week and the maintenance window for these days when automatic updates are allowed. |
DaysOfWeekMaintenanceWindow
Field |
Description |
days[] |
enum DayOfWeek Days of the week when automatic updates are allowed.
|
startTime |
Required field. Window start time, in the UTC timezone. |
duration |
Window duration. |
MasterLogging
Field |
Description |
enabled |
bool Identifies whether Cloud Logging is enabled for master components. |
logGroupId |
string ID of the log group where logs of master components should be stored. Includes only one of the fields The destination of master components' logs. |
folderId |
string ID of the folder where logs should be stored (in default group). Includes only one of the fields The destination of master components' logs. |
auditEnabled |
bool Identifies whether Cloud Logging is enabled for audit logs. |
clusterAutoscalerEnabled |
bool Identifies whether Cloud Logging is enabled for cluster-autoscaler. |
kubeApiserverEnabled |
bool Identifies whether Cloud Logging is enabled for kube-apiserver. |
eventsEnabled |
bool Identifies whether Cloud Logging is enabled for events. |
IPAllocationPolicy
Field |
Description |
clusterIpv4CidrBlock |
string CIDR block. IP range for allocating pod addresses. It should not overlap with any subnet in the network the Kubernetes cluster located in. Static routes will be |
nodeIpv4CidrMaskSize |
int64 Size of the masks that are assigned for each node in the cluster. If not specified, 24 is used. |
serviceIpv4CidrBlock |
string CIDR block. IP range Kubernetes service Kubernetes cluster IP addresses will be allocated from. It should not overlap with any subnet in the network the Kubernetes cluster located in. |
clusterIpv6CidrBlock |
string IPv6 range for allocating pod IP addresses. |
serviceIpv6CidrBlock |
string IPv6 range for allocating Kubernetes service IP addresses |
NetworkPolicy
Field |
Description |
provider |
enum Provider
|
KMSProvider
Field |
Description |
keyId |
string KMS key ID for secrets encryption. |
Cilium
Field |
Description |
routingMode |
enum RoutingMode
|
operation.Operation
{
"id": "string",
"description": "string",
"createdAt": "google.protobuf.Timestamp",
"createdBy": "string",
"modifiedAt": "google.protobuf.Timestamp",
"done": "bool",
"metadata": {
"clusterId": "string"
},
// Includes only one of the fields `error`, `response`
"error": "google.rpc.Status",
"response": {
"id": "string",
"folderId": "string",
"createdAt": "google.protobuf.Timestamp",
"name": "string",
"description": "string",
"labels": "string",
"status": "Status",
"health": "Health",
"networkId": "string",
"master": {
// Includes only one of the fields `zonalMaster`, `regionalMaster`
"zonalMaster": {
"zoneId": "string",
"internalV4Address": "string",
"externalV4Address": "string"
},
"regionalMaster": {
"regionId": "string",
"internalV4Address": "string",
"externalV4Address": "string",
"externalV6Address": "string"
},
// end of the list of possible fields
"locations": [
{
"zoneId": "string",
"subnetId": "string"
}
],
"etcdClusterSize": "int64",
"version": "string",
"endpoints": {
"internalV4Endpoint": "string",
"externalV4Endpoint": "string",
"externalV6Endpoint": "string"
},
"masterAuth": {
"clusterCaCertificate": "string"
},
"versionInfo": {
"currentVersion": "string",
"newRevisionAvailable": "bool",
"newRevisionSummary": "string",
"versionDeprecated": "bool"
},
"maintenancePolicy": {
"autoUpgrade": "bool",
"maintenanceWindow": {
// Includes only one of the fields `anytime`, `dailyMaintenanceWindow`, `weeklyMaintenanceWindow`
"anytime": "AnytimeMaintenanceWindow",
"dailyMaintenanceWindow": {
"startTime": "google.type.TimeOfDay",
"duration": "google.protobuf.Duration"
},
"weeklyMaintenanceWindow": {
"daysOfWeek": [
{
"days": [
"DayOfWeek"
],
"startTime": "google.type.TimeOfDay",
"duration": "google.protobuf.Duration"
}
]
}
// end of the list of possible fields
}
},
"securityGroupIds": [
"string"
],
"masterLogging": {
"enabled": "bool",
// Includes only one of the fields `logGroupId`, `folderId`
"logGroupId": "string",
"folderId": "string",
// end of the list of possible fields
"auditEnabled": "bool",
"clusterAutoscalerEnabled": "bool",
"kubeApiserverEnabled": "bool",
"eventsEnabled": "bool"
}
},
"ipAllocationPolicy": {
"clusterIpv4CidrBlock": "string",
"nodeIpv4CidrMaskSize": "int64",
"serviceIpv4CidrBlock": "string",
"clusterIpv6CidrBlock": "string",
"serviceIpv6CidrBlock": "string"
},
// Includes only one of the fields `gatewayIpv4Address`
"gatewayIpv4Address": "string",
// end of the list of possible fields
"serviceAccountId": "string",
"nodeServiceAccountId": "string",
"releaseChannel": "ReleaseChannel",
"networkPolicy": {
"provider": "Provider"
},
"kmsProvider": {
"keyId": "string"
},
"logGroupId": "string",
// Includes only one of the fields `cilium`
"cilium": {
"routingMode": "RoutingMode"
}
// end of the list of possible fields
}
// end of the list of possible fields
}
An Operation resource. For more information, see Operation.
Field |
Description |
id |
string ID of the operation. |
description |
string Description of the operation. 0-256 characters long. |
createdAt |
Creation timestamp. |
createdBy |
string ID of the user or service account who initiated the operation. |
modifiedAt |
The time when the Operation resource was last modified. |
done |
bool If the value is |
metadata |
Service-specific metadata associated with the operation. |
error |
The error result of the operation in case of failure or cancellation. Includes only one of the fields The operation result. |
response |
The normal response of the operation in case of success. Includes only one of the fields The operation result. |
CreateClusterMetadata
Field |
Description |
clusterId |
string ID of the Kubernetes cluster that is being created. |
Cluster
A Kubernetes cluster.
Field |
Description |
id |
string ID of the Kubernetes cluster. |
folderId |
string ID of the folder that the Kubernetes cluster belongs to. |
createdAt |
Creation timestamp. |
name |
string Name of the Kubernetes cluster. |
description |
string Description of the Kubernetes cluster. 0-256 characters long. |
labels |
string Resource labels as |
status |
enum Status Status of the Kubernetes cluster.
|
health |
enum Health Health of the Kubernetes cluster.
|
networkId |
string ID of the network the Kubernetes cluster belongs to. |
master |
Properties of the master for the Kubernetes cluster. |
ipAllocationPolicy |
Allocation policy for IP addresses of services and pods inside the Kubernetes cluster in different availability zones. |
gatewayIpv4Address |
string Gateway IPv4 address. Includes only one of the fields |
serviceAccountId |
string Service account to be used for provisioning Compute Cloud and VPC resources for Kubernetes cluster. |
nodeServiceAccountId |
string Service account to be used by the worker nodes of the Kubernetes cluster to access Container Registry or to push node logs and metrics. |
releaseChannel |
enum ReleaseChannel When creating a Kubernetes cluster, you should specify one of three release channels. The release channel contains several Kubernetes versions.
|
networkPolicy |
|
kmsProvider |
KMS provider configuration. |
logGroupId |
string Log group where cluster stores cluster system logs, like audit, events, or controlplane logs. |
cilium |
Includes only one of the fields |
Master
Field |
Description |
zonalMaster |
Parameters of the availability zone for the master. Includes only one of the fields |
regionalMaster |
Parameters of the region for the master. Includes only one of the fields |
locations[] |
Locations specification for Kubernetes control-plane (master) instances. |
etcdClusterSize |
int64 Number of etcd nodes in cluster. |
version |
string Version of Kubernetes components that runs on the master. |
endpoints |
Endpoints of the master. Endpoints constitute of scheme and port (i.e. |
masterAuth |
Master authentication parameters are used to establish trust between the master and a client. |
versionInfo |
Detailed information about the Kubernetes version that is running on the master. |
maintenancePolicy |
Maintenance policy of the master. |
securityGroupIds[] |
string Master security groups. |
masterLogging |
Cloud Logging for master components. |
ZonalMaster
Field |
Description |
zoneId |
string ID of the availability zone where the master resides. |
internalV4Address |
string IPv4 internal network address that is assigned to the master. |
externalV4Address |
string IPv4 external network address that is assigned to the master. |
RegionalMaster
Field |
Description |
regionId |
string ID of the region where the master resides. |
internalV4Address |
string IPv4 internal network address that is assigned to the master. |
externalV4Address |
string IPv4 external network address that is assigned to the master. |
externalV6Address |
string IPv6 external network address that is assigned to the master. |
Location
Field |
Description |
zoneId |
string ID of the availability zone where the master resides. |
subnetId |
string ID of the VPC network's subnet where the master resides. |
MasterEndpoints
Field |
Description |
internalV4Endpoint |
string Internal endpoint that can be used to connect to the master from cloud networks. |
externalV4Endpoint |
string External endpoint that can be used to access Kubernetes cluster API from the internet (outside of the cloud). |
externalV6Endpoint |
string External IPv6 endpoint that can be used to access Kubernetes cluster API from the internet (outside of the cloud). |
MasterAuth
Field |
Description |
clusterCaCertificate |
string PEM-encoded public certificate that is the root of trust for the Kubernetes cluster. |
VersionInfo
Field |
Description |
currentVersion |
string Current Kubernetes version, format: major.minor (e.g. 1.15). |
newRevisionAvailable |
bool Newer revisions may include Kubernetes patches (e.g 1.15.1 -> 1.15.2) as well |
newRevisionSummary |
string Description of the changes to be applied when updating to the latest |
versionDeprecated |
bool The current version is on the deprecation schedule, component (master or node group) |
MasterMaintenancePolicy
Field |
Description |
autoUpgrade |
bool If set to true, automatic updates are installed in the specified period of time with no interaction from the user. |
maintenanceWindow |
Maintenance window settings. Update will start at the specified time and last no more than the specified duration. |
MaintenanceWindow
Field |
Description |
anytime |
Updating the master at any time. Includes only one of the fields Maintenance policy. |
dailyMaintenanceWindow |
Updating the master on any day during the specified time window. Includes only one of the fields Maintenance policy. |
weeklyMaintenanceWindow |
Updating the master on selected days during the specified time window. Includes only one of the fields Maintenance policy. |
AnytimeMaintenanceWindow
Field |
Description |
Empty |
DailyMaintenanceWindow
Field |
Description |
startTime |
Required field. Window start time, in the UTC timezone. |
duration |
Window duration. |
WeeklyMaintenanceWindow
Field |
Description |
daysOfWeek[] |
Days of the week and the maintenance window for these days when automatic updates are allowed. |
DaysOfWeekMaintenanceWindow
Field |
Description |
days[] |
enum DayOfWeek Days of the week when automatic updates are allowed.
|
startTime |
Required field. Window start time, in the UTC timezone. |
duration |
Window duration. |
MasterLogging
Field |
Description |
enabled |
bool Identifies whether Cloud Logging is enabled for master components. |
logGroupId |
string ID of the log group where logs of master components should be stored. Includes only one of the fields The destination of master components' logs. |
folderId |
string ID of the folder where logs should be stored (in default group). Includes only one of the fields The destination of master components' logs. |
auditEnabled |
bool Identifies whether Cloud Logging is enabled for audit logs. |
clusterAutoscalerEnabled |
bool Identifies whether Cloud Logging is enabled for cluster-autoscaler. |
kubeApiserverEnabled |
bool Identifies whether Cloud Logging is enabled for kube-apiserver. |
eventsEnabled |
bool Identifies whether Cloud Logging is enabled for events. |
IPAllocationPolicy
Field |
Description |
clusterIpv4CidrBlock |
string CIDR block. IP range for allocating pod addresses. It should not overlap with any subnet in the network the Kubernetes cluster located in. Static routes will be |
nodeIpv4CidrMaskSize |
int64 Size of the masks that are assigned for each node in the cluster. If not specified, 24 is used. |
serviceIpv4CidrBlock |
string CIDR block. IP range Kubernetes service Kubernetes cluster IP addresses will be allocated from. It should not overlap with any subnet in the network the Kubernetes cluster located in. |
clusterIpv6CidrBlock |
string IPv6 range for allocating pod IP addresses. |
serviceIpv6CidrBlock |
string IPv6 range for allocating Kubernetes service IP addresses |
NetworkPolicy
Field |
Description |
provider |
enum Provider
|
KMSProvider
Field |
Description |
keyId |
string KMS key ID for secrets encryption. |
Cilium
Field |
Description |
routingMode |
enum RoutingMode
|