# Tag Configuration

Sedai automatically infers resource tags and Kubernetes annotations. These can be used to optionally define [feature settings](#features) and [compute action](#compute-actions) controls as well as for configuring [Infrastructure as Code (IaC)](#iac-configurations) changes.

***

## Features

{% hint style="info" %}
When you define settings via tags, Sedai considers it an override on settings a resource would otherwise inherit from its parent (such as a group, account, or Kubernetes cluster).
{% endhint %}

Tags must include the prefix `settings.sedai.io` followed by a period (.); for example:

> `settings.sedai.io.optimization.setting.configMode`

For feature settings, the accepted keys are `DATA_PILOT`, `CO_PILOT` and `AUTO`.

For Kubernetes workloads, add the prefix `settings.sedai.io` followed by a slash (/); for example:

> `settings.sedai.io/optimization.setting.configMode`

{% hint style="info" %}
For feature settings, the accepted keys are `DATA_PILOT`, `CO_PILOT` and `AUTO`.
{% endhint %}

### Optimization

Learn more about [optimization settings](/get-started/platform/settings/features/optimization.md).

{% tabs %}
{% tab title="AWS ECS/Kubernetes" %}

<table data-full-width="false"><thead><tr><th>Setting</th><th width="267">Key</th><th>Accepted Key</th></tr></thead><tbody><tr><td>Optimization Setting</td><td><code>optimization.setting.configMode</code></td><td><code>DATA_PILOT</code>, <code>CO_PILOT</code>, <code>AUTO</code></td></tr><tr><td>Goal</td><td><code>optimization.optimizationFocus.focus</code></td><td><code>COST</code>, <code>DURATION</code>, <code>COST_AND_DURATION</code></td></tr><tr><td>If goal is to improve performance, the allowed percent increase impact on cost from memory</td><td><code>optimization.optimizationFocus.maxMemoryIncreasePct</code></td><td>Integer between 0-100</td></tr><tr><td>If goal is to improve performance, the allowed percent increase impact on cost from CPU</td><td><code>optimization.optimizationFocus.maxCPUIncreasePct</code></td><td>Integer between 0-100</td></tr><tr><td>If goal is to reduce cost, the allowed percent increase on latency</td><td><code>optimization.optimizationFocus.maxLatencyIncreasePct</code></td><td>Integer between 0-100</td></tr></tbody></table>
{% endtab %}

{% tab title="AWS Lambda" %}

<table data-full-width="false"><thead><tr><th>Setting</th><th width="267">Key</th><th>Accepted Key</th></tr></thead><tbody><tr><td>Memory optimization setting</td><td><code>optimization.setting.configMode</code></td><td><code>OFF</code>, <code>MANUAL</code>, <code>AUTO</code></td></tr><tr><td>Goal</td><td><code>optimization.optimizationFocus.focus</code></td><td><code>COST</code>, <code>DURATION</code>, <code>COST_AND_DURATION</code></td></tr><tr><td>If goal is to improve performance, the allowed percent increase impact on cost</td><td><code>optimization.optimizationFocus.autoOptMaxCostChangePct</code></td><td>Integer between 0-100</td></tr><tr><td>If goal is to reduce cost, the allowed percent increase on duration</td><td><code>optimization.optimizationFocus.autoOptMaxLatencyChangePct</code></td><td>Integer between 0-100</td></tr><tr><td>Autonomous Concurrency setting</td><td><code>optimization.concurrency.configMode</code></td><td><code>OFF</code>, <code>MANUAL</code>, <code>AUTO</code></td></tr></tbody></table>
{% endtab %}
{% endtabs %}

### Availability

Learn more about [availability settings](/get-started/platform/settings/features/availability.md).

| Key                                                                                 | Acceoted Value                   |
| ----------------------------------------------------------------------------------- | -------------------------------- |
| `availability.configMode`                                                           | `DATA_PILOT`, `CO_PILOT`, `AUTO` |
| <p><strong>AWS Lambda only</strong></p><p><code>telemetryLogging.enabled</code></p> | Boolean                          |

### Release Intelligence

Learn more about[ release intelligence settings](https://github.com/SedaiEngineering/sedai-public-docs/blob/main/platform/settings/features/broken-reference/README.md).

| Key                              | Acceoted Value  |
| -------------------------------- | --------------- |
| `releaseIntelligence.configMode` | `OFF`, `MANUAL` |

## Compute Actions

{% hint style="info" %}
The following settings only apply to AWS ECS/Fargate and Kubernetes stateless workloads.
{% endhint %}

Learn more about container and virtual machine [compute actions](/get-started/platform/settings/features.md#compute-actions).

<table data-full-width="false"><thead><tr><th width="260">Setting</th><th width="349">Key</th><th>Accepted Value</th></tr></thead><tbody><tr><td><strong>Vertical Scaling</strong></td><td><code>enableVerticalScaling.enabled</code></td><td>Boolean</td></tr><tr><td>↳ Minimum CPU in MiB (optional)</td><td><code>enableVerticalScaling.minCpu</code></td><td>Integer</td></tr><tr><td>↳ Minimum memory in GB (optional)</td><td><code>enableVerticalScaling.minMemory</code></td><td>Integer</td></tr><tr><td><strong>Horizontal Scaling</strong></td><td><code>enableHorizontalScaling.enabled</code></td><td>Boolean</td></tr><tr><td>↳ Minimum replica count<br>(optional) <em>Default is set to 2</em></td><td><code>enableHorizontalScaling.minReplicas</code></td><td>Integer</td></tr><tr><td>↳ Maximum replica count<br>(optional)</td><td><code>enableHorizontalScaling.maxReplicas</code></td><td>Integer</td></tr><tr><td>↳ <strong>ECS only:</strong> Replica increment count (optional)</td><td><code>enableHorizontalScaling.replicaMultiplier</code></td><td>Integer</td></tr><tr><td>↳ <strong>ECS only:</strong> Replica increment count (optional)</td><td><code>enableHorizontalScaling.replicaIncrement</code></td><td>Integer</td></tr><tr><td><strong>Auto Scaling</strong> (ECS only)</td><td><code>enableServiceAutoscalingConfiguration.enabled</code></td><td>Boolean</td></tr><tr><td><strong>Autonomous Action without Traffic</strong></td><td><code>autonomousActionWithoutTraffic.enabled</code></td><td>Boolean</td></tr><tr><td><strong>Pre-production/Production</strong></td><td><code>isProd.enabled</code></td><td>Boolean</td></tr></tbody></table>

**AWS Kubernetes**

<table data-full-width="false"><thead><tr><th width="260">Setting</th><th width="349">Key</th><th>Accepted Value</th></tr></thead><tbody><tr><td><strong>Vertical Scaling</strong></td><td><code>enableVerticalScaling.enabled</code></td><td>Boolean</td></tr><tr><td>↳ Minimum CPU in Cores (optional)</td><td><code>enableVerticalScaling.minPerContainerCpuInCores</code></td><td>Integer</td></tr><tr><td>↳ Minimum memory in Bytes (optional)</td><td><code>enableVerticalScaling.minPerContainerMemoryInBytes</code></td><td>Integer</td></tr><tr><td><strong>Horizontal Scaling</strong></td><td><code>enableHorizontalScaling.enabled</code></td><td>Boolean</td></tr><tr><td>↳ Minimum replica count<br>(optional) <em>Default is set to 2</em></td><td><code>enableHorizontalScaling.minReplicas</code></td><td>Integer</td></tr><tr><td>↳ Maximum replica count<br>(optional)</td><td><code>enableHorizontalScaling.maxReplicas</code></td><td>Integer</td></tr><tr><td>↳ Replica Multiplier (optional)</td><td><code>enableHorizontalScaling.replicaMultiplier</code></td><td>Integer</td></tr><tr><td><strong>Autonomous Action without Traffic</strong></td><td><code>autonomousActionWithoutTraffic.enabled</code></td><td>Boolean</td></tr><tr><td><strong>Pre-production/Production</strong></td><td><code>isProd.enabled</code></td><td>Boolean</td></tr></tbody></table>

***

## IaC Configurations

{% hint style="info" %}
Requires an IaC integration — [learn more](/get-started/platform/integrations/infrastructure-as-code-iac.md).
{% endhint %}

To apply IaC configurations, tags should be formatted with the following prefix:

> `configs:sedai.io:`

For Kubernetes workloads, annotations should be formatted with the prefix:

> `configs.sedai.io/`

For example:

<table><thead><tr><th width="248">Tag</th><th>Example</th></tr></thead><tbody><tr><td><code>default_repo_path</code></td><td><code>configs:sedai.io:default_repo_path = 412335</code></td></tr><tr><td><code>variables_file_path</code></td><td><code>configs:sedai.io:variables_file_path = terraform/prod/prod-sls-1.tfvars</code></td></tr></tbody></table>

{% hint style="info" %}
If you use GitLabs, the `variables_file_path` does not need to include the project name. \\

For example, if the project name is **A** and the variables file **C** is at location **A/B/C** then you only need to include **B/C** as the value for `variables_file_path`.
{% endhint %}

***

### AWS Lambda

<table><thead><tr><th width="277">Tag</th><th>Example</th></tr></thead><tbody><tr><td><code>memory_size</code><br>(MB)</td><td><code>configs:sedai:io:memory_size = var.memory_size["prod-sls-1"]</code></td></tr><tr><td><code>timeout</code><br>(seconds)</td><td><code>configs:sedai.io:timeout = var.timeout[“prod-sls-1”]</code></td></tr><tr><td><code>reserved_concurrency</code></td><td><code>configs:sedai.io:reserved_concurrency = var.reserved_concurrency[“prod-sls-1”]</code></td></tr><tr><td><code>provisioned_concurrency</code></td><td><code>configs:sedai.io:provisioned_concurrency = var.provisioned_concurrency[“prod-sls-1”]</code></td></tr></tbody></table>

### AWS ECS

<table><thead><tr><th width="347">Tag</th><th>Example</th></tr></thead><tbody><tr><td><code>task_cpu</code><br>(units)</td><td><code>configs:sedai.io:task_cpu = var.task_cpu[“prod-app-1”]</code></td></tr><tr><td><code>task_memory</code><br>(MiB)</td><td><code>configs:sedai.io:task_memory = var.task_memory[“prod-app-1”]</code></td></tr><tr><td><code>desired_count</code></td><td><code>configs:sedai.io:desired_count = var.desired_count[“prod-app-1”]</code></td></tr><tr><td><code>container.soft_memory</code><br>(MiB)</td><td><code>configs:sedai.io:container.soft_memory = var.soft_memory[“prod-app-1”]</code></td></tr><tr><td><code>container.hard_memory</code><br>(MiB)</td><td><code>configs:sedai.io:container.hard_memory = var.hard_memory[“prod-app-1”]</code></td></tr><tr><td><code>container.soft_cpu</code><br>(units)</td><td><code>configs:sedai.io:container.soft_cpu = var.memosoft_cpury_size[“prod-app-1”]</code></td></tr><tr><td><code>autoscaler_config.as_min_task</code></td><td><code>configs:sedai.io:autoscaler_config.as_min_task = var.as_min_task[“prod-app-1”]</code></td></tr><tr><td><code>autoscaler_config.as_max_task</code></td><td><code>configs:sedai.io:autoscaler_config.as_max_task = var.as_max_task[“prod-app-1”]</code></td></tr><tr><td><code>autoscaler_config.metric</code></td><td><code>configs:sedai.io:autoscaler_config.metric = var.metric[“prod-app-1”]</code></td></tr><tr><td><code>autoscaler_config.target_value</code></td><td><code>configs:sedai.io:autoscaler_config.target_value = var.target_value[“prod-app-1”]</code></td></tr></tbody></table>

### Kubernetes

<table><thead><tr><th width="291">Annotation</th><th>Example</th></tr></thead><tbody><tr><td><code>replica_count</code></td><td><code>configs.sedai.io/container.app-1.replica_count = var.replica_count[“prod-app-1”]</code></td></tr><tr><td><code>container.&#x3C;container_name>.cpu_request</code></td><td><code>configs.sedai.io/container.app-1.cpu_request = var.cpu_request[“prod-app-1”]</code></td></tr><tr><td><code>container.&#x3C;container_name>.cpu_limit</code></td><td><code>configs.sedai.io/container.app-1.cpu_limit = var.cpu_limit[“prod-app-1”]</code></td></tr><tr><td><code>container.&#x3C;container_name>.memory_request</code></td><td><code>configs.sedai.io/container.app-1.memory_request = var.memory_request[“prod-app-1”]</code></td></tr><tr><td><code>container.&#x3C;container_name>.memory_limit</code></td><td><code>configs.sedai.io/container.app-1.memory_limit = var.memory_limit[“prod-app-1”]</code></td></tr><tr><td><code>hpa_min_count</code></td><td><code>configs.sedai.io/hpa_min_count = var.hpa_min_count[“prod-app-1”]</code></td></tr><tr><td><code>hpa_max_count</code></td><td><code>configs.sedai.io/hpa_max_count = var.hpa_max_count[“prod-app-1”]</code></td></tr><tr><td><code>hpa_metric</code></td><td><code>configs.sedai.io/hpa_metric = var.hpa_metric[“prod-app-1”]</code></td></tr><tr><td><code>hpa_target_value</code></td><td><code>configs.sedai.io/hpa_target_value = var.hpa_target_value[“prod-app-1”]</code></td></tr></tbody></table>


---

# 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.sedai.io/get-started/platform/settings/features/tag-configuration.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.
