> ## 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.

# OVHcloud Managed Kubernetes (MKS)

> Provision, import, and operate OVHcloud Managed Kubernetes (MKS) clusters with Ankra - free and standard control planes, node pools, upgrades, GitOps, and AI-assisted operations.

[OVHcloud Managed Kubernetes (MKS)](https://www.ovhcloud.com/en/public-cloud/kubernetes/) runs on OVHcloud Public Cloud. OVHcloud runs the control plane; Ankra provisions the cluster, then manages everything on top - node pools, Kubernetes upgrades, addons, stacks, GitOps, and AI-assisted operations.

This page covers OVHcloud MKS specifically. For the shared concepts across all managed providers - live options, discovery/import, and day-2 API patterns - see [Managed Kubernetes](/guides/managed-kubernetes).

## Why OVHcloud MKS with Ankra

* **Free or standard control plane** - pick the OVHcloud control-plane plan that fits the workload.
* **Private networking and anti-affinity** - attach a private network and spread nodes with anti-affinity where supported.
* **Live pricing and options** - regions, Kubernetes versions, and node flavors are fetched live with your OVHcloud credential.

## Prerequisites

**OVHcloud application keys** with a Public Cloud project (`project_id`), stored in Ankra. See [OVH API Credentials](/platform/credentials/ovh).

GitOps is optional: connect a repository at creation and Ankra commits the cluster's stack definitions to Git.

## Creating an OVHcloud MKS cluster

<Tabs>
  <Tab title="Portal">
    <Steps>
      <Step title="Create Cluster">
        Go to **Clusters** → **Create Cluster** and pick OVHcloud's **Cloud Managed** action.
      </Step>

      <Step title="Credential & Region">
        Select the OVHcloud credential and a region (for example `GRA9`). Regions load live from OVHcloud.
      </Step>

      <Step title="Node Pools">
        Define one or more worker pools: name, node flavor (with live pricing), count, labels, and autoscaling bounds.
      </Step>

      <Step title="Kubernetes & Plan">
        Pick a Kubernetes version or keep the default, choose the control-plane plan (`free` or `standard`), and set the update policy.
      </Step>

      <Step title="GitOps (optional) & Create">
        Optionally connect a Git repository, then create. Ankra runs OVHcloud preflight checks, provisions the cluster, retrieves the kubeconfig, and installs the Ankra Agent.
      </Step>
    </Steps>
  </Tab>

  <Tab title="CLI">
    ```bash theme={null}
    ankra cluster managed create \
      --provider ovh_mks \
      --name my-ovh-cluster \
      --credential-id <ovh-credential-id> \
      --location GRA9 \
      --node-pool-name workers \
      --node-pool-size b2-7 \
      --node-pool-count 2
    ```

    Plan, private network, anti-affinity, update policy, and node-pool autoscaling bounds are set from the portal or the API. The CLI accepts `ovh_mks` (and the `ovh-mks` alias).
  </Tab>

  <Tab title="API">
    ```bash theme={null}
    curl -X POST https://platform.ankra.app/org/clusters/managed/ovh_mks \
      -H "Authorization: Bearer $ANKRA_API_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "my-ovh-cluster",
        "credential_id": "<ovh-credential-id>",
        "location": "GRA9",
        "kubernetes_version": "1.32",
        "node_pools": [
          {"name": "workers", "size": "b2-7", "count": 2}
        ],
        "ovh_mks": {"plan": "free", "anti_affinity": false, "monthly_billed": false}
      }'
    ```
  </Tab>
</Tabs>

### OVHcloud MKS options

| Field                        | Description                               |
| ---------------------------- | ----------------------------------------- |
| `ovh_mks.plan`               | Control-plane plan (`free` or `standard`) |
| `ovh_mks.private_network_id` | Attach the cluster to a private network   |
| `ovh_mks.anti_affinity`      | Spread nodes with anti-affinity           |
| `ovh_mks.monthly_billed`     | Bill nodes monthly instead of hourly      |
| `ovh_mks.update_policy`      | Node update policy                        |

## Day-2 operations

Node pools, upgrades, and deletion work from the CLI, portal, or API. The CLI examples use `--provider ovh_mks`:

```bash theme={null}
# scale a pool to a fixed count
ankra cluster managed node-pool scale <cluster_id> workers --provider ovh_mks --count 5

# upgrade the cluster
ankra cluster managed upgrade <cluster_id> --provider ovh_mks --version 1.32

# delete the cluster
ankra cluster managed delete <cluster_id> --provider ovh_mks
```

Autoscaling bounds are set from the portal or the `PATCH .../node-pools/{name}` endpoint. See [Managed Kubernetes - day-2 operations](/guides/managed-kubernetes#day-2-operations) for the shared mechanics.

## Importing an existing MKS cluster

Already running OVHcloud MKS? Discover clusters in your Public Cloud project and adopt them into Ankra without touching them. Discovery and import run from the portal or API - see [Managed Kubernetes - importing existing clusters](/guides/managed-kubernetes#importing-existing-clusters).

## Related

* [Managed Kubernetes overview](/guides/managed-kubernetes)
* [OVH API Credentials](/platform/credentials/ovh)
* [Cluster settings](/platform/cluster-settings)
