# Cluster


<style>
  span[class^="pill-"] {
    color: white;
    padding: 2px 12px;
    border-radius: 12px;
    font-size: 0.6em;
    vertical-align: middle;
    margin-right: 12px;
    font-family: sans-serif;
    font-weight: bold;
    display: inline-block;
    line-height: 1;
  }
  span.pill-GET { background-color: #61affe; }
  span.pill-POST { background-color: #49cc90; }
  span.pill-PUT { background-color: #fca130; }
  span.pill-DELETE { background-color: #f93e3e; }
  span.pill-PATCH { background-color: #50e3c2; }
  span[class^="pill-"]:after {
    content: attr(data-label);
    font-size: 0.9rem;
  }
</style>

Clusters are managed Kubernetes control planes.

[Read more](https://community.exoscale.com/documentation/sks/)

## <span data-label="POST" class="pill-POST"></span>create-sks-cluster

Create an SKS cluster

```
POST /sks-cluster
```

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `level` | string | **yes** | Cluster service level<br/><br/>Allowed values: `starter`, `pro`. |
| `name` | string | **yes** | Cluster name<br/><br/>Min length: `1`. Max length: `255`. |
| `version` | string | **yes** | Control plane Kubernetes version |
| `addons` | array[string] | no | Cluster addons |
| `audit` | [Kubernetes Audit parameters](/reference/api/_schemas/sks-audit-create/) | no | Kubernetes Audit Log Configuration |
| `auto-upgrade` | boolean | no | Enable auto upgrade of the control plane to the latest patch version available |
| `cni` | string | no | Cluster CNI<br/><br/>Allowed values: `calico`, `cilium`. |
| `create-default-security-group` | boolean | no | Creates an ad-hoc security group based on the choice of the selected CNI |
| `description` | string | no | Cluster description<br/><br/>Max length: `255`. |
| `enable-kube-proxy` | boolean | no | Indicates whether to deploy the Kubernetes network proxy. When unspecified, defaults to `true` unless Cilium CNI is selected |
| `feature-gates` | array[string] | no | A list of Kubernetes-only Alpha features to enable for API server component |
| `labels` | object | no | Cluster Labels |
| `networking` | [EXPERIMENTAL: Cluster networking configuration.](/reference/api/_schemas/networking/) | no | Cluster networking configuration |
| `oidc` | [SKS Cluster OpenID config map](/reference/api/_schemas/sks-oidc/) | no | Cluster OpenID configmap |

<details>
<summary>Example</summary>

```json
{
  "addons": [
    "exoscale-cloud-controller"
  ],
  "audit": {
    "bearer-token": "string",
    "endpoint": "string",
    "initial-backoff": "string"
  },
  "auto-upgrade": true,
  "cni": "calico",
  "create-default-security-group": true,
  "description": "string",
  "enable-kube-proxy": true,
  "feature-gates": [
    "string"
  ],
  "labels": {},
  "level": "starter",
  "name": "string",
  "networking": {
    "cluster-cidr": "string",
    "node-cidr-mask-size-ipv4": 0,
    "node-cidr-mask-size-ipv6": 0,
    "service-cluster-ip-range": "string"
  },
  "oidc": {
    "client-id": "string",
    "groups-claim": "string",
    "groups-prefix": "string",
    "issuer-url": "string",
    "required-claim": {},
    "username-claim": "string",
    "username-prefix": "string"
  },
  "version": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](/reference/api/_schemas/operation/#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `create-sks-cluster`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.CreateSKSCluster) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.create_sks_cluster) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#createSksCluster(com.exoscale.sdk.model.CreateSksClusterRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api create-sks-cluster`

## <span data-label="GET" class="pill-GET"></span>get-sks-cluster

Retrieve SKS cluster details

```
GET /sks-cluster/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `addons` | array[string] | Cluster addons |
| `audit` | [Kubernetes Audit parameters](/reference/api/_schemas/sks-audit/) | Kubernetes Audit |
| `auto-upgrade` | boolean | Enable auto upgrade of the control plane to the latest patch version available |
| `cni` | string | Cluster CNI<br/><br/>Allowed values: `calico`, `cilium`. |
| `created-at` | string | Cluster creation date<br/><br/>ISO 8601 date-time. |
| `default-security-group-id` | string | Cluster default Security Group ID<br/><br/>Must be a valid UUID. |
| `description` | string | Cluster description<br/><br/>Max length: `255`. |
| `enable-kube-proxy` | boolean | Indicates whether to deploy the Kubernetes network proxy. |
| `enable-operators-ca` | boolean | Indicates whether to add operators certificate authority (CA) as part of trusted CAs for the API server. |
| `endpoint` | string | Cluster endpoint |
| `feature-gates` | array[string] | A list of Kubernetes-only Alpha features to enable for API server component |
| `id` | string | Cluster ID<br/><br/>Must be a valid UUID. |
| `labels` | object | Cluster labels |
| `level` | string | Cluster level<br/><br/>Allowed values: `starter`, `pro`. |
| `name` | string | Cluster name<br/><br/>Min length: `1`. Max length: `255`. |
| `nodepools` | array of [SKS Nodepool](/reference/api/_schemas/sks-nodepool/) | Cluster Nodepools |
| `oidc` | [SKS Cluster OpenID config map](/reference/api/_schemas/sks-oidc/) | Cluster OpenID configmap |
| `state` | string | Cluster state<br/><br/>Allowed values: `rotating-csi-credentials`, `rotating-ccm-credentials`, `creating`, `upgrading`, `deleting`, `running`, `suspending`, `updating`, `error`, `rotating-karpenter-credentials`, `resuming`. |
| `version` | string | Control plane Kubernetes version |

<details>
<summary>Example output</summary>

```json
{
  "addons": [
    "exoscale-cloud-controller"
  ],
  "audit": {
    "enabled": true,
    "endpoint": "string",
    "initial-backoff": "string"
  },
  "auto-upgrade": true,
  "cni": "calico",
  "created-at": "2024-01-01T12:00:00Z",
  "default-security-group-id": "string",
  "description": "string",
  "enable-kube-proxy": true,
  "enable-operators-ca": true,
  "endpoint": "string",
  "feature-gates": [
    "string"
  ],
  "id": "string",
  "labels": {},
  "level": "starter",
  "name": "string",
  "nodepools": [
    {
      "addons": [
        "storage-lvm"
      ],
      "anti-affinity-groups": [
        {
          "id": "string"
        }
      ],
      "created-at": "2024-01-01T12:00:00Z",
      "deploy-target": {
        "id": "string"
      },
      "description": "string",
      "disk-size": 0,
      "id": "string",
      "instance-pool": {
        "id": "string"
      },
      "instance-prefix": "string",
      "instance-type": {
        "id": "string"
      },
      "kubelet-image-gc": {
        "high-threshold": 0,
        "low-threshold": 0,
        "min-age": "string"
      },
      "labels": {},
      "name": "string",
      "nvidia-mig-profiles": {
        "a30.24gb": "1g.6gb",
        "rtxpro6000.96gb": "1g.24gb"
      },
      "private-networks": [
        {
          "id": "string"
        }
      ],
      "public-ip-assignment": "inet4",
      "security-groups": [
        {
          "id": "string"
        }
      ],
      "size": 0,
      "state": "renewing-token",
      "taints": {},
      "template": {
        "id": "string"
      },
      "version": "string"
    }
  ],
  "oidc": {
    "client-id": "string",
    "groups-claim": "string",
    "groups-prefix": "string",
    "issuer-url": "string",
    "required-claim": {},
    "username-claim": "string",
    "username-prefix": "string"
  },
  "state": "rotating-csi-credentials",
  "version": "string"
}
```
</details>


SDK reference for `get-sks-cluster`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSKSCluster) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_sks_cluster) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSksCluster(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api get-sks-cluster`

## <span data-label="PUT" class="pill-PUT"></span>update-sks-cluster

Update an SKS cluster

```
PUT /sks-cluster/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `addons` | array[string] | no | Cluster addons |
| `audit` | [Kubernetes Audit parameters](/reference/api/_schemas/sks-audit-update/) | no | Kubernetes Audit Log Configuration |
| `auto-upgrade` | boolean | no | Enable auto upgrade of the control plane to the latest patch version available |
| `description` | string | no | Cluster description<br/><br/>Max length: `255`. |
| `enable-operators-ca` | boolean | no | Add or remove the operators certificate authority (CA) from the list of trusted CAs of the api server. The default value is true |
| `feature-gates` | array[string] | no | A list of Kubernetes-only Alpha features to enable for API server component |
| `labels` | object | no | Cluster labels |
| `name` | string | no | Cluster name<br/><br/>Min length: `1`. Max length: `255`. |
| `oidc` | [SKS Cluster OpenID config map](/reference/api/_schemas/sks-oidc/) | no | Cluster OpenID configmap |

<details>
<summary>Example</summary>

```json
{
  "addons": [
    "exoscale-cloud-controller"
  ],
  "audit": {
    "bearer-token": "string",
    "enabled": true,
    "endpoint": "string",
    "initial-backoff": "string"
  },
  "auto-upgrade": true,
  "description": "string",
  "enable-operators-ca": true,
  "feature-gates": [
    "string"
  ],
  "labels": {},
  "name": "string",
  "oidc": {
    "client-id": "string",
    "groups-claim": "string",
    "groups-prefix": "string",
    "issuer-url": "string",
    "required-claim": {},
    "username-claim": "string",
    "username-prefix": "string"
  }
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](/reference/api/_schemas/operation/#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `update-sks-cluster`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpdateSKSCluster) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.update_sks_cluster) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#updateSksCluster(java.util.UUID,com.exoscale.sdk.model.UpdateSksClusterRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api update-sks-cluster`

## <span data-label="DELETE" class="pill-DELETE"></span>delete-sks-cluster

Delete an SKS cluster

```
DELETE /sks-cluster/{id}
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](/reference/api/_schemas/operation/#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `delete-sks-cluster`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.DeleteSKSCluster) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.delete_sks_cluster) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#deleteSksCluster(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api delete-sks-cluster`


---

## Other Operations

## <span data-label="POST" class="pill-POST"></span>generate-sks-cluster-kubeconfig

Generate a new Kubeconfig file for a SKS cluster

```
POST /sks-cluster-kubeconfig/{id}
```

This operation returns a Kubeconfig file encoded in base64.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `groups` | array[string] | **yes** | List of roles. The certificate present in the Kubeconfig will have these roles set in the Org field. |
| `user` | string | **yes** | User name in the generated Kubeconfig. The certificate present in the Kubeconfig will also have this name set for the CN field. |
| `ttl` | integer | no | Validity in seconds of the Kubeconfig user certificate (default: 30 days)<br/><br/>Min: `0`. |

<details>
<summary>Example</summary>

```json
{
  "groups": [
    "string"
  ],
  "ttl": 0,
  "user": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `kubeconfig` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "kubeconfig": "string"
}
```
</details>


SDK reference for `generate-sks-cluster-kubeconfig`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GenerateSKSClusterKubeconfig) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.generate_sks_cluster_kubeconfig) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#generateSksClusterKubeconfig(java.util.UUID,com.exoscale.sdk.model.GenerateSksClusterKubeconfigRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api generate-sks-cluster-kubeconfig`

## <span data-label="PUT" class="pill-PUT"></span>generate-sks-karpenter-exoscale-nodeclass

Generate a Karpenter ExoscaleNodeClass manifest for an SKS cluster, including its default security group and feature flags if present

```
PUT /sks-cluster/{id}/generate-karpenter-exoscale-nodeclass
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `exoscale-nodeclass` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "exoscale-nodeclass": "string"
}
```
</details>


SDK reference for `generate-sks-karpenter-exoscale-nodeclass`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GenerateSKSKarpenterExoscaleNodeclass) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.generate_sks_karpenter_exoscale_nodeclass) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#generateSksKarpenterExoscaleNodeclass(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api generate-sks-karpenter-exoscale-nodeclass`

## <span data-label="PUT" class="pill-PUT"></span>generate-sks-karpenter-nodepool

Generate a Karpenter NodePool manifest with minimal configuration for an SKS cluster

```
PUT /sks-cluster/{id}/generate-karpenter-nodepool
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `nodepool` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "nodepool": "string"
}
```
</details>


SDK reference for `generate-sks-karpenter-nodepool`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GenerateSKSKarpenterNodepool) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.generate_sks_karpenter_nodepool) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#generateSksKarpenterNodepool(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api generate-sks-karpenter-nodepool`

## <span data-label="PUT" class="pill-PUT"></span>rotate-sks-ccm-credentials

Rotate Exoscale CCM credentials

```
PUT /sks-cluster/{id}/rotate-ccm-credentials
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](/reference/api/_schemas/operation/#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `rotate-sks-ccm-credentials`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RotateSKSCcmCredentials) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.rotate_sks_ccm_credentials) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#rotateSksCcmCredentials(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api rotate-sks-ccm-credentials`

## <span data-label="PUT" class="pill-PUT"></span>rotate-sks-csi-credentials

Rotate Exoscale CSI credentials

```
PUT /sks-cluster/{id}/rotate-csi-credentials
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](/reference/api/_schemas/operation/#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `rotate-sks-csi-credentials`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RotateSKSCsiCredentials) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.rotate_sks_csi_credentials) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#rotateSksCsiCredentials(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api rotate-sks-csi-credentials`

## <span data-label="PUT" class="pill-PUT"></span>rotate-sks-karpenter-credentials

Rotate Exoscale Karpenter credentials

```
PUT /sks-cluster/{id}/rotate-karpenter-credentials
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](/reference/api/_schemas/operation/#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `rotate-sks-karpenter-credentials`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RotateSKSKarpenterCredentials) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.rotate_sks_karpenter_credentials) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#rotateSksKarpenterCredentials(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api rotate-sks-karpenter-credentials`

## <span data-label="PUT" class="pill-PUT"></span>rotate-sks-operators-ca

Rotate operators certificate authority

```
PUT /sks-cluster/{id}/rotate-operators-ca
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](/reference/api/_schemas/operation/#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `rotate-sks-operators-ca`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.RotateSKSOperatorsCA) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.rotate_sks_operators_ca) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#rotateSksOperatorsCa(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api rotate-sks-operators-ca`

## <span data-label="GET" class="pill-GET"></span>get-sks-cluster-authority-cert

Get the certificate for a SKS cluster authority

```
GET /sks-cluster/{id}/authority/{authority}/cert
```

This operation returns the certificate for the given SKS cluster authority encoded in base64.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |
| `authority` | `path` |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `cacert` | string |  |

<details>
<summary>Example output</summary>

```json
{
  "cacert": "string"
}
```
</details>


SDK reference for `get-sks-cluster-authority-cert`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSKSClusterAuthorityCert) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_sks_cluster_authority_cert) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSksClusterAuthorityCert(java.util.UUID,java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api get-sks-cluster-authority-cert`

## <span data-label="GET" class="pill-GET"></span>list-sks-cluster-deprecated-resources

Resources that are scheduled to be removed in future kubernetes releases

```
GET /sks-cluster-deprecated-resources/{id}
```

This operation returns the deprecated resources for a given cluster

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`


<details>
<summary>Example output</summary>

```json
[
  {
    "group": "string",
    "removed-release": "string",
    "resource": "string",
    "subresource": "string",
    "version": "string"
  }
]
```
</details>


SDK reference for `list-sks-cluster-deprecated-resources`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSKSClusterDeprecatedResources) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_sks_cluster_deprecated_resources) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSksClusterDeprecatedResources(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api list-sks-cluster-deprecated-resources`

## <span data-label="GET" class="pill-GET"></span>get-sks-cluster-inspection

Get the latest inspection result

```
GET /sks-cluster/{id}/inspection
```

Helps troubleshoot common problems when deploying a kubernetes cluster. Inspections run every couple of minutes.

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`


<details>
<summary>Example output</summary>

```json
{}
```
</details>


SDK reference for `get-sks-cluster-inspection`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.GetSKSClusterInspection) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.get_sks_cluster_inspection) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#getSksClusterInspection(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api get-sks-cluster-inspection`

## <span data-label="GET" class="pill-GET"></span>list-sks-cluster-versions

List available versions for SKS clusters

```
GET /sks-cluster-version
```

### Query parameters

| Name | In | Required | Description |
| --- | --- | --- | --- |
| `include-deprecated` | `query` | no |  |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `sks-cluster-versions` | array[string] |  |

<details>
<summary>Example output</summary>

```json
{
  "sks-cluster-versions": [
    "string"
  ]
}
```
</details>


SDK reference for `list-sks-cluster-versions`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSKSClusterVersions) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_sks_cluster_versions) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSksClusterVersions(java.lang.String))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api list-sks-cluster-versions`

## <span data-label="GET" class="pill-GET"></span>list-sks-clusters

List SKS clusters

```
GET /sks-cluster
```

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `sks-clusters` | array of [SKS Cluster](/reference/api/_schemas/sks-cluster/) |  |

<details>
<summary>Example output</summary>

```json
{
  "sks-clusters": [
    {
      "addons": [
        "exoscale-cloud-controller"
      ],
      "audit": {
        "enabled": true,
        "endpoint": "string",
        "initial-backoff": "string"
      },
      "auto-upgrade": true,
      "cni": "calico",
      "created-at": "2024-01-01T12:00:00Z",
      "default-security-group-id": "string",
      "description": "string",
      "enable-kube-proxy": true,
      "enable-operators-ca": true,
      "endpoint": "string",
      "feature-gates": [
        "string"
      ],
      "id": "string",
      "labels": {},
      "level": "starter",
      "name": "string",
      "nodepools": [
        {
          "addons": [
            null
          ],
          "anti-affinity-groups": [
            null
          ],
          "created-at": "2024-01-01T12:00:00Z",
          "deploy-target": {
            "id": null
          },
          "description": "string",
          "disk-size": 0,
          "id": "string",
          "instance-pool": {
            "id": null
          },
          "instance-prefix": "string",
          "instance-type": {
            "id": null
          },
          "kubelet-image-gc": {
            "high-threshold": null,
            "low-threshold": null,
            "min-age": null
          },
          "labels": {},
          "name": "string",
          "nvidia-mig-profiles": {
            "a30.24gb": null,
            "rtxpro6000.96gb": null
          },
          "private-networks": [
            null
          ],
          "public-ip-assignment": "inet4",
          "security-groups": [
            null
          ],
          "size": 0,
          "state": "renewing-token",
          "taints": {},
          "template": {
            "id": null
          },
          "version": "string"
        }
      ],
      "oidc": {
        "client-id": "string",
        "groups-claim": "string",
        "groups-prefix": "string",
        "issuer-url": "string",
        "required-claim": {},
        "username-claim": "string",
        "username-prefix": "string"
      },
      "state": "rotating-csi-credentials",
      "version": "string"
    }
  ]
}
```
</details>


SDK reference for `list-sks-clusters`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.ListSKSClusters) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.list_sks_clusters) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#listSksClusters())

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api list-sks-clusters`

## <span data-label="PUT" class="pill-PUT"></span>upgrade-sks-cluster

Upgrade an SKS cluster

```
PUT /sks-cluster/{id}/upgrade
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Request body

Content-Type: `application/json`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `version` | string | **yes** | Control plane Kubernetes version |

<details>
<summary>Example</summary>

```json
{
  "version": "string"
}
```
</details>


### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](/reference/api/_schemas/operation/#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `upgrade-sks-cluster`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpgradeSKSCluster) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.upgrade_sks_cluster) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#upgradeSksCluster(java.util.UUID,com.exoscale.sdk.model.UpgradeSksClusterRequest))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api upgrade-sks-cluster`

## <span data-label="PUT" class="pill-PUT"></span>upgrade-sks-cluster-service-level

Upgrade a SKS cluster to pro

```
PUT /sks-cluster/{id}/upgrade-service-level
```

### Path parameters

| Name | In | Description |
| --- | --- | --- |
| `id` | `path` | Must be a valid UUID. |

### Responses

Status: `200` - 200

Content-Type: `application/json`

| Property | Type | Description |
| --- | --- | --- |
| `id` | string | Operation ID<br/><br/>Must be a valid UUID. |
| `message` | string | Operation message |
| `reason` | string | Operation failure reason<br/><br/>Allowed values: `incorrect`, `unknown`, `unavailable`, `forbidden`, `busy`, `fault`, `partial`, `not-found`, `interrupted`, `unsupported`, `conflict`. |
| `reference` | [Reference](/reference/api/_schemas/operation/#reference) | Related resource reference |
| `state` | string | Operation status<br/><br/>Allowed values: `failure`, `pending`, `success`, `timeout`. |

<details>
<summary>Example output</summary>

```json
{
  "id": "string",
  "message": "string",
  "reason": "incorrect",
  "reference": {
    "command": "string",
    "id": "string",
    "link": "string"
  },
  "state": "failure"
}
```
</details>


SDK reference for `upgrade-sks-cluster-service-level`: [golang](https://pkg.go.dev/github.com/exoscale/egoscale/v3#Client.UpgradeSKSClusterServiceLevel) | [Python](https://exoscale.github.io/python-exoscale/v2.html#exoscale.api.v2.Client.upgrade_sks_cluster_service_level) | [Java](https://exoscale.github.io/exoscale-sdk-java/com/exoscale/sdk/api/ExoscaleApi.html#upgradeSksClusterServiceLevel(java.util.UUID))

[CLI](https://community.exoscale.com/tools/command-line-interface/): `exo api upgrade-sks-cluster-service-level`


