> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ankra.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# DigitalOcean Reference

> Configuration options, regions, droplet sizes, and API endpoints for Ankra-managed DigitalOcean clusters.

Reference material for [DigitalOcean clusters](/guides/digitalocean-clusters).

***

## Cluster Configuration Options

| Parameter               | Default         | Description                                                     |
| ----------------------- | --------------- | --------------------------------------------------------------- |
| `name`                  | *required*      | Unique cluster name                                             |
| `credential_id`         | *required*      | DigitalOcean API credential ID                                  |
| `ssh_key_credential_id` | *required*      | SSH key credential ID                                           |
| `region`                | *required*      | DigitalOcean region slug                                        |
| `network_ip_range`      | `10.0.0.0/16`   | Private VPC IP range                                            |
| `bastion_size`          | `s-1vcpu-1gb`   | Droplet size for the bastion host                               |
| `control_plane_count`   | `1`             | Number of control plane nodes (1 or 3)                          |
| `control_plane_size`    | `s-2vcpu-4gb`   | Droplet size for control planes                                 |
| `node_groups`           |                 | Array of node group definitions                                 |
| `distribution`          | `k3s`           | Kubernetes distribution (`k3s` or `kubeadm`)                    |
| `kubernetes_version`    | *latest stable* | Kubernetes version (optional)                                   |
| `cni`                   | `flannel` (k3s) | CNI plugin. kubeadm clusters always use `cilium`                |
| `etcd_topology`         | `stacked`       | kubeadm only. `stacked` or `external` (dedicated etcd droplets) |
| `etcd_node_count`       | `3`             | kubeadm `external` topology only (3 or 5)                       |
| `etcd_size`             | `s-2vcpu-4gb`   | kubeadm `external` topology only. Droplet size for etcd nodes   |
| `include_ingress`       | `false`         | Deploy Traefik + cert-manager for ingress                       |

### DigitalOcean Regions

| Region | Location                       |
| ------ | ------------------------------ |
| `nyc3` | New York 3, United States      |
| `sfo3` | San Francisco 3, United States |
| `ams3` | Amsterdam 3, Netherlands       |
| `sgp1` | Singapore 1, Singapore         |
| `lon1` | London 1, United Kingdom       |
| `fra1` | Frankfurt 1, Germany           |

<Note>
  Available regions and sizes depend on your account. Use `ankra cluster digitalocean regions` and `ankra cluster digitalocean sizes` to list what your credential can deploy.
</Note>

### Common Droplet Sizes

| Size          | vCPUs | RAM  | Typical use                    |
| ------------- | ----- | ---- | ------------------------------ |
| `s-1vcpu-1gb` | 1     | 1 GB | Bastion                        |
| `s-1vcpu-2gb` | 1     | 2 GB | Small workers                  |
| `s-2vcpu-4gb` | 2     | 4 GB | Control plane, general workers |
| `s-4vcpu-8gb` | 4     | 8 GB | Larger workloads               |

***

## Node Group API Reference

| Endpoint                                                              | Method | Description                |
| --------------------------------------------------------------------- | ------ | -------------------------- |
| `/api/v1/clusters/digitalocean/{id}/node-groups`                      | GET    | List all node groups       |
| `/api/v1/clusters/digitalocean/{id}/node-groups`                      | POST   | Add a node group           |
| `/api/v1/clusters/digitalocean/{id}/node-groups/{name}/scale`         | PUT    | Scale a node group (0-100) |
| `/api/v1/clusters/digitalocean/{id}/node-groups/{name}/instance-type` | PUT    | Change droplet size        |
| `/api/v1/clusters/digitalocean/{id}/node-groups/{name}/labels`        | PUT    | Update labels              |
| `/api/v1/clusters/digitalocean/{id}/node-groups/{name}/taints`        | PUT    | Update taints              |
| `/api/v1/clusters/digitalocean/{id}/node-groups/{name}`               | DELETE | Delete a node group        |
