---
url: /targets-management.md
---
# Target Management

You can access the **Target** management panel from the control panel page:

*![control-panel-page-with-targets-highlighted](/images/control-panel-page-with-targets-highlighted.png)*
*Control panel - Target management*

## Viewing Targets

Once you have opened the Target management panel, you will see the list of available Targets

![targets-page](/images/targets-page.png)
*Target list*

For each Target you can:

| Function | Button |
| -------- | -------- |
| Access the edit form | ![target-edit-button](/images/target-edit-button.png) |
| Delete it | ![target-delete-button](/images/target-delete-button.png) |

## Creating/Editing a Target

From the *Target* management page, by clicking the "Create Target" button, or by clicking the edit icon in the *Target* card, the *Target* creation/edit form will open:

![targets-page-with-buttons-highlighted](/images/targets-page-with-buttons-highlighted.png)
*Target list - create/edit target*

Here you will be able to specify scheduling constraints and preferences for the *Services* through a JSON:

![target-form](/images/target-form.png)
*Target creation/edit form*

After entering the basic metadata for ALIDA:

* Name: *Target name*
* Description: *Target description*
* Default Target: *(to make the *Target* the default or not)*

the JSON must contain the following Kubernetes-specific attributes:

* `affinity`: *affinity according to the official Kubernetes specifications*
* `tolerations`: *tolerations according to the official Kubernetes specifications*
* `env`: *env according to the official Kubernetes specifications*
* `runtimeClassName`: *runtimeClassName according to the official Kubernetes specifications*

These will indicate to the Kubernetes orchestrator which nodes to use for scheduling.

For Kubernetes attributes, refer to the official documentation:

* [affinity](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity)
* [tolerations](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/)
* [env](https://kubernetes.io/docs/tasks/inject-data-application/define-environment-variable-container/#define-an-environment-variable-for-a-container)
* [runtimeClassName](https://kubernetes.io/docs/concepts/containers/runtime-class/)

::: tip Example *Target* definition

```json
{
    "name": "Target name",
    "description": "Target description",
    "runtimeClassName": null,
    "affinity": {
        "nodeAffinity": {
            "requiredDuringSchedulingIgnoredDuringExecution": {
                "nodeSelectorTerms": [
                    {
                        "matchExpressions": [
                            {
                                "key": "key1",
                                "operator": "In",
                                "values": [
                                    "value1"
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    },
    "env": {
        "key1": "value1",
        "key2": "value2"
    },
    "tolerations": [
        {
            "key": "key1",
            "operator": "Exists/Equal",
            "value": "value1",
            "effect": "NoExecute/NoSchedule/PreferNoSchedule"
        }
    ]
}
```

:::
