---
updatedAt: 2026-09-25T12:03:58.000Z
agentTools:
  projectIndex: https://docs.scalr.io/llms.txt
---

# Agent Pools

<Callout icon="🚧" theme="warn">
  RPM and Debian Linux package support has been deprecated as of March 31, 2026.

  If you have agents installed via Linux packages, see [our migration guide](/docs/installation#linux-packages-deprecation).
</Callout>

# Overview

Whether you want to use an agent to execute runs in your own network or use a private VCS provider with scalr.io without opening it to the internet, agent pools give you the extra layer of security and control to meet your requirements.

By default, when executing a Terraform or OpenTofu run in scalr.io, it will execute on a shared pool of resources that are maintained by Scalr. This method suffices for the majority of use cases, but sometimes there are use cases due to security, compliance, or network requirements that require the runs to be executed on a self-hosted pool of agents. The Scalr self-hosted agent pools are deployed on your infrastructure, fully encrypted, and will only need network access back to Scalr.io to report the run results. Scalr.io will never need network access back to the agent.

**Run agents are not included in the Scalr.io run concurrency. Each agent will have a limit of 5 concurrent runs at time to avoid overloading them. The agent was decoupled from the scalr.io concurrency limit to allow customers to control their own concurrency if needed.**

**Example:** If you have five concurrent runs on the scalr.io runners and two self-hosted agents running, you will have 15 concurrent runs

# Permissions

* Creating agent pools requires the `agent-pools:create` permission.
* Managing agent pools or assigning a default agent pool to an account requires the `agent-pools:update` permission.
* Deleting an agent pool requires the `agent-pools:delete` permission.
* Assigning an agent pool to a workspace requires the `workspace:update` and `agent-pools:read` permissions.

# Configuring an Agent Pool

Agent pools are created at the account scope and can be made the default for the entire account or linked to specific workspaces. To create a pool, go to the account scope, expand the inventory menu, and click agent pools. Select Runs, and then follow the in-app instructions:

<Image src="https://files.readme.io/0390d9b239475ca3868c3be241f99c00ce9a442dfedd9e1085fe9a9cfe71db35-Screenshot_2025-06-02_at_11.53.19_AM.png" align="center" width="smart" />

To connect an agent to this pool, follow the [Installation](https://docs.scalr.io/docs/installation#/) instructions.

# Assigning Agent Pools

Agent pools can be set for the entire account, assigned to environments, or selected in the workspace settings. If an agent is set as the default for an account, all workspaces will inherit the agent unless a different agent is explicitly set in the workspace settings. If an agent pool is assigned to an environment, only that environment will be able to use it.

To set a default for the account, go to the agent pools page and click "make default" next to the agent pool:

<Image src="https://files.readme.io/316fb2ffbe1beab03080e4f0a85b809ec4bc46476017d9c0ede08c23daa5245a-Screenshot_2025-05-27_at_9.48.57_AM.png" align="center" />

To assign an agent pool to one or more environments, add the environments in the environment access settings:

<Image src="https://files.readme.io/e5685a63ea741f6000f09580ecec907aa05a11b79bfdaf337b54854d28790082-Screenshot_2025-07-07_at_4.05.45_PM.png" align="center" />

Agent pools can also be selected in the workspace and override the default setting:

<Image src="https://files.readme.io/5577f93c4d0e99bcb8caf687ceb0072f6ad93111ecf6f26c9f0c0c27075a81d9-Screenshot_2025-05-27_at_9.50.50_AM.png" align="center" />

## Forcing All Workspaces to use an Agent Pool

If all workspaces in an account should use an agent pool, the enforcement for this can be done with Scalr security rules at the admin scope:

<Image src="https://files.readme.io/74cccfc72501b6ac72029ede2cc0c6740ee751b13bf2449108a99de4a3d87724-Screenshot_2025-11-12_at_2.41.22_PM.png" align="center" width="400px" />

Once enforced, all current and future workspaces must have an agent pool assigned to them to be able to execute a run:

<Image src="https://files.readme.io/202baeda53983f5bee520d0733af15bf160eb7151524c1c71e2649d43e176ea8-ff4338ed65f1a303ad1cee70fc670d07ad26abb138ea1225ab80b976735110f8-Screenshot_2025-11-11_at_6.48.28_AM.png" align="center" />

# Assigning VCS Agent Pool to Providers

VCS agent pools are linked differently; they are associated with the VCS provider integration, rather than the workspace. To configure it, go to the **Integrations** page, choose your self-hosted Enterprise provider, and select a VCS agent pool from the **Select agent pool for this VCS connection** list.

# Delete Agents from an Agent Pool

You cannot delete an active agent from the pool immediately. Only agents with the `Offline` status can be deleted.

An agent becomes `Offline` after 5 minutes of inactivity. Offline agents are automatically removed from the pool after 4 hours.

# Delete an Agent Pool

Before deleting an agent pool, unlink all workspaces from it. Once unlinked, the pool can be safely deleted.

All agent pool tokens will be revoked upon deletion, and any running agents in the pool will be disconnected and stopped.

# Sibling pages

* [Requirements](https://docs.scalr.io/scalr/docs/requirements.md)
* [Installation](https://docs.scalr.io/scalr/docs/installation.md)
* [Configuration Options](https://docs.scalr.io/scalr/docs/configuration.md)
* [Run Environment & Customization](https://docs.scalr.io/scalr/docs/run-environment.md)
* [Drivers](https://docs.scalr.io/scalr/docs/drivers.md)
* [Providers Cache](https://docs.scalr.io/scalr/docs/providers-cache.md)
* [Modules Cache](https://docs.scalr.io/scalr/docs/modules-cache.md)
* [Hooks](https://docs.scalr.io/scalr/docs/hooks-1.md)
* [Logs](https://docs.scalr.io/scalr/docs/logging.md)
* [Metrics](https://docs.scalr.io/scalr/docs/metrics.md)
* [Tracing](https://docs.scalr.io/scalr/docs/tracing.md)
* [Troubleshooting](https://docs.scalr.io/scalr/docs/troubleshooting.md)
* [Changelog](https://docs.scalr.io/scalr/docs/changelog.md)