﻿---
title: Add plugins and configuration files in Elastic Cloud on Kubernetes
description: Choose how to install Elasticsearch plugins and configuration files on Elastic Cloud on Kubernetes.
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-on-k8s/manage-plugins
products:
  - Elastic Cloud on Kubernetes
applies_to:
  - Elastic Cloud on Kubernetes: Generally available
---

# Add plugins and configuration files in Elastic Cloud on Kubernetes
On Elastic Cloud on Kubernetes, Elasticsearch runs in Kubernetes pods. Plugins must be present on disk before the main Elasticsearch container starts. Configuration files such as synonym dictionaries, scripts, or SAML metadata can also be made available in the configuration directory.
Elastic Cloud on Kubernetes does not use *bundles* (the ZIP-based extension workflow in Elastic Cloud Hosted and Elastic Cloud Enterprise). Instead, you choose how to supply plugins and configuration files based on whether you need reproducibility, runtime network access, or standard Kubernetes mounts.
Refer to [Plugins and bundles](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles) for options that apply to other deployment types.

## Choose an approach

Use a custom image or init containers when you need plugins. Prefer ConfigMaps or Secrets when you only need configuration files.

### Custom container image

Build a custom image from the official Elastic image with the required plugins and configuration files already included. Refer to [Create a custom image](/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins#create-a-custom-image).
- **Pros**
  - Deployment is reproducible and reusable.
- Does not require internet access at runtime.
- Saves bandwidth and is quicker to start.
- **Cons**
  - Requires a container registry and build infrastructure to build and host the custom image.
- Version upgrades require building a new container image.


### Init containers

Run `elasticsearch-plugin install` in an init container before the main Elasticsearch container starts. Refer to [Init containers for plugin downloads](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads).
- **Pros**
  - Simpler to adopt and to upgrade versions.
- **Cons**
  - Requires pods to have internet access. When using Istio, see the [Istio note](/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads#istio-note).
- Adding new Elasticsearch nodes could randomly fail due to network issues or bad configuration.
- Each Elasticsearch node needs to repeat the download, wasting bandwidth and slowing startup.
- Deployment manifests are more complicated.


### ConfigMaps or Secrets

Mount configuration files into your Elasticsearch nodes with volumes and volume mounts. Refer to [Use a volume and volume mount together with a ConfigMap or Secret](/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).
- **Pros**
  - Best choice for injecting configuration files into your Elasticsearch nodes.
- Follows standard Kubernetes methodology to mount files into Pods.
- **Cons**
  - Not valid for plugin installation. Mounting plugin ZIP files does not run `elasticsearch-plugin install`, so Elasticsearch will not load them.
- Requires you to maintain the ConfigMaps or Secrets with the content of the files.


## Kibana plugins

To run Kibana with additional plugins, use a custom container image that already includes them. Refer to [Install Kibana plugins](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/7959/deploy-manage/plugins-and-bundles/cloud-on-k8s/k8s-kibana-plugins).