# Cluster

spawner allows user to create a kubernetes cluster in the following cloud providers

1. AWS
2. Azure

Creating cluster

```
spawner create-cluster clustername -r request.json
```

> request.json is a cluster specification file with the following fields

API fields ( \*required) &#x20;

<table><thead><tr><th width="174.33333333333331">field</th><th width="467.08090800297106">description</th><th>Default</th></tr></thead><tbody><tr><td>provider*</td><td>Backend cloud provider for infra. such <code>aws</code>, <code>azure</code>, </td><td></td></tr><tr><td>region*</td><td>hosted region for infra, this might change as per provider.</td><td></td></tr><tr><td>accountName</td><td>when using with netbook connect, you can specify the connect user whose behalf the request is made to provider.<br>In local run this will be ignored and config provided credentials wil be used</td><td></td></tr><tr><td>clusterName*</td><td>Name of the  cluster to be created</td><td></td></tr><tr><td>nodeSpec</td><td>optional node specification. azure requires you to provide default system pool.   Required for azure, ignored in case of aws cluster creation.  Refer <a href="nodes">nodes</a></td><td></td></tr><tr><td>labels</td><td>set of pair of key values. The cluster will be tagged with this<br>ex: { created_at: sometime, by: bob}</td><td></td></tr></tbody></table>

Cluster creation takes time depending on the provider, spawner behaves differently depending on the provider

* AWS: submit request to aws and return immediately.
* azure: wait until cluster created and returns. TCluster and other resources (node) creation faster than other providers
