﻿---
title: Plugins and bundles in Elasticsearch
description: Extend Elasticsearch with plugins and bundles, and find the install path that matches your deployment type.
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles
products:
  - Elastic Cloud Enterprise
  - Elastic Cloud Hosted
  - Elastic Cloud on Kubernetes
  - Elastic Stack
  - Elasticsearch
  - Kibana
applies_to:
  - Elastic Cloud Serverless: Unavailable
  - Elastic Cloud Hosted: Generally available
  - Elastic Cloud on Kubernetes: Generally available
  - Elastic Cloud Enterprise: Generally available
  - Self-managed Elastic deployments: Generally available
---

# Plugins and bundles in Elasticsearch
Use plugins and bundles to extend Elasticsearch's core functionality with additional analyzers, discovery providers, ingest processors, field types, scripting languages, dictionaries, and related configuration files.
**[Plugins](https://docs-v3-preview.elastic.dev/elastic/elasticsearch/tree/main/reference/elasticsearch-plugins)** are packages installed in Elasticsearch. Use them to add capabilities such as language and phonetic analysis, ingest processors for attachments or geo-IP data, additional field types, cloud discovery providers, or scripting languages. Official core plugins are maintained with Elasticsearch and share its version number. Community and custom plugins are maintained separately and can cover the same kinds of extensions when a core plugin is not available or you need something purpose-built.
**Bundles** are ZIP archives of configuration or data files, such as synonym dictionaries, scripts, or SAML metadata. In Elastic Cloud Hosted and Elastic Cloud Enterprise, bundles are managed as *extensions* together with custom plugins. At node startup, Elastic Cloud extracts bundle contents into the node's configuration directory instead of installing them as plugins.
On other deployment types, the same kinds of files are still supported, but you provide them differently: you place them on each node's configuration path for self-managed clusters, or mount them with ConfigMaps or Secrets on Elastic Cloud on Kubernetes.
After you [choose](https://docs-v3-preview.elastic.dev/elastic/elasticsearch/tree/main/reference/elasticsearch-plugins) or [create](https://docs-v3-preview.elastic.dev/elastic/elasticsearch/tree/main/extend) a plugin, you can install it by following the steps described on this page that match your deployment type.
<admonition title="Elastic Cloud Serverless">
  Elastic Cloud Serverless projects do not support installing plugins or uploading custom plugins and bundles. Serverless includes [core analysis plugins](https://docs-v3-preview.elastic.dev/elastic/elasticsearch/tree/main/reference/elasticsearch-plugins/analysis-plugins#_core_analysis_plugins) by default. To manage synonyms, use the [synonyms API](https://www.elastic.co/docs/api/doc/elasticsearch-serverless/group/endpoint-synonyms) or refer to [Search with synonyms](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/solutions/search/full-text/search-with-synonyms). For differences between Elastic Cloud Hosted and Serverless for plugins, bundles, and custom dictionaries, see [Compare Elastic Cloud Hosted and Serverless](/elastic/docs-content/pull/7959/deploy-manage/deploy/elastic-cloud/differences-from-other-elasticsearch-offerings#elasticsearch-differences-custom-plugins-and-bundles).
</admonition>


## Manage plugins and bundles by deployment type

How you install and manage plugins, and whether you use bundles or another way to supply equivalent configuration files, depends on your Elasticsearch [deployment type](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/deploy):
- Hosted Cloud deployments such as [Elastic Cloud Hosted](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-extensions) and [Elastic Cloud Enterprise](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins) expose plugin and extension management in the Cloud console and API.
- [Self-managed deployments](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/manage-plugins) use a configuration file with the official Docker image, or the `elasticsearch-plugin` CLI for package and archive installs. You add dictionaries and other config files directly on each node's configuration path.
- On [Elastic Cloud on Kubernetes](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-on-k8s/manage-plugins) deployments, you install plugins by building a custom container image or using init containers, and you add configuration files with ConfigMaps or Secrets.


### Managing plugins for Elastic Cloud Hosted

<applies-to>
  - Elastic Cloud Hosted: Generally available
</applies-to>

Elastic Cloud Hosted simplifies plugin management by offering compatible plugins for your Elasticsearch version. These plugins are automatically upgraded with your deployment, except when there are breaking changes.
To add plugins to a hosted deployment, refer to:
- [Add plugins and extensions in Elastic Cloud Hosted](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-extensions)
- [Upload custom plugins and bundles](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles)
- [Manage plugins and extensions through the API](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/elastic-cloud/manage-plugins-extensions-through-api)

Kibana plugins are not supported on Elastic Cloud Hosted. Refer to [Restrictions and known problems](/elastic/docs-content/pull/7959/deploy-manage/deploy/elastic-cloud/restrictions-known-problems#ec-restrictions-plugins).

### Managing plugins for Elastic Cloud Enterprise

<applies-to>
  - Elastic Cloud Enterprise: Generally available
</applies-to>

Elastic Cloud Enterprise provides built-in plugins that work with your version of Elasticsearch and are upgraded along with your deployment, unless there are breaking changes.
To add plugins to an Elastic Cloud Enterprise deployment, refer to:
- [Add plugins and extensions in Elastic Cloud Enterprise](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins)
- [Add custom bundles and plugins](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins)

Unlike Elastic Cloud Hosted, in certain cases, Elastic Cloud Enterprise allows additional Kibana plugins by building them into a custom Kibana Docker image. Refer to [Include additional Kibana plugins](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-enterprise/ece-include-additional-kibana-plugin), for more information.

### Managing plugins for self-managed deployments

<applies-to>
  - Self-managed Elastic deployments: Generally available
</applies-to>

How you manage plugins depends on how you run Elasticsearch:
- If you run Elasticsearch using the [official Elasticsearch Docker image](https://www.docker.elastic.co/), you manage plugins with a declarative [configuration file](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/manage-plugins-using-configuration-file). Each time the container starts, Elasticsearch installs, removes, or upgrades plugins so the running set matches that file.
- For package and archive installs, use the [`elasticsearch-plugin` command-line tool](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/self-managed/install-plugins) to install, list, and remove plugins on each node.


### Managing plugins for Elastic Cloud on Kubernetes

<applies-to>
  - Elastic Cloud on Kubernetes: Generally available
</applies-to>

On Elastic Cloud on Kubernetes, Elasticsearch runs in Kubernetes pods. Plugins must be present on disk before the main Elasticsearch container starts. Use one of these approaches:
- [Using a custom container image](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins). You build a custom image from the official Elastic image with the required plugins pre-installed. This option is reproducible, works without internet access at runtime, and starts quickly, but requires a container registry and a new image for each Elasticsearch version upgrade.
- [Using init containers](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads). You use an init container to run `elasticsearch-plugin install` before the main Elasticsearch container starts. This option is easier to get started with, but requires pod internet access and repeats the download on each new node.

<note>
  You can inject configuration files, such as synonym dictionaries, SAML metadata, or TLS certificates by [mounting them with ConfigMaps or Secrets](/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). However, mounting plugin files into a pod does not run `elasticsearch-plugin install`, so Elasticsearch will not load them at startup. Instead, to install plugins, use a custom container image or init container.
</note>


## Related resources

- [Elasticsearch plugins reference](https://docs-v3-preview.elastic.dev/elastic/elasticsearch/tree/main/reference/elasticsearch-plugins): Official plugins and settings.
- [Stack settings](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/stack-settings): Configure `elasticsearch.yml`, `kibana.yml`, and related settings by deployment type.
- [Secure settings](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/security/secure-settings): Store sensitive values in the Elasticsearch or Kibana keystore.