Define deployment modes
Deployment modes let you choose how an integration is installed and managed.
- Default mode: Your install and manage Elastic Agent yourself (for example using Fleet).
- Agentless mode: Elastic Stack manages the agents for you, no need to install anything yourself.
Some integrations can support both modes, while others may only support one.
When you create a policy template for your integration, you can specify which modes it supports using the deployment_modes
property.
Example:
format_version: 3.2.0
name: aws
title: AWS
version: 2.13.1
...
policy_templates:
- name: billing
title: AWS Billing
description: Collect billing metrics with Elastic Agent
deployment_modes:
default:
enabled: false
agentless:
enabled: true
data_streams:
- billing
...
- Defines the supported deployment modes
- Disables agent deployment support
- Enables agentless deployment support
Here, only agentless mode is enable for the "billing" template.
Sometimes, you want certain configuration options to show up only in specific modes. Use the hide_in_deployment_modes
property for this.
Example:
streams:
- input: filestream
vars:
- name: paths
type: text
title: Paths
multi: true
required: true
show_user: true
default:
- /var/log/my-package/*.log
- name: agentless_only
type: text
title: Agentless only variable
multi: false
required: false
show_user: true
hide_in_deployment_modes:
- default
- name: hidden_in_agentless
type: text
title: Hidden in agentless variable
multi: false
required: false
show_user: true
hide_in_deployment_modes:
- agentless
- Disables visibility of the variable in default deployment mode
- Disables visibility of the variable in agentless deployment mode
This helps keep the UI clean and relevant for each deployment type. For more information on variable property definitions, refer to Define variable properties.
Agentless deployments are protected by a capabilities file (capabilities.yml). This file lists what inputs and features are allowed or blocked in agentless mode, making sure only safe and supported features run.
You can see the current allowed capabilities in the capabilities.yml
.