# Cluster Requirements

## Kubernetes version

Running Akamas requires a cluster running Kubernetes version 1.24 or higher.

## Resources requirements

Akamas can be deployed in three different sizes depending on the number of concurrent optimization studies that will be executed. If you are unsure about which size is appropriate for your environment we suggest you start with the small one and upgrade to bigger ones as you expand the optimization activity to more applications.

The tables below report the required resources both for requests and limits that should be available in the cluster to use Akamas.

**Small**

The small tier is suited for environments that need to support up to 10 concurrent optimization studies

| Resource   | Requests | Limits   |
| ---------- | -------- | -------- |
| CPU        | 7 Cores  | 17 Cores |
| Memory     | 38 GB    | 41 GB    |
| Disk Space | 70 GB    | 70 GB    |

## Storage requirements

The cluster must provide the definition of a *Storage Class* so that the application installation can leverage *Persistent Volume Claims* to dynamically provision the volumes required to persist data.

For more information on this topic refer to [Kubernetes' official documentation](https://kubernetes.io/docs/concepts/storage/persistent-volumes/).

## Permissions

To install and run Akamas cluster level permissions are not required. This is the minimal set of namespaced rules.

```yaml
- apiGroups: ["", "apps", "policy", "batch", "networking.k8s.io", "events.k8s.io/v1", "rbac.authorization.k8s.io"]
  resources:
    - configmaps
    - cronjobs
    - deployments
    - events
    - ingresses
    - jobs
    - persistentvolumeclaims
    - poddisruptionbudgets
    - pods
    - pods/log
    - rolebindings
    - roles
    - secrets
    - serviceaccounts
    - services
    - statefulsets
  verbs: ["get", "list", "create", "delete", "patch", "update", "watch"]
```

## Networking

Networking requirements depend on how users interact with Akamas. Services can be exposed via *Ingress* or [using *kubectl* as a proxy](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/). Refer to [Accessing Akamas](/akamas-docs/3.3.1/installing-akamas/kubernetes/accessing-akamas.md) for a more detailed description of the available options.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.akamas.io/akamas-docs/3.3.1/installing-akamas/kubernetes/prerequisites/cluster-requirements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
