Create a new cluster for a cloud
POST /accounts/{account_id}/topology/v1/clouds/{cloud_id}/clusters
Indicates the desired values for the Cluster API resource to be created.
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
account_id |
string |
path |
True |
ID of the containing account resource
|
cloud_id |
string |
path |
True |
ID of the containing cloud resource |
Request Body
Indicates the desired values for the Cluster API resource to be created.
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
Media type of the resource. Defined values are:
|
version |
string |
True |
Version of the resource. Defined values are:
|
name |
string |
False |
JSON string containing a name for the cluster. If not specified, the Kubernetes name of the cluster will be used. Defined values are:
|
accHost |
string |
False |
JSON string that indicates that this cluster hosts the instance of Astra Control Center that is currently being accessed. Defined values are:
|
credentialID |
string |
False |
JSON string containing a value indicating the ID of the credential that contains the kubeconfig file for the cluster. Defined values are:
|
privateRouteID |
string |
False |
JSON string containing the location ID for private clusters.
|
connectorCapabilities |
array[string] |
False |
Capabilities of the connector that is associated with this cluster. Optional for backwards compatibility. If not present, proxy is the assumed capability. |
metadata |
False |
Client and service-specified metadata associated with the resource. Defined values are:
|
Example request
{
"type": "application/astra-cluster",
"version": "1.5",
"name": "GKE-22",
"credentialID": "6fa2f917-f730-41b8-9c15-17f531843b31"
}
Response
Status: 201, Returns the newly created cluster resource in the JSON response body.
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
Media type of the resource. Defined values are:
|
version |
string |
True |
Version of the resource. Defined values are:
|
id |
string |
True |
Globally unique identifier of the resource. Defined values are:
|
name |
string |
True |
JSON string containing a name for the cluster. If not specified, the Kubernetes name of the cluster will be used. Defined values are:
|
state |
string |
True |
JSON string containing a value indicating the operational state of the cluster. Defined values are:
|
stateUnready |
array[string] |
True |
JSON array of JSON strings, each indicating a reason why the cluster is unable to transition to "running" state, when there are issues while in "running" state, or why it has transitioned to "failed" or "removed" state. Defined values are:
|
managedState |
string |
True |
JSON string containing a value indicating the management state of the cluster. Defined values are:
|
protectionState |
string |
True |
JSON string containing a value indicating the protection state of the cluster. Defined values are:
|
protectionStateDetails |
array[type_astra_stateDetail] |
True |
JSON array of JSON objects which lists additional details about the current protection state, including why the current state was reached. If no details are available, this array will be empty. Defined values are:
|
restoreTargetSupported |
string |
False |
JSON string containing a value indicating the ability of the cluster to be a target of application data management operations. Defined values are:
|
snapshotSupported |
string |
False |
JSON string containing a value indicating the ability of the cluster to perform application data management backup-like operations. Defined values are:
|
managedStateUnready |
array[string] |
True |
JSON array of JSON strings, each indicating a reason why the cluster is ineligible to be managed, or that the cluster is managed but non-fatal errors were encountered while managing the cluster. Defined values are:
|
managedTimestamp |
string |
False |
JSON string containing the timestamp indicating when the cluster was brought under management. Defined values are:
|
tridentVersion |
string |
False |
JSON string containing the version of Trident installed on the cluster. Defined values are:
|
tridentManagedState |
string |
False |
JSON string containing one of a set of enumerated values indicating the management state of Trident on this cluster. Defined values are:
|
tridentManagedStateDesired |
string |
False |
JSON string containing a value indicating the desired management state for Trident. Defined values are:
|
tridentManagedStateDetails |
array[type_astra_stateDetail] |
False |
JSON array of JSON objects that lists additional details about why the state transitioned to "managed" or "unmanaged".
|
tridentManagedStateAllowed |
array[string] |
False |
States that can be requested in a given tridentManagedState. The following states can be requested in each defined state:
|
inUse |
string |
True |
JSON string containing a value indicating if the cluster has any managed applications and therefore cannot be deleted. Defined values are:
|
accHost |
string |
False |
JSON string that indicates that this cluster hosts the instance of Astra Control Center that is currently being accessed. Defined values are:
|
clusterType |
string |
True |
JSON string containing a value indicating the type of cluster. Defined values are:
|
clusterVersion |
string |
False |
JSON string containing a value indicating the semantic versioning representation of the cluster environment. For Kubernetes clusters, this is the Kubernetes version. Defined values are:
|
clusterVersionString |
string |
False |
JSON string containing a value indicating the extended versioning information for the cluster environment. For Kubernetes clusters, this is the full Kubernetes version. Defined values are:
|
clusterCreationTimestamp |
string |
False |
JSON string containing the timestamp indicating when the cluster was originally created. Defined values are:
|
namespaces |
array[string] |
False |
JSON array of JSON strings, each indicating a namespace within the cluster. Defined values are:
|
defaultStorageClass |
string |
False |
JSON string containing a storage class ID that corresponds to the default storage class set in Kubernetes. Defined values are:
|
cloudID |
string |
True |
JSON string containing a value indicating the ID of the cloud the cluster is running on. Defined values are:
|
credentialID |
string |
False |
JSON string containing a value indicating the ID of the credential that contains the kubeconfig file for the cluster. Defined values are:
|
location |
string |
False |
JSON string containing a value provided by the cloud that the cluster is running on, indicating the cloud-specific location of the cluster. Defined values are:
|
isMultizonal |
string |
False |
JSON string containing a value provided by the cloud the cluster is running on, indicating whether the cluster spans two or more availability zones. Defined values are:
|
privateRouteID |
string |
False |
JSON string containing the location ID for private clusters.
|
connectorCapabilities |
array[string] |
False |
Capabilities of the connector that is associated with this cluster. Optional for backwards compatibility. If not present, proxy is the assumed capability. |
apiServiceID |
string |
False |
JSON string containing the UUID from the Kubernetes (k8s) API service object. Used to uniquely identify a cluster. |
metadata |
True |
Client and service-specified metadata associated with the resource. Defined values are:
|
Example response
{
"type": "application/astra-cluster",
"version": "1.5",
"id": "547e24b9-ddf4-558f-8397-e97e732868e4",
"name": "GKE-22",
"state": "running",
"stateUnready": [],
"managedState": "unmanaged",
"managedStateUnready": [],
"protectionState": "full",
"protectionStateDetails": [],
"tridentVersion": "21.07.2",
"tridentManagedState": "managed",
"tridentManagedStateDetails": [],
"inUse": "false",
"clusterType": "kubernetes",
"clusterVersion": "1.91.1",
"clusterVersionString": "1.19.1",
"clusterCreationTimestamp": "2020-08-06T12:24:52.256624Z",
"namespaces": [
"kube-system",
"kube-public",
"my-app-1"
],
"defaultStorageClass": "31c95aba-99d9-4987-b1bb-000dfce5952c",
"cloudID": "548bdc1f-f00e-4a23-a062-83265d224d46",
"credentialID": "6fa2f917-f730-41b8-9c15-17f531843b31",
"location": "europe-west4",
"isMultizonal": "false",
"apiServiceID": "6bf33af2-872a-4553-a891-26b510c3edbe",
"metadata": {
"labels": [],
"creationTimestamp": "2022-10-06T20:58:16.305662Z",
"modificationTimestamp": "2022-10-06T20:58:16.305662Z",
"createdBy": "8f84cf09-8036-51e4-b579-bd30cb07b269"
}
}
Response
Status: 401, Unauthorized
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
Example response
{
"type": "https://astra.netapp.io/problems/3",
"title": "Missing bearer token",
"detail": "The request is missing the required bearer token.",
"status": "401"
}
Response
Status: 400, Bad request
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
Example response
{
"type": "https://astra.netapp.io/problems/5",
"title": "Invalid query parameters",
"detail": "The supplied query parameters are invalid.",
"status": "400"
}
Response
Status: 409, Conflict
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
|
invalidFields |
array[invalidFields] |
False |
List of invalid request body fields |
Example response
{
"type": "https://astra.netapp.io/problems/10",
"title": "JSON resource conflict",
"detail": "The request body JSON contains a field that conflicts with an idempotent value.",
"status": "409"
}
Response
Status: 403, Forbidden
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
Example response
{
"type": "https://astra.netapp.io/problems/11",
"title": "Operation not permitted",
"detail": "The requested operation isn't permitted.",
"status": "403"
}
Response
Status: 500, Internal server error
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
Example response
{
"type": "https://astra.netapp.io/problems/64",
"title": "Storage classes not found",
"detail": "Storage classes from Trident weren't found.",
"status": "500"
}
Error
Status: 404, Not found
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
status |
string |
True |
|
correlationID |
string |
False |
Example error response
{
"type": "https://astra.netapp.io/problems/2",
"title": "Collection not found",
"detail": "The collection specified in the request URI wasn't found.",
"status": "404"
}
Definitions
See Definitions
type_astra_label
Name | Type | Required | Description |
---|---|---|---|
name |
string |
True |
|
value |
string |
True |
type_astra_metadata_update
Client and service-specified metadata associated with the resource. Defined values are:
-
Conforms to the Astra Metadata Schema If not specified on create, a metadata object will be created with no labels. If not specified on update, the metadata object's labels, creationTimestamp and createdBy, will be preserved without modification.
Name | Type | Required | Description |
---|---|---|---|
labels |
array[type_astra_label] |
False |
|
creationTimestamp |
string |
False |
|
modificationTimestamp |
string |
False |
|
createdBy |
string |
False |
|
modifiedBy |
string |
False |
additionalDetails
type_astra_stateDetail
Name | Type | Required | Description |
---|---|---|---|
type |
string |
True |
|
title |
string |
True |
|
detail |
string |
True |
|
additionalDetails |
False |
invalidParams
Name | Type | Required | Description |
---|---|---|---|
name |
string |
True |
Name of the invalid query parameter |
reason |
string |
True |
Reason why the query parameter is invalid |
invalidFields
Name | Type | Required | Description |
---|---|---|---|
name |
string |
True |
Name of the invalid request body field |
reason |
string |
True |
Reason why the request body field is invalid |