diff --git a/deploy-manage/deploy/cloud-enterprise/add-plugins.md b/deploy-manage/deploy/cloud-enterprise/add-plugins.md deleted file mode 100644 index 2cb52eaa7d..0000000000 --- a/deploy-manage/deploy/cloud-enterprise/add-plugins.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -navigation_title: Add plugins and extensions -mapped_pages: - - https://www.elastic.co/guide/en/cloud-enterprise/current/ece-add-plugins.html -applies_to: - deployment: - ece: -products: - - id: cloud-enterprise - - id: elasticsearch ---- - -# Add plugins and extensions in {{ece}} [ece-adding-plugins] - -Plugins extend the core functionality of {{es}}. {{ece}} makes it easy to add plugins to your deployment by providing a number of plugins that work with your version of {{es}}. One advantage of these plugins is that you generally don’t have to worry about upgrading plugins when upgrading to a new {{es}} version, unless there are breaking changes. The plugins are upgraded along with the rest of your deployment. - -::::{note} -This page refers to {{es}} plugins that come built-in with the {{ece}} platform. For details on adding other plugins, refer to [](./add-custom-bundles-plugins.md). -:::: - -Adding plugins to a deployment is as simple as selecting it from the list of available plugins, but different versions of {{es}} support different plugins. Plugins are available for different purposes, such as: - -* National language support, phonetic analysis, and extended unicode support -* Ingesting attachments in common formats and ingesting information about the geographic location of IP addresses -* Adding new field datatypes to {{es}} - -Additional plugins might be available. If a plugin is listed for your version of {{es}}, it can be used. - -You can also [create](elasticsearch://extend/index.md) and add custom plugins. - -## Add plugins when creating a new {{ece}} deployment - -1. [Log into the Cloud UI](/deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md) and select **Create deployment**. -2. Make your initial deployment selections, then select **Advanced settings**. -3. Beneath the {{es}} master node, expand the **Manage plugins and settings** caret. -4. Select the plugins you want. -5. Select **Create deployment**. - -The deployment spins up with the plugins installed. - -## Add plugins to an existing {{ece}} deployment - -1. [Log into the Cloud UI](/deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md). -2. On the **Deployments** page, select your deployment. - - Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters. - -3. From your deployment menu, go to the **Edit** page. -4. Beneath the {{es}} master node, expand the **Manage plugins and settings** caret. -5. Select the plugins that you want. -6. Select **Save changes**. - -There is no downtime when adding plugins to highly available deployments. The deployment is updated with new nodes that have the plugins installed. \ No newline at end of file diff --git a/deploy-manage/deploy/cloud-enterprise/configure-deployment.md b/deploy-manage/deploy/cloud-enterprise/configure-deployment.md index 3ab41a0fe6..cea1618363 100644 --- a/deploy-manage/deploy/cloud-enterprise/configure-deployment.md +++ b/deploy-manage/deploy/cloud-enterprise/configure-deployment.md @@ -18,8 +18,8 @@ You can modify your deployment to adjust resources, enable additional features, * [](./customize-deployment.md): Learn how to change your deployment architecture, configure resources, autoscaling, data tiers, and other {{stack}} components, from the **Edit** deployment view. * [](./edit-stack-settings.md): Add, remove, or update {{es}} or {{kib}} YML configuration settings. * [](./resize-deployment.md): Learn how to scale a deployment, including important considerations, and a practical example. -* [](./add-plugins.md): Enable or disable plugins from the list of available extensions in ECE. -* [](./add-custom-bundles-plugins.md): Add custom plugins or external configuration files to your {{es}} instances. +* [](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins-provided-with-ece.md): Enable or disable plugins from the list of available extensions in ECE. +* [](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md): Add custom plugins or external configuration files to your {{es}} instances. * [](./ece-regional-deployment-aliases.md): Configure custom aliases to create predictable and human-readable URLs for your {{stack}} components, making them easier to share and use. * [](./resource-overrides.md): Temporary extend cluster capacity to improve stability. diff --git a/deploy-manage/deploy/cloud-enterprise/create-deployment.md b/deploy-manage/deploy/cloud-enterprise/create-deployment.md index cf761af92e..600888c4cd 100644 --- a/deploy-manage/deploy/cloud-enterprise/create-deployment.md +++ b/deploy-manage/deploy/cloud-enterprise/create-deployment.md @@ -39,7 +39,7 @@ To create a deployment in ECE: Restoring a snapshot can help with major version upgrades by creating a separate, non-production deployment where you can test, for example. Or, make life easier for your developers by providing them with a development environment that is populated with real data. :::: -6. Select **Advanced settings** if you want to configure [autoscaling](/deploy-manage/autoscaling/autoscaling-in-ece-and-ech.md), adjust resources, [select plugins](./add-plugins.md), or customize [data tiers](/manage-data/lifecycle/data-tiers.md). Refer to [Customize your deployment](../../../deploy-manage/deploy/cloud-enterprise/customize-deployment.md) for more details on the available options. +6. Select **Advanced settings** if you want to configure [autoscaling](/deploy-manage/autoscaling/autoscaling-in-ece-and-ech.md), adjust resources, [select plugins](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins-provided-with-ece.md), or customize [data tiers](/manage-data/lifecycle/data-tiers.md). Refer to [Customize your deployment](../../../deploy-manage/deploy/cloud-enterprise/customize-deployment.md) for more details on the available options. 7. Select **Create deployment**. It takes a few minutes before your deployment gets created. diff --git a/deploy-manage/deploy/cloud-enterprise/customize-deployment.md b/deploy-manage/deploy/cloud-enterprise/customize-deployment.md index 3f36a249e4..6e8cfb3e2d 100644 --- a/deploy-manage/deploy/cloud-enterprise/customize-deployment.md +++ b/deploy-manage/deploy/cloud-enterprise/customize-deployment.md @@ -64,7 +64,7 @@ In the deployment edit page, you can configure the following settings and featur * Enable additional components, such as [Machine Learning](../../../explore-analyze/machine-learning.md) nodes or an [Integrations server](./manage-integrations-server.md). -* Select **Manage user settings and extensions** at {{es}} level, or **Edit user settings** for other components, to customize the YML configuration settings and plugin extensions. For more details, refer to [](edit-stack-settings.md) and [](./add-plugins.md). +* Select **Manage user settings and extensions** at {{es}} level, or **Edit user settings** for other components, to customize the YML configuration settings and plugin extensions. For more details, refer to [](edit-stack-settings.md) and [](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins.md). * Select the **Advanced edit** link at the bottom of the page to access the [](./advanced-cluster-configuration.md) view. diff --git a/deploy-manage/deploy/cloud-enterprise/post-installation-steps.md b/deploy-manage/deploy/cloud-enterprise/post-installation-steps.md index e67b433b2a..f98c5f18d8 100644 --- a/deploy-manage/deploy/cloud-enterprise/post-installation-steps.md +++ b/deploy-manage/deploy/cloud-enterprise/post-installation-steps.md @@ -18,7 +18,7 @@ To start creating {{es}} deployments directly, refer to [](./working-with-deploy * Add your own [load balancer](./ece-load-balancers.md). Load balancers are user supplied and we do not currently provide configuration steps for you. -* [Add more capacity](/deploy-manage/maintenance/ece/scale-out-installation.md) to your ECE installation, [resize your deployment](./resize-deployment.md), [upgrade to a newer {{es}} version](/deploy-manage/upgrade/deployment-or-cluster/upgrade-on-ece.md), and [add some plugins](./add-plugins.md). +* [Add more capacity](/deploy-manage/maintenance/ece/scale-out-installation.md) to your ECE installation, [resize your deployment](./resize-deployment.md), [upgrade to a newer {{es}} version](/deploy-manage/upgrade/deployment-or-cluster/upgrade-on-ece.md), and [add some plugins](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins-provided-with-ece.md). * [Configure ECE system deployments](./system-deployments-configuration.md) to ensure a highly available and resilient setup. diff --git a/deploy-manage/deploy/cloud-on-k8s/create-custom-images.md b/deploy-manage/deploy/cloud-on-k8s/create-custom-images.md index f86e903618..155a570440 100644 --- a/deploy-manage/deploy/cloud-on-k8s/create-custom-images.md +++ b/deploy-manage/deploy/cloud-on-k8s/create-custom-images.md @@ -10,7 +10,7 @@ products: # Create custom images [k8s-custom-images] -You can create your own custom application images ({{eck_resources_list}}) instead of using the base images provided by Elastic. You might want to do this to have a canonical image with all the necessary plugins pre-loaded rather than [installing them through an init container](init-containers-for-plugin-downloads.md) each time a Pod starts. You must use the official image as the base for custom images. For example, if you want to create an {{es}} {{version.stack}} image with the [ICU Analysis Plugin](elasticsearch://reference/elasticsearch-plugins/analysis-icu.md), you can do the following: +You can create your own custom application images ({{eck_resources_list}}) instead of using the base images provided by Elastic. You might want to do this to have a canonical image with all the necessary plugins pre-loaded rather than [installing them through an init container](/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md) each time a Pod starts. You must use the official image as the base for custom images. For example, if you want to create an {{es}} {{version.stack}} image with the [ICU Analysis Plugin](elasticsearch://reference/elasticsearch-plugins/analysis-icu.md), you can do the following: 1. Create a `Dockerfile` containing: diff --git a/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md b/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md deleted file mode 100644 index 4dbdf3c6cc..0000000000 --- a/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md +++ /dev/null @@ -1,155 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-bundles-plugins.html -applies_to: - deployment: - eck: all -products: - - id: cloud-kubernetes ---- - -# Custom configuration files and plugins [k8s-bundles-plugins] - -To run {{es}} with specific plugins or configuration files installed on ECK, you have multiple options. Each option has its own pros and cons. - -1. Create a custom container image with the required plugins and configuration files. - - * **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. - -2. Use init containers to install plugins and configuration files. - - * **Pros** - - * Easier to get started and upgrade versions. - - * **Cons** - - * Requires pods to have internet access. **Check [the note about using Istio](#istio-note)**. - * Adding new {{es}} nodes could randomly fail due to network issues or bad configuration. - * Each {{es}} node needs to repeat the download, wasting bandwidth and slowing startup. - * Deployment manifests are more complicated. - -3. Use ConfigMaps or Secrets together with volumes and volume mounts for configuration files. - - * **Pros** - - * Best choice for injecting configuration files into your {{es}} nodes. - * Follows standard Kubernetes methodology to mount files into Pods. - - * **Cons** - - * Not valid for plugins installation. - * Requires to maintain the ConfigMaps or Secrets with the content of the files. - -The following sections provide examples for each of the mentioned options. - -## Create a custom image - -Refer to [Creating custom images](create-custom-images.md) for instructions on how to build custom Docker images based on the official Elastic images. - -## Use init containers for plugins installation - -The following example describes option 2, using a repository plugin. To install the plugin before the {{es}} nodes start, use an init container to run the [plugin installation tool](elasticsearch://reference/elasticsearch-plugins/installation.md). - -```yaml -spec: - nodeSets: - - name: default - count: 3 - podTemplate: - spec: - initContainers: - - name: install-plugins - command: - - sh - - -c - - | - bin/elasticsearch-plugin remove --purge repository-azure - bin/elasticsearch-plugin install --batch repository-azure -``` - -### Note when using Istio [istio-note] - -When using Istio, init containers do **not** have network access, as the Envoy sidecar that provides network connectivity is not started yet. In this scenario, custom containers are the best option. If custom containers are simply not a viable option, then it is possible to adjust the startup command for the {{es}} container itself to run the plugin installation before starting {{es}}, as the following example describes. Note that this approach will require updating the startup command if it changes in the {{es}} image, which could potentially cause failures during upgrades. - -```yaml -spec: - nodeSets: - - name: default - count: 3 - podTemplate: - spec: - containers: - - name: elasticsearch - command: - - /usr/bin/env - - bash - - -c - - | - #!/usr/bin/env bash - set -e - bin/elasticsearch-plugin remove --purge repository-s3 || true - bin/elasticsearch-plugin install --batch repository-s3 - /bin/tini -- /usr/local/bin/docker-entrypoint.sh -``` - -## Use a volume and volume mount together with a ConfigMap or Secret - -To install custom configuration files you can: - -1. Add the configuration data into a ConfigMap or Secret. -2. Use volumes and volume mounts in your manifest to mount the contents of the ConfigMap or Secret as files in your {{es}} nodes. - -The next example shows how to add a synonyms file for the [synonym token filter](elasticsearch://reference/text-analysis/analysis-synonym-tokenfilter.md) in {{es}}. But you can **use the same approach for any kind of file you want to mount into the configuration directory of Elasticsearch**, like adding CA certificates of external systems. - -1. Create the ConfigMap or Secret with the data: - -There are multiple ways to create and mount [ConfigMaps](https://kubernetes.io/docs/concepts/configuration/configmap/) and [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/) on Kubernetes. Refer to the official documentation for more details. - -This example shows how to create a ConfigMap named `synonyms` with the content of a local file named `my-synonyms.txt` added into the `synonyms-elasticsearch.txt` key of the ConfigMap. - -```sh -kubectl create configmap synonyms -n --from-file=my-synonyms.txt=synonyms-elasticsearch.txt -``` - -::::{tip} -Create the ConfigMap or Secret in the same namespace where your {{es}} cluster runs. -:::: - -2. Declare the ConfigMap as a volume and mount it in the {{es}} containers. - -In this example, modify your {{es}} manifest to mount the contents of the `synonyms` ConfigMap into `/usr/share/elasticsearch/config/dictionaries` on the {{es}} nodes. - -```yaml -spec: - nodeSets: - - name: default - count: 3 - podTemplate: - spec: - containers: - - name: elasticsearch <1> - volumeMounts: - - name: synonyms - mountPath: /usr/share/elasticsearch/config/dictionaries <2> - volumes: - - name: synonyms - configMap: <3> - name: synonyms <4> -``` - -1. {{es}} runs by convention in a container called `elasticsearch`. Do not change that value. -2. Use always a path under `/usr/share/elasticsearch/config`. -3. Use `secret` instead of `configMap` if you used a secret to store the data. -4. The ConfigMap name must be the same as the ConfigMap created in the previous step. - -After the changes are applied, {{es}} nodes should be able to access `dictionaries/synonyms-elasticsearch.txt` and use it in any [configuration setting](./node-configuration.md). diff --git a/deploy-manage/deploy/cloud-on-k8s/customize-pods.md b/deploy-manage/deploy/cloud-on-k8s/customize-pods.md index c1420ca6ea..8106a56b04 100644 --- a/deploy-manage/deploy/cloud-on-k8s/customize-pods.md +++ b/deploy-manage/deploy/cloud-on-k8s/customize-pods.md @@ -103,7 +103,7 @@ spec: ## More examples [k8s_more_examples_2] -* [Init containers for plugin downloads](init-containers-for-plugin-downloads.md) +* [Init containers for plugin downloads](/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md) * [*Manage compute resources*](manage-compute-resources.md) For further information: diff --git a/deploy-manage/deploy/cloud-on-k8s/elasticsearch-configuration.md b/deploy-manage/deploy/cloud-on-k8s/elasticsearch-configuration.md index 2471b52bcd..8a550af49d 100644 --- a/deploy-manage/deploy/cloud-on-k8s/elasticsearch-configuration.md +++ b/deploy-manage/deploy/cloud-on-k8s/elasticsearch-configuration.md @@ -27,8 +27,8 @@ Before deploying and running ECK in production, review the basic and advanced se * [Virtual memory](virtual-memory.md): Methods to accomplish {{es}} virtual memory system configuration requirement. * [Secure settings](/deploy-manage/security/k8s-secure-settings.md): Configure the {{es}} keystore through Kubernetes secrets. * [Settings managed by ECK](settings-managed-by-eck.md): List of {{es}} settings that you shouldn't update. -* [Custom configuration files and plugins](custom-configuration-files-plugins.md): Add extra configuration files or install plugins to your {{es}} nodes. -* [Init containers for plugin downloads](init-containers-for-plugin-downloads.md): Use Kubernetes init containers to install plugins before starting {{es}}. +* [Add plugins and configuration files](/deploy-manage/plugins-and-bundles/cloud-on-k8s/manage-plugins.md): Add extra configuration files or install plugins to your {{es}} nodes. For the cross-deployment overview, see [Plugins and bundles](/deploy-manage/plugins-and-bundles.md). +* [Init containers for plugin downloads](/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md): Use Kubernetes init containers to install plugins before starting {{es}}. ## Scheduling and lifecycle management diff --git a/deploy-manage/deploy/cloud-on-k8s/init-containers-for-plugin-downloads.md b/deploy-manage/deploy/cloud-on-k8s/init-containers-for-plugin-downloads.md deleted file mode 100644 index 23993e3939..0000000000 --- a/deploy-manage/deploy/cloud-on-k8s/init-containers-for-plugin-downloads.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -mapped_pages: - - https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-init-containers-plugin-downloads.html -applies_to: - deployment: - eck: all -products: - - id: cloud-kubernetes ---- - -# Init containers for plugin downloads [k8s-init-containers-plugin-downloads] - -You can install custom plugins before the {{es}} container starts with an `initContainer`. For example: - -```yaml -spec: - nodeSets: - - name: default - count: 3 - podTemplate: - spec: - initContainers: - - name: install-plugins - command: - - sh - - -c - - | - bin/elasticsearch-plugin remove --purge analysis-icu - bin/elasticsearch-plugin install --batch analysis-icu -``` - -You can also override the {{es}} container image to use your own image with the plugins already installed, as described in [custom images](create-custom-images.md). For more information on both these options, you can check the [Create automated snapshots](../../tools/snapshot-and-restore/cloud-on-k8s.md) section and the Kubernetes documentation on [init containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/). - -The init container inherits: - -* The image of the main container image, if one is not explicitly set. -* The volume mounts from the main container unless a volume mount with the same name and mount path is present in the init container definition -* The Pod name and IP address environment variables. - diff --git a/deploy-manage/deploy/cloud-on-k8s/k8s-kibana-advanced-configuration.md b/deploy-manage/deploy/cloud-on-k8s/k8s-kibana-advanced-configuration.md index 45e28b2e4b..6e5742eeac 100644 --- a/deploy-manage/deploy/cloud-on-k8s/k8s-kibana-advanced-configuration.md +++ b/deploy-manage/deploy/cloud-on-k8s/k8s-kibana-advanced-configuration.md @@ -17,7 +17,7 @@ If you already looked at the [{{es}} on ECK](elasticsearch-configuration.md) doc * [Customize the product configuration](#k8s-kibana-configuration) * [Manage HTTP settings](/deploy-manage/security/k8s-https-settings.md#k8s-kibana-http-configuration) * [Use secure settings](../../security/k8s-secure-settings.md) -* [Install {{kib}} plugins](k8s-kibana-plugins.md) +* [Install {{kib}} plugins](/deploy-manage/plugins-and-bundles/cloud-on-k8s/k8s-kibana-plugins.md) ## Pod configuration [k8s-kibana-pod-configuration] diff --git a/deploy-manage/deploy/cloud-on-k8s/k8s-service-mesh-istio.md b/deploy-manage/deploy/cloud-on-k8s/k8s-service-mesh-istio.md index 11bf6b42b5..431b709e8f 100644 --- a/deploy-manage/deploy/cloud-on-k8s/k8s-service-mesh-istio.md +++ b/deploy-manage/deploy/cloud-on-k8s/k8s-service-mesh-istio.md @@ -130,7 +130,7 @@ Refer to the [Istio documentation](https://istio.io/docs/tasks/security/authenti #### Using init containers with Istio CNI [k8s-service-mesh-istio-cni] -There are [known issues with init containers](https://istio.io/docs/setup/additional-setup/cni/#compatibility-with-application-init-containers) when Istio CNI is configured. If you use init containers to [install {{es}} plugins](init-containers-for-plugin-downloads.md) or perform other initialization tasks that require network access, they may fail due to outbound traffic being blocked by the CNI plugin. To work around this issue, explicitly allow the external ports used by the init containers. +There are [known issues with init containers](https://istio.io/docs/setup/additional-setup/cni/#compatibility-with-application-init-containers) when Istio CNI is configured. If you use init containers to [install {{es}} plugins](/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md) or perform other initialization tasks that require network access, they may fail due to outbound traffic being blocked by the CNI plugin. To work around this issue, explicitly allow the external ports used by the init containers. To install plugins using an init container, use a manifest similar to the following: diff --git a/deploy-manage/deploy/cloud-on-k8s/kibana-configuration.md b/deploy-manage/deploy/cloud-on-k8s/kibana-configuration.md index cb837f7eff..41ce84cc64 100644 --- a/deploy-manage/deploy/cloud-on-k8s/kibana-configuration.md +++ b/deploy-manage/deploy/cloud-on-k8s/kibana-configuration.md @@ -33,7 +33,7 @@ For production deployments, consider configuring {{kib}} encryption keys accordi * [Load balancer settings and TLS SANs](/deploy-manage/security/k8s-https-settings.md#k8s-kibana-http-publish) * [Provide your own certificate](/deploy-manage/security/k8s-https-settings.md#k8s-kibana-http-custom-tls) * [Disable TLS](/deploy-manage/security/k8s-https-settings.md#k8s-disable-tls) - * [Install {{kib}} plugins](k8s-kibana-plugins.md) + * [Install {{kib}} plugins](/deploy-manage/plugins-and-bundles/cloud-on-k8s/k8s-kibana-plugins.md) * [Autoscaling stateless applications](../../autoscaling/autoscaling-in-eck.md#k8s-stateless-autoscaling): Use [Horizontal Pod Autoscaler](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/) for {{kib}} or other stateless applications. diff --git a/deploy-manage/deploy/cloud-on-k8s/logstash-plugins.md b/deploy-manage/deploy/cloud-on-k8s/logstash-plugins.md index 166be5242b..6869c16374 100644 --- a/deploy-manage/deploy/cloud-on-k8s/logstash-plugins.md +++ b/deploy-manage/deploy/cloud-on-k8s/logstash-plugins.md @@ -152,7 +152,7 @@ You can add files using: * **[PersistentVolume populated by an initContainer](#k8s-logstash-ic).** Add a volumeClaimTemplate and a volumeMount to your {{ls}} resource and upload data to that volume, either using an `initContainer`, or direct upload if your Kubernetes provider supports it. You can use the default `logstash-data` volumeClaimTemplate , or a custom one depending on your storage needs. * **[Custom Docker image](#k8s-logstash-custom-images).** Use a custom docker image that includes the static content that your Logstash pods will need. -Check out [Custom configuration files and plugins](custom-configuration-files-plugins.md) for more details on which option might be most suitable for you. +Check out [Add plugins and configuration files in {{eck}}](/deploy-manage/plugins-and-bundles/cloud-on-k8s/manage-plugins.md) for more details on which option might be most suitable for you. #### Add files using PersistentVolume populated by an initContainer [k8s-logstash-ic] diff --git a/deploy-manage/deploy/elastic-cloud/configure.md b/deploy-manage/deploy/elastic-cloud/configure.md index 2a74984d69..80b9db8b8e 100644 --- a/deploy-manage/deploy/elastic-cloud/configure.md +++ b/deploy-manage/deploy/elastic-cloud/configure.md @@ -25,7 +25,7 @@ You might want to change the configuration of your deployment to: * Enable [autoscaling](../../../deploy-manage/autoscaling.md) so that the available resources for deployment components, such as data tiers and machine learning nodes, adjust automatically as the demands on them change over time. * Enable high availability, also known as fault tolerance, by adjusting the number of data center availability zones that parts of your deployment run on. * Upgrade to new versions of {{es}}. You can upgrade from one major version to another, such as from 6.8.23 to 7.17.27, or from one minor version to another, such as 6.1 to 6.2. You can’t downgrade versions. -* Change what plugins are available on your {{es}} cluster. +* Change what plugins are available on your {{es}} cluster. Refer to [Plugins and bundles](/deploy-manage/plugins-and-bundles.md). With the exception of major version upgrades for {{stack}} products, {{ech}} can perform configuration changes without having to interrupt your deployment. You can continue searching and indexing. The changes can also be done in bulk. For example: in one action, you can add more memory, upgrade, adjust the number of {{es}} plugins and adjust the number of availability zones. diff --git a/deploy-manage/deploy/elastic-cloud/create-an-elastic-cloud-hosted-deployment.md b/deploy-manage/deploy/elastic-cloud/create-an-elastic-cloud-hosted-deployment.md index 14899b9f89..0affe8258f 100644 --- a/deploy-manage/deploy/elastic-cloud/create-an-elastic-cloud-hosted-deployment.md +++ b/deploy-manage/deploy/elastic-cloud/create-an-elastic-cloud-hosted-deployment.md @@ -70,7 +70,7 @@ To make sure you’re all set for production, consider the following actions: * [Plan for your expected workloads](/deploy-manage/production-guidance.md) and consider how many availability zones you’ll need. * [Create a deployment](/deploy-manage/deploy/elastic-cloud/create-an-elastic-cloud-hosted-deployment.md) on the region you need and with a hardware profile that matches your use case. * [Change your configuration](/deploy-manage/deploy/elastic-cloud/ec-customize-deployment-components.md) by turning on autoscaling, adding high availability, or adjusting components of the {{stack}}. -* [Add plugins and extensions](/deploy-manage/deploy/elastic-cloud/add-plugins-extensions.md) to use Elastic supported extensions or add your own custom dictionaries and scripts. +* [Add plugins and extensions](/deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-extensions.md) to use Elastic supported plugins or add your own custom dictionaries and scripts. * [Edit settings and defaults](/deploy-manage/deploy/elastic-cloud/edit-stack-settings.md) to fine tune the performance of specific features. * [Manage your deployment](/deploy-manage/deploy/elastic-cloud/manage-deployments.md) as a whole to restart, upgrade, stop routing, or delete. * [Set up monitoring](/deploy-manage/monitor/stack-monitoring/ece-ech-stack-monitoring.md) to learn how to configure your deployments for observability, which includes metric and log collection, troubleshooting views, and cluster alerts to automate performance monitoring. diff --git a/deploy-manage/deploy/elastic-cloud/ec-customize-deployment-components.md b/deploy-manage/deploy/elastic-cloud/ec-customize-deployment-components.md index bdccccc46e..c954984eda 100644 --- a/deploy-manage/deploy/elastic-cloud/ec-customize-deployment-components.md +++ b/deploy-manage/deploy/elastic-cloud/ec-customize-deployment-components.md @@ -97,7 +97,7 @@ For more information, refer to [Edit your user settings](edit-stack-settings.md) Lists the official plugins available for your selected {{es}} version, as well as any custom plugins and user bundles with dictionaries or scripts. -When selecting a plugin from this list you get a version that has been tested with the chosen {{es}} version. The main difference between selecting a plugin from this list and uploading the same plugin as a custom extension is in who decides the version used. To learn more, check [*Add plugins and extensions*](add-plugins-extensions.md). +When selecting a plugin from this list you get a version that has been tested with the chosen {{es}} version. The main difference between selecting a plugin from this list and uploading the same plugin as a custom extension is in who decides the version used. To learn more, check [*Add plugins and extensions*](/deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-extensions.md). The reason we do not list the version chosen on this page is because we reserve the option to change it when necessary. That said, we will not force a cluster restart for a simple plugin upgrade unless there are severe issues with the current version. In most cases, plugin upgrades are applied lazily, in other words when something else forces a restart like you changing the plan or {{es}} runs out of memory. diff --git a/deploy-manage/deploy/elastic-cloud/fedramp.md b/deploy-manage/deploy/elastic-cloud/fedramp.md index b296e4d390..b70562e5a2 100644 --- a/deploy-manage/deploy/elastic-cloud/fedramp.md +++ b/deploy-manage/deploy/elastic-cloud/fedramp.md @@ -44,7 +44,7 @@ This table provides a comparison of features and capabilities included in {{ech} | [Synthetic monitoring](/solutions/observability/synthetics/index.md) | Yes | No | No | | [Elastic Inference Service](/explore-analyze/elastic-inference/eis.md) | Yes | No | No | | [Managed OTLP Endpoint (mOTLP)](opentelemetry://reference/motlp.md) | Yes | No | No | -| [Custom bundles and plugins](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) | Yes | Yes | No | +| [Custom bundles and plugins](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) | Yes | Yes | No | | [Elastic AI Assistant for Observability and Search](/solutions/observability/ai/observability-ai-assistant.md), [Elastic AI Assistant for Security](/solutions/security/ai/ai-assistant.md) | Yes | Elastic Managed LLM not available | Elastic Managed LLM not available | | [Attack Discovery](/solutions/security/ai/attack-discovery/index.md) | Yes | Yes | TBD | | [Universal profiling](/solutions/observability/infra-and-hosts/universal-profiling.md) | Yes | No | No | diff --git a/deploy-manage/deploy/self-managed/install-elasticsearch-docker-configure.md b/deploy-manage/deploy/self-managed/install-elasticsearch-docker-configure.md index 05e2452ecd..3d865cc6b2 100644 --- a/deploy-manage/deploy/self-managed/install-elasticsearch-docker-configure.md +++ b/deploy-manage/deploy/self-managed/install-elasticsearch-docker-configure.md @@ -164,7 +164,7 @@ Some plugins require additional security permissions. You must explicitly accept * Attaching a `tty` when you run the Docker image and allowing the permissions when prompted. * Inspecting the security permissions and accepting them (if appropriate) by adding the `--batch` flag to the plugin install command. -See [Plugin management](elasticsearch://reference/elasticsearch-plugins/_other_command_line_parameters.md) for more information. +See [Other command line parameters](/deploy-manage/plugins-and-bundles/self-managed/other-command-line-parameters.md) for more information. ## Troubleshoot Docker errors for {{es}} [troubleshoot-docker-errors] diff --git a/deploy-manage/deploy/self-managed/plugins.md b/deploy-manage/deploy/self-managed/plugins.md index 6837264301..726ec47f5d 100644 --- a/deploy-manage/deploy/self-managed/plugins.md +++ b/deploy-manage/deploy/self-managed/plugins.md @@ -10,8 +10,8 @@ products: # Add plugins [modules-plugins] -Plugins are a way to enhance the basic {{es}} functionality in a custom manner. They range from adding custom mapping types, custom analyzers (in a more built in fashion), custom script engines, custom discovery and more. +Plugins enhance core {{es}} functionality with custom analyzers, discovery providers, scripting engines, and more. -For information about selecting and installing plugins, see [{{es}} plugins](elasticsearch://reference/elasticsearch-plugins/index.md). +To install and manage plugins on a self-managed cluster, refer to [Manage plugins on self-managed deployments](/deploy-manage/plugins-and-bundles/self-managed/manage-plugins.md). For other deployment types, refer to [Plugins and bundles](/deploy-manage/plugins-and-bundles.md). -For information about developing your own plugin, see [Create {{es}} plugins](elasticsearch://extend/index.md). \ No newline at end of file +For the catalog of official plugins, refer to [{{es}} plugins](elasticsearch://reference/elasticsearch-plugins/index.md). To develop your own plugin, refer to [Create {{es}} plugins](elasticsearch://extend/index.md). diff --git a/deploy-manage/index.md b/deploy-manage/index.md index 1f151d1511..d83e54850b 100644 --- a/deploy-manage/index.md +++ b/deploy-manage/index.md @@ -45,6 +45,8 @@ Learn how to design and deploy a production-ready Elastic environment. * [](/deploy-manage/distributed-architecture.md): Learn about the architecture of {{es}} and {{kib}}, and how Elastic stores and retrieves data and executes tasks in clusters with multiple nodes. * [](/deploy-manage/production-guidance.md): Review tips and guidance that you can use to design a production environment that matches your workloads, policies, and deployment needs. * [](/deploy-manage/reference-architectures.md): Explore blueprints for deploying clusters tailored to different use cases. +* [](/deploy-manage/stack-settings.md): Customize {{es}}, {{kib}}, and other {{stack}} settings for your deployment type. +* [](/deploy-manage/plugins-and-bundles.md): Add {{es}} plugins and configuration bundles across {{ech}}, {{ece}}, {{eck}}, and self-managed deployments. * [](/deploy-manage/tools.md): Learn about the tools available to safeguard data, ensure continuous availability, and maintain resilience in your {{es}} environment. * [](/deploy-manage/autoscaling.md): Learn how to configure your [orchestrated](/deploy-manage/deploy.md#about-orchestration) deployment to scale based on policies and cluster signals. Applies to {{ech}}, {{ece}}, and {{eck}} deployments. * [](/deploy-manage/cloud-connect.md): Learn how to use {{ecloud}} services in your self-hosted environment. diff --git a/deploy-manage/plugins-and-bundles.md b/deploy-manage/plugins-and-bundles.md new file mode 100644 index 0000000000..f66f14664a --- /dev/null +++ b/deploy-manage/plugins-and-bundles.md @@ -0,0 +1,111 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugin-management.html +description: Extend Elasticsearch with plugins and bundles, and find the install path that matches your deployment type. +applies_to: + deployment: + ess: ga + ece: ga + eck: ga + self: ga + serverless: unavailable +navigation_title: Plugins and bundles +products: + - id: elastic-stack + - id: elasticsearch + - id: kibana + - id: cloud-hosted + - id: cloud-enterprise + - id: cloud-kubernetes +--- + +# Plugins and bundles in {{es}} + +Use plugins and bundles to extend {{es}}'s core functionality with additional analyzers, discovery providers, ingest processors, field types, scripting languages, dictionaries, and related configuration files. + +**[Plugins](elasticsearch://reference/elasticsearch-plugins/index.md)** are packages installed in {{es}}. 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 {{es}} 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 {{ech}} and {{ece}}, bundles are managed as *extensions* together with custom plugins. At node startup, {{ecloud}} 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 {{eck}}. + +After you [choose](elasticsearch://reference/elasticsearch-plugins/index.md) or [create](elasticsearch://extend/index.md) a plugin, you can install it by following the steps described on this page that match your deployment type. + +::::{admonition} {{serverless-full}} +{{serverless-full}} projects do not support installing plugins or uploading custom plugins and bundles. {{serverless-short}} includes [core analysis plugins](elasticsearch://reference/elasticsearch-plugins/analysis-plugins.md#_core_analysis_plugins) by default. To manage synonyms, use the [synonyms API]({{es-serverless-apis}}group/endpoint-synonyms) or refer to [Search with synonyms](/solutions/search/full-text/search-with-synonyms.md). For differences between {{ech}} and {{serverless-short}} for plugins, bundles, and custom dictionaries, see [Compare {{ech}} and Serverless](/deploy-manage/deploy/elastic-cloud/differences-from-other-elasticsearch-offerings.md#elasticsearch-differences-custom-plugins-and-bundles). +:::: + + +## 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 {{es}} [deployment type](/deploy-manage/deploy.md): + +* Hosted Cloud deployments such as [{{ech}}](/deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-extensions.md) and [{{ece}}](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins.md) expose plugin and extension management in the Cloud console and API. +* [Self-managed deployments](/deploy-manage/plugins-and-bundles/self-managed/manage-plugins.md) 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 [{{eck}}](/deploy-manage/plugins-and-bundles/cloud-on-k8s/manage-plugins.md) 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 {{ech}} [managing-plugins-for-ech] + +```{applies_to} +deployment: + ess: ga +``` + +{{ech}} simplifies plugin management by offering compatible plugins for your {{es}} 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 {{ech}}](/deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-extensions.md) +* [Upload custom plugins and bundles](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) +* [Manage plugins and extensions through the API](/deploy-manage/plugins-and-bundles/elastic-cloud/manage-plugins-extensions-through-api.md) + +{{kib}} plugins are not supported on {{ech}}. Refer to [Restrictions and known problems](/deploy-manage/deploy/elastic-cloud/restrictions-known-problems.md#ec-restrictions-plugins). + +### Managing plugins for {{ece}} [managing-plugins-for-ece] + +```{applies_to} +deployment: + ece: ga +``` + +{{ece}} provides built-in plugins that work with your version of {{es}} and are upgraded along with your deployment, unless there are breaking changes. + +To add plugins to an {{ece}} deployment, refer to: + +* [Add plugins and bundles in {{ece}}](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins.md) +* [Add custom bundles and plugins](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md) + +Unlike {{ech}}, in certain cases, {{ece}} allows additional {{kib}} plugins by building them into a custom {{kib}} Docker image. Refer to [](/deploy-manage/plugins-and-bundles/cloud-enterprise/ece-include-additional-kibana-plugin.md), for more information. + +### Managing plugins for self-managed deployments [managing-plugins-for-self-managed] + +```{applies_to} +deployment: + self: ga +``` + +How you manage plugins depends on how you run {{es}}: + +* If you run {{es}} using the [official {{es}} Docker image](https://www.docker.elastic.co/), you manage plugins with a declarative [configuration file](/deploy-manage/plugins-and-bundles/self-managed/manage-plugins-using-configuration-file.md). Each time the container starts, {{es}} installs, removes, or upgrades plugins so the running set matches that file. +* For package and archive installs, use the [`elasticsearch-plugin` command-line tool](/deploy-manage/plugins-and-bundles/self-managed/install-plugins.md) to install, list, and remove plugins on each node. + +### Managing plugins for {{eck}} [managing-plugins-for-eck] + +```{applies_to} +deployment: + eck: ga +``` + +On {{eck}}, {{es}} runs in Kubernetes pods. Plugins must be present on disk before the main {{es}} container starts. Use one of these approaches: + +* [Using a custom container image](/deploy-manage/deploy/cloud-on-k8s/create-custom-images.md). 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 {{es}} version upgrade. +* [Using init containers](/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md). You use an init container to run `elasticsearch-plugin install` before the main {{es}} 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](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). ConfigMaps and Secrets do not install plugins; use a custom container image or init container for that. +:::: + +## Related resources + +* [{{es}} plugins reference](elasticsearch://reference/elasticsearch-plugins/index.md): Official plugins and settings. +* [Stack settings](/deploy-manage/stack-settings.md): Configure `elasticsearch.yml`, `kibana.yml`, and related settings by deployment type. +* [Secure settings](/deploy-manage/security/secure-settings.md): Store sensitive values in the {{es}} or {{kib}} keystore. diff --git a/deploy-manage/plugins-and-bundles/_snippets/provided-plugins-intro.md b/deploy-manage/plugins-and-bundles/_snippets/provided-plugins-intro.md new file mode 100644 index 0000000000..088e58d911 --- /dev/null +++ b/deploy-manage/plugins-and-bundles/_snippets/provided-plugins-intro.md @@ -0,0 +1 @@ +You can use a variety of [official {{es}} plugins](elasticsearch://reference/elasticsearch-plugins/index.md) that are compatible with your version of {{es}}. When you upgrade to a new {{es}} version, these plugins are upgraded with the rest of your deployment, unless there are breaking changes. diff --git a/deploy-manage/plugins-and-bundles/_snippets/what-are-bundles.md b/deploy-manage/plugins-and-bundles/_snippets/what-are-bundles.md new file mode 100644 index 0000000000..b8f203758c --- /dev/null +++ b/deploy-manage/plugins-and-bundles/_snippets/what-are-bundles.md @@ -0,0 +1,7 @@ +Bundles are ZIP files of configuration and data files. They are not installed as plugins. Instead, when a node starts, {{ecloud}} makes the bundle contents available in the node's configuration directory. + +Use a bundle when every node needs the same files, such as: + +* Synonym, stop-word, or compound-word dictionaries +* Scripts referenced in queries +* Cluster configuration files, such as SAML metadata diff --git a/deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md b/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md similarity index 80% rename from deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md rename to deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md index 29bf97da2f..ffcf288a9e 100644 --- a/deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md +++ b/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md @@ -1,5 +1,6 @@ --- -navigation_title: Add custom bundles and plugins +navigation_title: Custom bundles and plugins +description: Add custom Elasticsearch plugins and configuration files to ECE deployments by referencing ZIP bundles from a URL. mapped_pages: - https://www.elastic.co/guide/en/cloud-enterprise/current/ece-add-custom-bundle-plugin.html applies_to: @@ -21,29 +22,29 @@ ECE allows you to add custom plugins or external files as bundled ZIP files to y Follow these steps to configure custom bundles and plugins to your {{es}} clusters, making them available to all {{es}} instances: -* Update your {{es}} cluster using the [advanced configuration editor](../../../deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md): +* Update your {{es}} cluster using the [advanced configuration editor](/deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md): * For bundles, modify the `resources.elasticsearch.plan.elasticsearch.user_bundles` JSON attribute. * For plugins, modify the `resources.elasticsearch.plan.elasticsearch.user_plugins` JSON attribute. Here are some examples of custom bundles you can add: - [Custom plugin](#ece-add-custom-plugin) -- [LDAP bundles](#ece-add-custom-bundle-example-LDAP) -- [SAML bundles](#ece-add-custom-bundle-example-SAML) +- [LDAP bundle](#ece-add-custom-bundle-example-LDAP) +- [SAML bundle](#ece-add-custom-bundle-example-SAML) - [JVM truststore cacerts](#ece-add-custom-bundle-example-cacerts) - [GeoIP database bundle](#ece-add-custom-bundle-example-geoip) -- [Synonym bundles](#ece-add-custom-bundle-example-synonyms) +- [Synonym bundle](#ece-add-custom-bundle-example-synonyms) -## Add custom plugins to your deployment [ece-add-custom-plugin] +## Add a custom plugin [ece-add-custom-plugin] Custom plugins can include the official {{es}} plugins not provided with {{ece}}, any of the community-sourced plugins, or plugins that you write yourself. -1. [Log into the Cloud UI](../../../deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md). +1. [Log into the Cloud UI](/deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md). 2. From the **Deployments** page, select your deployment. Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters. -3. In the left side navigation select **Edit** from your deployment menu, then go to the bottom of the page and select [**Advanced Edit**](../../../deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md). +3. In the left side navigation select **Edit** from your deployment menu, then go to the bottom of the page and select [**Advanced Edit**](/deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md). 4. Within the **Deployment configuration** JSON find the section: `resources` > `elasticsearch` > `plan` > `elasticsearch` @@ -85,12 +86,12 @@ Custom plugins can include the official {{es}} plugins not provided with {{ece}} 6. To verify that all nodes have the plugins installed, use one of these commands: `GET /_nodes/plugins?filter_path=nodes.*.plugins` or `GET _cat/plugins?v` -## Example: Custom LDAP bundle [ece-add-custom-bundle-example-LDAP] +## Add a custom LDAP bundle [ece-add-custom-bundle-example-LDAP] -This example adds a custom LDAP bundle for deployment level role-based access control (RBAC). To set platform level RBAC, check [](../../../deploy-manage/users-roles/cloud-enterprise-orchestrator/manage-users-roles.md). +This example adds a custom LDAP bundle for deployment level role-based access control (RBAC). To set platform level RBAC, check [](/deploy-manage/users-roles/cloud-enterprise-orchestrator/manage-users-roles.md). -1. Prepare a custom bundle as a ZIP file that contains your keystore file with the private key and certificate inside of a `truststore` folder [in the same way that you would on {{ecloud}}](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md). This bundle allows all {{es}} containers to access the same keystore file through your `ssl.truststore` settings. -2. In the [advanced configuration editor](../../../deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md), update your new {{es}} cluster with the custom bundle you have just created. Modify the `user_bundles` JSON attribute of **each** {{es}} instance type as shown in the following example: +1. Prepare a custom bundle as a ZIP file that contains your keystore file with the private key and certificate inside of a `truststore` folder [in the same way that you would on {{ecloud}}](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md). This bundle allows all {{es}} containers to access the same keystore file through your `ssl.truststore` settings. +2. In the [advanced configuration editor](/deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md), update your new {{es}} cluster with the custom bundle you have just created. Modify the `user_bundles` JSON attribute of **each** {{es}} instance type as shown in the following example: ```sh { @@ -126,9 +127,9 @@ This example adds a custom LDAP bundle for deployment level role-based access co In this example, the unzipped keystore file gets placed under `/app/config/truststore/keystore.ks`. -## Example: Custom SAML bundle [ece-add-custom-bundle-example-SAML] +## Add a custom SAML bundle [ece-add-custom-bundle-example-SAML] -This example adds a custom SAML bundle for deployment level role-based access control (RBAC). To set platform level RBAC, check [](../../../deploy-manage/users-roles/cloud-enterprise-orchestrator/manage-users-roles.md). +This example adds a custom SAML bundle for deployment level role-based access control (RBAC). To set platform level RBAC, check [](/deploy-manage/users-roles/cloud-enterprise-orchestrator/manage-users-roles.md). In this example, we assume the Identity Provider does not publish its SAML metadata at an HTTP URL, so we provide it through a custom bundle. @@ -136,7 +137,7 @@ In this example, we assume the Identity Provider does not publish its SAML metad This bundle will allow all {{es}} containers to access the metadata file. -2. In the [advanced configuration editor](../../../deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md), update your {{es}} cluster configuration with the bundle you prepared in the previous step. Modify the `user_bundles` JSON attribute of **each** {{es}} instance type as shown in the following example: +2. In the [advanced configuration editor](/deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md), update your {{es}} cluster configuration with the bundle you prepared in the previous step. Modify the `user_bundles` JSON attribute of **each** {{es}} instance type as shown in the following example: ```text { @@ -172,7 +173,7 @@ In this example, we assume the Identity Provider does not publish its SAML metad └── metadata.xml ``` -3. Adjust your `saml` realm configuration accordingly through [](./edit-stack-settings.md): +3. Adjust your `saml` realm configuration accordingly through [](/deploy-manage/deploy/cloud-enterprise/edit-stack-settings.md): ```sh idp.metadata.path: /app/config/saml/metadata.xml <1> @@ -180,9 +181,9 @@ In this example, we assume the Identity Provider does not publish its SAML metad 1. The path to the SAML metadata file that was uploaded - Refer to [](../../users-roles/cluster-or-deployment-auth/saml.md) for more details on SAML authentication. + Refer to [](/deploy-manage/users-roles/cluster-or-deployment-auth/saml.md) for more details on SAML authentication. -## Example: Custom JVM trust store bundle [ece-add-custom-bundle-example-cacerts] +## Add a custom JVM trust store bundle [ece-add-custom-bundle-example-cacerts] If you are using SSL certificates signed by non-public certificate authorities, {{es}} is not able to communicate with the services using those certificates unless you import a custom JVM trust store containing the certificates of your signing authority into your {{ece}} installation. You’ll need the trust store to access snapshot repositories like MinIO, for your {{ece}} proxy, or to reindex from remote. @@ -239,7 +240,7 @@ To import a JVM trust store: A bundle may contain other contents beyond the trust store if you prefer, but we recommend creating separate bundles for different purposes. :::: -3. In the [advanced configuration editor](../../../deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md), update your {{es}} cluster configuration with the bundle you prepared in the previous step. Modify the `user_bundles` JSON attribute of **each** {{es}} instance type as shown in the following example: +3. In the [advanced configuration editor](/deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md), update your {{es}} cluster configuration with the bundle you prepared in the previous step. Modify the `user_bundles` JSON attribute of **each** {{es}} instance type as shown in the following example: ```sh { @@ -264,7 +265,7 @@ To import a JVM trust store: 1. The URL for the bundle ZIP file must be always available. Make sure you host the plugin artefacts internally in a highly available environment. 2. Wildcards are allowed here, since the certificates are independent from the {{es}} version. -4. (Optional) If you prefer to use a different file name and/or password for the trust store, you also need to add an additional configuration section to the cluster metadata before adding the bundle. This configuration should be added to the `Elasticsearch cluster data` section of the [advanced configuration](./advanced-cluster-configuration.md) page: +4. (Optional) If you prefer to use a different file name and/or password for the trust store, you also need to add an additional configuration section to the cluster metadata before adding the bundle. This configuration should be added to the `Elasticsearch cluster data` section of the [advanced configuration](/deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md) page: ```sh "jvm_trust_store": { @@ -280,7 +281,7 @@ To import a JVM trust store: * You do not need to do this step if you are using default filename and password (`cacerts` and `changeit` respectively) in your bundle. :::: -## Example: Custom GeoIP database bundle [ece-add-custom-bundle-example-geoip] +## Add a custom GeoIP database bundle [ece-add-custom-bundle-example-geoip] 1. Prepare a ZIP file with a custom bundle that contains a: [GeoLite2 database](https://dev.maxmind.com/geoip/geoip2/geolite2). The folder has to be named `ingest-geoip`, and the file name can be anything that is appended `-(City|Country|ASN)` with the `mmdb` file extension, and it must have a different name than the original name `GeoLite2-City.mmdb`. @@ -294,7 +295,7 @@ To import a JVM trust store: ``` 2. Copy the ZIP file to a webserver that is reachable from any allocator in your environment. -3. In the [advanced configuration editor](../../../deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md), update your {{es}} cluster configuration with the bundle you prepared in the previous step. Modify the `user_bundles` JSON attribute of **each** {{es}} instance type as shown in the following example. +3. In the [advanced configuration editor](/deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md), update your {{es}} cluster configuration with the bundle you prepared in the previous step. Modify the `user_bundles` JSON attribute of **each** {{es}} instance type as shown in the following example. ```sh { @@ -330,7 +331,7 @@ To import a JVM trust store: ... ``` -## Example: Custom synonyms bundle [ece-add-custom-bundle-example-synonyms] +## Add a custom synonyms bundle [ece-add-custom-bundle-example-synonyms] 1. Prepare a ZIP file with a custom bundle that contains a dictionary of synonyms in a text file. @@ -344,7 +345,7 @@ To import a JVM trust store: ``` 2. Copy the ZIP file to a webserver that is reachable from any allocator in your environment. -3. In the [advanced configuration editor](../../../deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md), update your {{es}} cluster configuration with the bundle you prepared in the previous step. Modify the `user_bundles` JSON attribute of **each** {{es}} instance type as shown in the following example. +3. In the [advanced configuration editor](/deploy-manage/deploy/cloud-enterprise/advanced-cluster-configuration.md), update your {{es}} cluster configuration with the bundle you prepared in the previous step. Modify the `user_bundles` JSON attribute of **each** {{es}} instance type as shown in the following example. ```sh { diff --git a/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins-provided-with-ece.md b/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins-provided-with-ece.md new file mode 100644 index 0000000000..5185036c85 --- /dev/null +++ b/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins-provided-with-ece.md @@ -0,0 +1,43 @@ +--- +navigation_title: Provided with ECE +description: Enable built-in Elasticsearch plugins on Elastic Cloud Enterprise deployments without managing upgrades yourself. +mapped_pages: + - https://www.elastic.co/guide/en/cloud-enterprise/current/ece-add-plugins.html +applies_to: + deployment: + ece: +products: + - id: cloud-enterprise + - id: elasticsearch +--- + +# Add plugins provided with {{ece}} [ece-adding-plugins] + +:::{include} /deploy-manage/plugins-and-bundles/_snippets/provided-plugins-intro.md +::: + +Different versions of {{es}} support different plugins. If a plugin is listed for your version, you can enable it on the deployment. + +## Add plugins when creating a new {{ece}} deployment + +1. [Log into the Cloud UI](/deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md) and select **Create deployment**. +2. Make your initial deployment selections, then select **Advanced settings**. +3. Beneath the {{es}} master node, expand the **Manage plugins and settings** caret. +4. Select the plugins you want. +5. Select **Create deployment**. + +The deployment spins up with the plugins installed. + +## Add plugins to an existing {{ece}} deployment + +1. [Log into the Cloud UI](/deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md). +2. On the **Deployments** page, select your deployment. + + Narrow the list by name, ID, or choose from several other filters. To further define the list, use a combination of filters. + +3. From your deployment menu, go to the **Edit** page. +4. Beneath the {{es}} master node, expand the **Manage plugins and settings** caret. +5. Select the plugins that you want. +6. Select **Save changes**. + +There is no downtime when adding plugins to highly available deployments. The deployment is updated with new nodes that have the plugins installed. diff --git a/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins.md b/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins.md new file mode 100644 index 0000000000..f2320ef493 --- /dev/null +++ b/deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins.md @@ -0,0 +1,42 @@ +--- +navigation_title: Extend {{ece}} +description: Extend Elasticsearch on Elastic Cloud Enterprise with built-in plugins, custom bundles, or additional Kibana plugins. +applies_to: + deployment: + ece: +products: + - id: cloud-enterprise + - id: elasticsearch +--- + +# Add plugins and bundles in {{ece}} + +On {{ece}}, you extend {{es}} with plugins that the platform provides, custom plugin or configuration bundles, and in certain cases, additional {{kib}} plugins. + + +For options that apply to other deployment types, refer to [](/deploy-manage/plugins-and-bundles.md). + +## Add {{es}} plugins + +Plugins are software packages that you install in {{es}} to extend its core functionality, for example with additional analyzers, ingest processors, or field types. Availability depends on your {{es}} version. Common purposes include: + +* National language support, phonetic analysis, and extended unicode support +* Ingesting attachments in common formats and ingesting information about the geographic location of IP addresses +* Adding new field datatypes to {{es}} + +You can add plugins to a deployment in one of two ways, depending on whether {{ece}} provides the plugin or you supply it yourself: + +* [Provided with {{ece}}](add-plugins-provided-with-ece.md): {{ece}} hosts compatible [official {{es}} plugins](elasticsearch://reference/elasticsearch-plugins/index.md) for your {{es}} version and upgrades them with your deployment, except when there are breaking changes. You enable the plugins per deployment. + +* [Custom bundles and plugins](add-custom-bundles-plugins.md): When you need a plugin that is not built into {{ece}}, or shared configuration files such as synonym dictionaries or SAML metadata, you reference a ZIP bundle from an HTTP or HTTPS URL. You can also [create](elasticsearch://extend/index.md) your own plugins. + +## Add configuration bundles + +:::{include} /deploy-manage/plugins-and-bundles/_snippets/what-are-bundles.md +::: + +To prepare and attach a bundle, refer to [Add custom bundles and plugins](add-custom-bundles-plugins.md). + +## Include additional {{kib}} plugins + +Unlike {{ech}}, {{ece}} supports additional {{kib}} plugins in certain cases by including them in a custom {{kib}} Docker image and updating your stack pack. Refer to [Include additional {{kib}} plugins](ece-include-additional-kibana-plugin.md). diff --git a/deploy-manage/deploy/cloud-enterprise/ece-include-additional-kibana-plugin.md b/deploy-manage/plugins-and-bundles/cloud-enterprise/ece-include-additional-kibana-plugin.md similarity index 91% rename from deploy-manage/deploy/cloud-enterprise/ece-include-additional-kibana-plugin.md rename to deploy-manage/plugins-and-bundles/cloud-enterprise/ece-include-additional-kibana-plugin.md index cc799f0ad0..dfa800619a 100644 --- a/deploy-manage/deploy/cloud-enterprise/ece-include-additional-kibana-plugin.md +++ b/deploy-manage/plugins-and-bundles/cloud-enterprise/ece-include-additional-kibana-plugin.md @@ -1,5 +1,6 @@ --- -navigation_title: Include additional {{kib}} plugins +navigation_title: Additional {{kib}} plugins +description: Extend Kibana on Elastic Cloud Enterprise by including additional plugins in a custom Docker image and stack pack. mapped_pages: - https://www.elastic.co/guide/en/cloud-enterprise/current/ece-include-additional-kibana-plugin.html applies_to: @@ -58,7 +59,7 @@ This example runs a Dockerfile to install the [analyze_api_ui plugin](https://gi docker build . -t docker.elastic.co/cloud-assets/kibana-with-plugin:8.13.1 ``` -4. If you have your own Docker repository, you can [push the modified Docker image to your repository](ece-install-offline-no-registry.md). Otherwise, run the following commands to compress and load the image into Docker: +4. If you have your own Docker repository, you can [push the modified Docker image to your repository](/deploy-manage/deploy/cloud-enterprise/ece-install-offline-no-registry.md). Otherwise, run the following commands to compress and load the image into Docker: 1. Create a .tar file of the Docker image, specifying the image name and version number: @@ -79,7 +80,7 @@ This example runs a Dockerfile to install the [analyze_api_ui plugin](https://gi Follow these steps to update the {{stack}} pack zip files in your ECE setup to point to your modified Docker image: -1. Download to a local directory the [{{stack}} pack](manage-elastic-stack-versions.md) that you want to modify. +1. Download to a local directory the [{{stack}} pack](/deploy-manage/deploy/cloud-enterprise/manage-elastic-stack-versions.md) that you want to modify. 2. Save the following bash script with the name `change-kibana-image.sh`: ```sh @@ -148,7 +149,7 @@ Follow these steps to update the {{stack}} pack zip files in your ECE setup to p 5. Upload the modified {{stack}} pack to your ECE installation: - 1. [Log into the Cloud UI](log-into-cloud-ui.md). + 1. [Log into the Cloud UI](/deploy-manage/deploy/cloud-enterprise/log-into-cloud-ui.md). 2. Go to **Platform** and then **{{stack}}**. 3. Select **Upload {{stack}} pack** to add the new {{stack}} pack or replace an existing one. You can create a new deployment using the new or updated {{stack}} pack. When you launch {{kib}} the additional plugin is available. diff --git a/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md b/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md new file mode 100644 index 0000000000..1f085ea2a6 --- /dev/null +++ b/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md @@ -0,0 +1,64 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-bundles-plugins.html +description: Mount configuration files into Elasticsearch pods on ECK with ConfigMaps or Secrets. +applies_to: + deployment: + eck: all +products: + - id: cloud-kubernetes +navigation_title: ConfigMaps and Secrets +--- + +# Add configuration files with ConfigMaps or Secrets [k8s-bundles-plugins] + +On {{eck}}, configuration files such as synonym dictionaries, scripts, SAML metadata, or CA certificates are not delivered as ZIP *bundles*. Instead, you store the content in a ConfigMap or Secret, then mount it into your {{es}} pods with volumes and volume mounts. + +This page walks through a synonyms file for the [synonym token filter](elasticsearch://reference/text-analysis/analysis-synonym-tokenfilter.md). You can use the same pattern for any other file you want to mount into the configuration directory of {{es}}, like adding CA certificates of external systems for example. + +::::{note} +ConfigMaps and Secrets are for configuration files only. They do not install plugins. To install plugins, use a [custom image](/deploy-manage/deploy/cloud-on-k8s/create-custom-images.md) or [init containers](init-containers-for-plugin-downloads.md). +:::: + +## Create the ConfigMap or Secret [use-a-volume-and-volume-mount-together-with-a-configmap-or-secret] + +There are multiple ways to create and mount [ConfigMaps](https://kubernetes.io/docs/concepts/configuration/configmap/) and [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/) on Kubernetes. Refer to the Kubernetes documentation for details. + +This example creates a ConfigMap named `synonyms` from a local file `my-synonyms.txt`, stored under the key `synonyms-elasticsearch.txt`: + +```sh +kubectl create configmap synonyms -n --from-file=my-synonyms.txt=synonyms-elasticsearch.txt +``` + +::::{tip} +Create the ConfigMap or Secret in the same namespace where your {{es}} cluster runs. +:::: + +## Mount the ConfigMap in the {{es}} pods + +Update your {{es}} manifest to mount the `synonyms` ConfigMap at `/usr/share/elasticsearch/config/dictionaries`: + +```yaml +spec: + nodeSets: + - name: default + count: 3 + podTemplate: + spec: + containers: + - name: elasticsearch <1> + volumeMounts: + - name: synonyms + mountPath: /usr/share/elasticsearch/config/dictionaries <2> + volumes: + - name: synonyms + configMap: <3> + name: synonyms <4> +``` + +1. {{es}} runs by convention in a container called `elasticsearch`. Do not change that value. +2. Always use a path under `/usr/share/elasticsearch/config`. +3. Use `secret` instead of `configMap` if you stored the data in a Secret. +4. The ConfigMap name must match the ConfigMap created in the previous step. + +After you apply the changes, the nodes can read `dictionaries/synonyms-elasticsearch.txt` and reference it from any [configuration setting](/deploy-manage/deploy/cloud-on-k8s/node-configuration.md). diff --git a/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md b/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md new file mode 100644 index 0000000000..f134014cdf --- /dev/null +++ b/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md @@ -0,0 +1,80 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-init-containers-plugin-downloads.html +description: Download and install Elasticsearch plugins at pod startup on ECK with an init container. +applies_to: + deployment: + eck: all +products: + - id: cloud-kubernetes +navigation_title: Init containers +--- + +# Install plugins with init containers [k8s-init-containers-plugin-downloads] + +Use an init container to run [`elasticsearch-plugin install`](/deploy-manage/plugins-and-bundles/self-managed/install-plugins.md) before the main {{es}} container starts. Each new node repeats the download, so the pods need network access to reach the plugin source. + +The following example installs the ICU analysis plugin: + +```yaml +spec: + nodeSets: + - name: default + count: 3 + podTemplate: + spec: + initContainers: + - name: install-plugins + command: + - sh + - -c + - | + bin/elasticsearch-plugin remove --purge analysis-icu + bin/elasticsearch-plugin install --batch analysis-icu +``` + +For more information on how init containers behave in Kubernetes, refer to the [Kubernetes init containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) documentation. + +:::{tip} +You can also override the {{es}} container image to use your own image with the plugins already installed, as described in [Create custom +images](/deploy-manage/deploy/cloud-on-k8s/create-custom-images.md). For more information, refer to [Add plugins and +configuration files in {{eck}}](manage-plugins.md). +::: + + +## What the init container inherits + +Unless you override them, the init container inherits: + +* The image of the main {{es}} container, if one is not explicitly set. +* The volume mounts from the main container, unless a volume mount with the same name and mount path is already defined on the init container. +* The Pod name and IP address environment variables. + +## Note when using Istio [istio-note] + +When using Istio, init containers do **not** have network access, because the Envoy sidecar that provides connectivity has not started yet. In this case, prefer a [custom container image](/deploy-manage/deploy/cloud-on-k8s/create-custom-images.md). + +If using a custom image is not practical, you can run the plugin install in the {{es}} container’s startup command before {{es}} starts. You may need to update that command if the entrypoint in the {{es}} image changes, which can cause failures during upgrades. The following is an example. + +```yaml +spec: + nodeSets: + - name: default + count: 3 + podTemplate: + spec: + containers: + - name: elasticsearch + command: + - /usr/bin/env + - bash + - -c + - | + #!/usr/bin/env bash + set -e + bin/elasticsearch-plugin remove --purge repository-s3 || true + bin/elasticsearch-plugin install --batch repository-s3 + /bin/tini -- /usr/local/bin/docker-entrypoint.sh +``` + +To compare this approach with a custom image or ConfigMaps, refer to [Add plugins and configuration files in {{eck}}](manage-plugins.md). diff --git a/deploy-manage/deploy/cloud-on-k8s/k8s-kibana-plugins.md b/deploy-manage/plugins-and-bundles/cloud-on-k8s/k8s-kibana-plugins.md similarity index 53% rename from deploy-manage/deploy/cloud-on-k8s/k8s-kibana-plugins.md rename to deploy-manage/plugins-and-bundles/cloud-on-k8s/k8s-kibana-plugins.md index f3e059959b..bffdaaf684 100644 --- a/deploy-manage/deploy/cloud-on-k8s/k8s-kibana-plugins.md +++ b/deploy-manage/plugins-and-bundles/cloud-on-k8s/k8s-kibana-plugins.md @@ -1,16 +1,18 @@ --- mapped_pages: - https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-kibana-plugins.html +description: Run Kibana on ECK with additional plugins by using a custom container image that already includes them. applies_to: deployment: eck: all products: - id: cloud-kubernetes +navigation_title: "{{kib}} plugins" --- # Install {{kib}} plugins [k8s-kibana-plugins] -You can override the {{kib}} container image to use your own image with the plugins already installed, as described in the [Create custom images](create-custom-images.md). You should run an `optimize` step as part of the build, otherwise it needs to run at startup which requires additional time and resources. +You can override the {{kib}} container image to use your own image with the plugins already installed, as described in [Create custom images](/deploy-manage/deploy/cloud-on-k8s/create-custom-images.md). You should run an `optimize` step as part of the build, otherwise it needs to run at startup which requires additional time and resources. This is a Dockerfile example: diff --git a/deploy-manage/plugins-and-bundles/cloud-on-k8s/manage-plugins.md b/deploy-manage/plugins-and-bundles/cloud-on-k8s/manage-plugins.md new file mode 100644 index 0000000000..737a8f54d8 --- /dev/null +++ b/deploy-manage/plugins-and-bundles/cloud-on-k8s/manage-plugins.md @@ -0,0 +1,48 @@ +--- +navigation_title: Extend {{eck}} +description: Choose how to install Elasticsearch plugins and configuration files on Elastic Cloud on Kubernetes. +applies_to: + deployment: + eck: all +products: + - id: cloud-kubernetes +--- + +# Add plugins and configuration files in {{eck}} [eck-add-plugins-overview] + +On {{eck}}, {{es}} runs in Kubernetes pods. Unlike {{ech}} and {{ece}}, {{eck}} does not host a catalog of plugins that you enable on a deployment. You must install any plugin that is not already in the base image before the main {{es}} container starts. That includes [official {{es}} plugins](elasticsearch://reference/elasticsearch-plugins/index.md), community or third-party plugins, and [plugins you write yourself](elasticsearch://extend/index.md). + +You can also make configuration files such as synonym dictionaries, scripts, or SAML metadata available in the configuration directory. {{eck}} does not use *bundles* (the ZIP-based extension workflow in {{ech}} and {{ece}}); use ConfigMaps or Secrets instead. + +Refer to [](/deploy-manage/plugins-and-bundles.md) for options that apply to other deployment types. + +## Choose an approach + +These options differ in how you supply plugins or files on the pod, not in which plugins you can install. Use a custom image or init containers for plugins. Use ConfigMaps or Secrets when you only need configuration files. + +* [Custom container image](/deploy-manage/deploy/cloud-on-k8s/create-custom-images.md): Build from the official Elastic images and install the plugins you need so they are present when the {{es}} container starts. Best when you want reproducible deployments without runtime internet access. You can also include configuration files in the image. + +* [Init containers](init-containers-for-plugin-downloads.md): Run `elasticsearch-plugin install` in an init container before {{es}} starts. Easier to try without a registry, but each new node needs network access to download the plugins again. + +* [ConfigMaps or Secrets](custom-configuration-files-plugins.md): Mount configuration files such as synonym dictionaries, certificates, or SAML metadata into the {{es}} config directory. This option does not install plugins; use a custom image or init containers for that. + +The following matrix compares these approaches in more detail. + +:::{table} +:matrix: + +| Consideration | Custom container image | Init containers | ConfigMaps or Secrets | +| --- | --- | --- | --- | +| Best used for | Plugins and optional configuration files included in the image | Plugins installed at pod startup | Configuration files only (dictionaries, certificates, metadata) | +| Runtime internet | Not required | Required (refer to [Istio](init-containers-for-plugin-downloads.md#istio-note)) | Not required | +| Reproducibility | High: identical image for every deployment | Lower: each node downloads plugins at startup | High: file content is managed as Kubernetes objects | +| Version upgrades | Build and publish a new image for each {{es}} version | Update the install command or plugin version in the manifest | Update the ConfigMap or Secret | +| Startup cost | Lower: plugins are already in the image | Higher: each new node downloads plugins again | Lower for file mounts; does not install plugins | +| Operational overhead | Requires a container registry and build infrastructure | More complex manifests; new nodes can fail due to network or configuration errors | Requires ongoing maintenance of ConfigMaps or Secrets | +| Installs plugins? | Yes | Yes | No; use a custom image or init containers | + +::: + +## {{kib}} plugins + +To run {{kib}} with additional plugins, use a custom container image that already includes them. Refer to [Install {{kib}} plugins](k8s-kibana-plugins.md) for more information. diff --git a/deploy-manage/deploy/elastic-cloud/add-plugins-extensions.md b/deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-extensions.md similarity index 68% rename from deploy-manage/deploy/elastic-cloud/add-plugins-extensions.md rename to deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-extensions.md index e603ac26d4..111ecffddb 100644 --- a/deploy-manage/deploy/elastic-cloud/add-plugins-extensions.md +++ b/deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-extensions.md @@ -1,20 +1,23 @@ --- -navigation_title: Add plugins and extensions +navigation_title: "Extend {{ech}}" +description: Extend Elasticsearch on Elastic Cloud Hosted with provided plugins, custom plugins, or configuration bundles. mapped_pages: - https://www.elastic.co/guide/en/cloud-heroku/current/ech-adding-plugins.html - https://www.elastic.co/guide/en/cloud/current/ec-adding-plugins.html applies_to: deployment: - ess: ga + ech: ga products: - id: cloud-hosted --- # Add plugins and extensions in {{ech}} [ec-adding-plugins] -On {{ech}}, you extend the core functionality of {{es}} with plugins or bundles. In the {{ecloud}} console and API, both are referred to as extensions. +On {{ech}}, you extend the core functionality of {{es}} with plugins or bundles. In the {{ecloud}} console and API, both are referred to as *extensions*. -## Plugins +For options that apply to other deployment types, refer to [](/deploy-manage/plugins-and-bundles.md). + +## Add {{es}} plugins Plugins are software packages that you install in {{es}} to extend its core functionality to include additional analyzers, discovery providers, or ingest processors. Availability depends on your {{es}} version. Common categories include: @@ -26,19 +29,16 @@ You can add plugins to a deployment in one of two ways, depending on whether Ela * [Provided with {{ech}}](add-plugins-provided-with-ech.md): {{ecloud}} hosts compatible official plugins for your {{es}} version and upgrades them with your deployment, except when there are breaking changes. You enable the plugins per deployment. To learn about official and community plugins, refer to [{{es}} plugins](elasticsearch://reference/elasticsearch-plugins/index.md). -* [Custom plugins](upload-custom-plugins-bundles.md): When you need to install an official plugin not included with {{ech}}, such as a community-sourced plugin, or [one you write yourself](elasticsearch://extend/index.md), you upload a custom plugin. Uploading custom plugins requires a Gold, Platinum, or Enterprise subscription. - -Plugins are not supported for {{kib}}. To learn more, check [Restrictions for {{es}} and {{kib}} plugins](restrictions-known-problems.md#ec-restrictions-plugins). +* [Custom plugins](upload-custom-plugins-bundles.md): When you need a community or third-party plugin, an official plugin that is not [provided with {{ech}}](add-plugins-provided-with-ech.md), or [one you write yourself](elasticsearch://extend/index.md), you upload a custom plugin. Uploading custom plugins requires a Gold, Platinum, or Enterprise subscription. -## Bundles +Plugins are not supported for {{kib}}. To learn more, check [Restrictions for {{es}} and {{kib}} plugins](/deploy-manage/deploy/elastic-cloud/restrictions-known-problems.md#ec-restrictions-plugins). -Bundles are ZIP files of configuration and data files. They are not installed as plugins. Instead, when a node starts, {{ecloud}} extracts the bundle contents into each node's `/app/config` configuration directory. +## Add configuration bundles -Use a bundle when every node needs the same files, such as: +:::{include} /deploy-manage/plugins-and-bundles/_snippets/what-are-bundles.md +::: -* Synonym, stop-word, or compound-word dictionaries -* Scripts referenced in queries -* Cluster configuration files, such as SAML metadata +For example, you can upload an Identity Provider metadata file used when you [secure your clusters with SAML](/deploy-manage/users-roles/cluster-or-deployment-auth/saml.md). Bundles use the same extensions workflow as custom plugins where you upload a ZIP file, choose the bundle type, and then enable the extension on your deployment. The difference happens at runtime: plugins are installed into {{es}} while bundles are extracted as files on disk. diff --git a/deploy-manage/deploy/elastic-cloud/add-plugins-provided-with-ech.md b/deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-provided-with-ech.md similarity index 56% rename from deploy-manage/deploy/elastic-cloud/add-plugins-provided-with-ech.md rename to deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-provided-with-ech.md index ecb423b0f6..cc53b3290b 100644 --- a/deploy-manage/deploy/elastic-cloud/add-plugins-provided-with-ech.md +++ b/deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-provided-with-ech.md @@ -1,24 +1,26 @@ --- navigation_title: Provided with ECH +description: Enable official Elasticsearch plugins that Elastic Cloud Hosted provides and upgrades with your deployment. mapped_pages: - https://www.elastic.co/guide/en/cloud-heroku/current/ech-adding-elastic-plugins.html - https://www.elastic.co/guide/en/cloud/current/ec-adding-elastic-plugins.html applies_to: deployment: - ess: ga + ech: ga products: - id: cloud-hosted --- # Add plugins provided with {{ech}} [ec-adding-elastic-plugins] -You can use a variety of [official {{es}} plugins](elasticsearch://reference/elasticsearch-plugins/index.md) that are compatible with your version of {{es}}. When you upgrade to a new {{es}} version, these plugins are upgraded with the rest of your deployment. +:::{include} /deploy-manage/plugins-and-bundles/_snippets/provided-plugins-intro.md +::: ## Before you begin [ec_before_you_begin_6] -Some restrictions apply when adding plugins. For example, plugins are not supported for {{kib}}. To learn more, check [Restrictions for {{es}} and {{kib}} plugins](restrictions-known-problems.md#ec-restrictions-plugins). +Some restrictions apply when adding plugins. For example, plugins are not supported for {{kib}}. To learn more, check [Restrictions for {{es}} and {{kib}} plugins](/deploy-manage/deploy/elastic-cloud/restrictions-known-problems.md#ec-restrictions-plugins). ## Enable plugins for a deployment -:::{include} _snippets/enable-extensions-on-deployment.md +:::{include} /deploy-manage/deploy/elastic-cloud/_snippets/enable-extensions-on-deployment.md ::: diff --git a/deploy-manage/deploy/elastic-cloud/manage-plugins-extensions-through-api.md b/deploy-manage/plugins-and-bundles/elastic-cloud/manage-plugins-extensions-through-api.md similarity index 99% rename from deploy-manage/deploy/elastic-cloud/manage-plugins-extensions-through-api.md rename to deploy-manage/plugins-and-bundles/elastic-cloud/manage-plugins-extensions-through-api.md index 848bad50ab..f374e1461c 100644 --- a/deploy-manage/deploy/elastic-cloud/manage-plugins-extensions-through-api.md +++ b/deploy-manage/plugins-and-bundles/elastic-cloud/manage-plugins-extensions-through-api.md @@ -1,5 +1,6 @@ --- navigation_title: Manage through API +description: Create, update, enable, and delete Elastic Cloud Hosted plugins and bundles programmatically with the API. mapped_pages: - https://www.elastic.co/guide/en/cloud/current/ec-plugins-guide.html applies_to: diff --git a/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md b/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md similarity index 83% rename from deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md rename to deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md index cdaec045a2..795ce8a77b 100644 --- a/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md +++ b/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md @@ -1,38 +1,27 @@ --- navigation_title: Custom plugins and bundles +description: Upload custom plugins and configuration bundles so every node in your Elastic Cloud Hosted deployment can use them. mapped_pages: - https://www.elastic.co/guide/en/cloud/current/ec-custom-bundles.html - https://www.elastic.co/guide/en/cloud-heroku/current/ech-custom-bundles.html applies_to: deployment: - ess: ga + ech: ga products: - id: cloud-hosted --- # Upload custom plugins and bundles -::::{note} -This page applies to {{ech}} deployments only. {{serverless-full}} projects do not support custom plugin or bundle uploads, including dictionary files used for synonyms, stop words, or [language analyzers](elasticsearch://reference/text-analysis/analysis-lang-analyzer.md). - -If you use {{serverless-short}} and need to manage synonyms, use the [synonyms APIs]({{es-serverless-apis}}group/endpoint-synonyms) or refer to [Search with synonyms](/solutions/search/full-text/search-with-synonyms.md). For how {{ech}} and Serverless differ on plugins, bundles, and dictionary options, see [Compare {{ech}} and Serverless](/deploy-manage/deploy/elastic-cloud/differences-from-other-elasticsearch-offerings.md#elasticsearch-differences-custom-plugins-and-bundles). -:::: - -There are several cases where you might need your own files to be made available to your {{es}} cluster’s nodes: - -* Your own custom plugins, or third-party plugins that are not amongst the [officially available plugins](/deploy-manage/deploy/elastic-cloud/add-plugins-provided-with-ech.md). -* Custom dictionaries, such as synonyms, stop words, compound words, and so on. -* Cluster configuration files, such as an Identity Provider metadata file used when you [secure your clusters with SAML](../../../deploy-manage/users-roles/cluster-or-deployment-auth/saml.md). - -To facilitate this, we make it possible to upload a ZIP file that contains the files you want to make available. Uploaded files are stored using Amazon’s highly-available S3 service. This is necessary so we do not have to rely on the availability of third-party services, such as the official plugin repository, when provisioning nodes. +Upload a ZIP file when you need a custom or third-party plugin that {{ech}} does not provide, or configuration files such as dictionaries and SAML metadata. In the {{ecloud}} console and API, these uploads are *extensions*. -Custom plugins and bundles are collectively referred to as extensions. +Uploaded files are stored in highly available object storage so {{ecloud}} does not depend on third-party services, such as a public plugin repository, when provisioning nodes. ## Before you begin [ec_before_you_begin_7] The selected plugins/bundles are downloaded and provided when a node starts. Changing a plugin does not change it for nodes already running it. Refer to [Replace an extension](#ec-update-bundles-and-plugins). -With great power comes great responsibility: your plugins can extend your deployment with new functionality, but also break it. Be careful. We obviously cannot guarantee that your custom code works. +Custom plugins can add capabilities to your deployment, but they can also cause failures. Elastic does not guarantee that custom code will work correctly. ::::{important} You cannot edit or delete a custom extension after it has been used in a deployment. To remove it from your deployment, you can disable the extension and update your deployment configuration. @@ -134,7 +123,7 @@ Creating extensions larger than 200MB must be done through the API. Refer to [Up After uploading your files, you can enable them when creating a new {{es}} deployment. For existing deployments, enable them from the deployment edit page: -:::{include} _snippets/enable-extensions-on-deployment.md +:::{include} /deploy-manage/deploy/elastic-cloud/_snippets/enable-extensions-on-deployment.md ::: diff --git a/deploy-manage/plugins-and-bundles/self-managed/custom-url.md b/deploy-manage/plugins-and-bundles/self-managed/custom-url.md new file mode 100644 index 0000000000..801b93a545 --- /dev/null +++ b/deploy-manage/plugins-and-bundles/self-managed/custom-url.md @@ -0,0 +1,56 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugin-management-custom-url.html +applies_to: + deployment: + self: ga +navigation_title: "Custom URL or file system" +description: Install an Elasticsearch plugin from a custom URL or local ZIP when it is not available by name. +products: + - id: elasticsearch +--- + +# Install from a custom URL or file system [plugin-management-custom-url] + +A plugin can also be downloaded from a custom location by specifying a URL: + +```sh +sudo bin/elasticsearch-plugin install [url] <1> +``` + +1. Must be a valid URL. The plugin name is determined from its descriptor. + +Unix +: To install a plugin from your local file system at `/path/to/plugin.zip`: + + ```sh + sudo bin/elasticsearch-plugin install file:///path/to/plugin.zip + ``` + +Windows +: To install a plugin from your local file system at `C:\path\to\plugin.zip`: + + ```sh + bin\elasticsearch-plugin install file:///C:/path/to/plugin.zip + ``` + + ::::{note} + Any path that contains spaces must be wrapped in quotes. + :::: + + ::::{note} + If you install a plugin from the filesystem, the plugin distribution must not be contained in the `plugins` directory for the node that you are installing to, or installation will fail. + :::: + +HTTP +: To install a plugin from an HTTP URL: + + ```sh + sudo bin/elasticsearch-plugin install /plugin.zip + ``` + + The plugin script refuses to talk to an HTTPS URL with an untrusted certificate. To use a self-signed HTTPS cert, add the CA cert to a local Java truststore and pass the location to the script: + + ```sh + sudo CLI_JAVA_OPTS="-Djavax.net.ssl.trustStore=/path/to/trustStore.jks" bin/elasticsearch-plugin install /plugin.zip + ``` diff --git a/deploy-manage/plugins-and-bundles/self-managed/install-multiple-plugins.md b/deploy-manage/plugins-and-bundles/self-managed/install-multiple-plugins.md new file mode 100644 index 0000000000..d289bb3732 --- /dev/null +++ b/deploy-manage/plugins-and-bundles/self-managed/install-multiple-plugins.md @@ -0,0 +1,29 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/elasticsearch/plugins/current/installing-multiple-plugins.html +applies_to: + deployment: + self: ga +navigation_title: "Install multiple plugins" +description: Install several Elasticsearch plugins in one elasticsearch-plugin command on self-managed deployments. +products: + - id: elasticsearch +--- + +# Install multiple plugins [installing-multiple-plugins] + +Multiple plugins can be installed in one invocation: + +```sh +sudo bin/elasticsearch-plugin install [plugin_id] [plugin_id] ... [plugin_id] +``` + +Each `plugin_id` can be any valid form for installing a single plugin (for example, the name of a core plugin, or a custom URL). + +For example, to install the core [ICU plugin](elasticsearch://reference/elasticsearch-plugins/analysis-icu.md): + +```sh +sudo bin/elasticsearch-plugin install analysis-icu +``` + +This command installs the versions of the plugins that match your {{es}} version. The installation is treated as a transaction: all of the plugins are installed, or none of them are installed if any installation fails. diff --git a/deploy-manage/plugins-and-bundles/self-managed/install-plugins.md b/deploy-manage/plugins-and-bundles/self-managed/install-plugins.md new file mode 100644 index 0000000000..ed4ad366d2 --- /dev/null +++ b/deploy-manage/plugins-and-bundles/self-managed/install-plugins.md @@ -0,0 +1,54 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/elasticsearch/plugins/current/installation.html +applies_to: + deployment: + self: ga +navigation_title: "Install with CLI" +description: Install Elasticsearch plugins on self-managed package and archive installs with the elasticsearch-plugin CLI. +products: + - id: elasticsearch +--- + +# Install plugins with the elasticsearch-plugin CLI [installation] + +Each plugin typically documents its own installation requirements. This page covers the `elasticsearch-plugin` CLI for self-managed package and archive installs. + +If you run {{es}} with the [official Docker image](/deploy-manage/deploy/self-managed/install-elasticsearch-with-docker.md), use the declarative [configuration file](manage-plugins-using-configuration-file.md) instead of running `elasticsearch-plugin install` directly. + +The `elasticsearch-plugin` tool is located in the `$ES_HOME/bin` directory by default, but it might be in a different location depending on which {{es}} package you installed. For more information, refer to [Find the plugins directory](plugins-directory.md). + +To get usage instructions, run the following command: + +```sh +sudo bin/elasticsearch-plugin -h +``` + +::::{important} +If {{es}} was installed using the deb or rpm package, then run `/usr/share/elasticsearch/bin/elasticsearch-plugin` as `root` so it can write to the appropriate files on disk. Otherwise, run `bin/elasticsearch-plugin` as the user that owns all of the {{es}} files. +:::: + +## Install core {{es}} plugins [_core_elasticsearch_plugins] + +[Core {{es}} plugins](elasticsearch://reference/elasticsearch-plugins/index.md) can be installed as follows: + +```sh +sudo bin/elasticsearch-plugin install [plugin_name] +``` + +For example, to install the core [ICU plugin](elasticsearch://reference/elasticsearch-plugins/analysis-icu.md): + +```sh +sudo bin/elasticsearch-plugin install analysis-icu +``` + +This command installs the version of the plugin that matches your {{es}} version and shows a progress bar while downloading. + +After installation, restart each node before the plugin is available. Plugins that contribute custom cluster state metadata require a full cluster restart. You can still upgrade those plugins with a rolling restart. + +## Next steps + +* [](custom-url.md) +* [](install-multiple-plugins.md) +* [](list-remove-update.md) +* [](other-command-line-parameters.md) diff --git a/deploy-manage/plugins-and-bundles/self-managed/list-remove-update.md b/deploy-manage/plugins-and-bundles/self-managed/list-remove-update.md new file mode 100644 index 0000000000..b4658475fa --- /dev/null +++ b/deploy-manage/plugins-and-bundles/self-managed/list-remove-update.md @@ -0,0 +1,52 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/elasticsearch/plugins/current/listing-removing-updating.html +applies_to: + deployment: + self: ga +navigation_title: "List, remove, and update" +description: List, remove, and update installed Elasticsearch plugins on self-managed nodes with the CLI. +products: + - id: elasticsearch +--- + +# List, remove, and update installed plugins [listing-removing-updating] + +## List plugins [_listing_plugins] + +Retrieve the currently loaded plugins with the `list` option: + +```sh +sudo bin/elasticsearch-plugin list +``` + +Alternatively, use the [nodes info API]({{es-apis}}operation/operation-nodes-info) to find out which plugins are installed on each node in the cluster. + +## Remove plugins [_removing_plugins] + +Plugins can be removed manually by deleting the appropriate directory under `plugins/`, or with the plugin script: + +```sh +sudo bin/elasticsearch-plugin remove [pluginname] +``` + +After a Java plugin has been removed, restart the node to complete the removal. + +By default, plugin configuration files (if any) are preserved on disk so configuration is not lost while upgrading a plugin. To purge configuration files while removing a plugin, use `-p` or `--purge`. You can also use this option after a plugin is removed to clean up lingering configuration files. + +## Remove multiple plugins [removing-multiple-plugins] + +Remove multiple plugins in one invocation: + +```sh +sudo bin/elasticsearch-plugin remove [pluginname] [pluginname] ... [pluginname] +``` + +## Update plugins [_updating_plugins] + +Except for text analysis plugins created using the [stable plugin API](elasticsearch://extend/creating-stable-plugins.md), plugins are built for a specific version of {{es}} and must be reinstalled each time {{es}} is updated. + +```sh +sudo bin/elasticsearch-plugin remove [pluginname] +sudo bin/elasticsearch-plugin install [pluginname] +``` diff --git a/deploy-manage/plugins-and-bundles/self-managed/manage-plugins-using-configuration-file.md b/deploy-manage/plugins-and-bundles/self-managed/manage-plugins-using-configuration-file.md new file mode 100644 index 0000000000..908351a69b --- /dev/null +++ b/deploy-manage/plugins-and-bundles/self-managed/manage-plugins-using-configuration-file.md @@ -0,0 +1,49 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/elasticsearch/plugins/current/manage-plugins-using-configuration-file.html +applies_to: + deployment: + self: ga +navigation_title: "Config file (Docker)" +description: Declare Elasticsearch plugins in elasticsearch-plugins.yml so Docker containers install and sync them on every start. +products: + - id: elasticsearch +--- + +# Manage plugins using a configuration file [manage-plugins-using-configuration-file] + +::::{admonition} Docker only +:class: important + +This feature is only available for [official {{es}} Docker images](https://www.docker.elastic.co/). Other {{es}} distributions will not start with a plugin configuration file. + +:::: + +If you run a self-managed {{es}} cluster with the [official Docker image](/deploy-manage/deploy/self-managed/install-elasticsearch-with-docker.md), manage plugins with a declarative configuration file instead of the `elasticsearch-plugin` CLI. For package and archive installs, use [Install plugins](install-plugins.md). + +When {{es}} starts, it compares the plugins listed in the file with those currently installed, and adds or removes plugins as required. {{es}} also upgrades official plugins when you upgrade {{es}} itself. To change the set of plugins, edit the file and restart the container. Do not run `elasticsearch-plugin install` or `remove` when the configuration file is present; those commands are disabled. + +The file is called `elasticsearch-plugins.yml` and must be placed in the {{es}} configuration directory, alongside `elasticsearch.yml`. Example: + +```yaml +plugins: + - id: analysis-icu + - id: repository-azure + - id: custom-mapper + location: /archive/custom-mapper-1.0.0.zip +``` + +This example installs the official `analysis-icu` and `repository-azure` plugins, and one unofficial plugin. Every plugin must provide an `id`. Unofficial plugins must also provide a `location`. This is typically a URL, but Maven coordinates are also supported. The downloaded plugin’s name must match the ID in the configuration file. + +While {{es}} respects the [standard Java proxy system properties](https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.md) when downloading plugins, you can also configure an HTTP proxy explicitly in the configuration file: + +```yaml +plugins: + - id: custom-mapper + location: /archive/custom-mapper-1.0.0.zip +proxy: proxy.example.com:8443 +``` + +You can also use [mandatory plugins](mandatory-plugins.md) so a node fails to start if a required plugin is missing. + +For more Docker configuration guidance, refer to [Configure {{es}} with Docker](/deploy-manage/deploy/self-managed/install-elasticsearch-docker-configure.md). Refer to [Plugins and bundles](/deploy-manage/plugins-and-bundles.md) for options that apply to other deployment types. diff --git a/deploy-manage/plugins-and-bundles/self-managed/manage-plugins.md b/deploy-manage/plugins-and-bundles/self-managed/manage-plugins.md new file mode 100644 index 0000000000..531374a6ab --- /dev/null +++ b/deploy-manage/plugins-and-bundles/self-managed/manage-plugins.md @@ -0,0 +1,32 @@ +--- +applies_to: + deployment: + self: ga +navigation_title: Extend self-managed +description: Install Elasticsearch plugins on self-managed clusters with a Docker config file or the CLI, and place shared config files on each node. +products: + - id: elasticsearch +--- + +# Manage plugins on {{es}} self-managed deployments + +How you manage plugins depends on how you run {{es}}. Use a declarative configuration file with the official Docker image, or the `elasticsearch-plugin` CLI for package and archive installs. To browse available plugins, refer to [{{es}} plugins](elasticsearch://reference/elasticsearch-plugins/index.md). + +To make synonym dictionaries, scripts, SAML metadata, or similar files available to {{es}}, place them in each node's [configuration directory](/deploy-manage/deploy/self-managed/configure-elasticsearch.md#config-files-location) and reference them from your settings. This is the self-managed equivalent of *bundles* on {{ech}} and {{ece}}, which package those files as ZIP extensions rather than placing them directly on disk. + +Refer to [](/deploy-manage/plugins-and-bundles.md) for options that apply to other deployment types. + +## Manage plugins with the Docker image + +If you run {{es}} using the [official {{es}} Docker image](https://www.docker.elastic.co/), declare the plugins you want in `elasticsearch-plugins.yml` in the configuration directory, alongside `elasticsearch.yml`. + +Each time the container starts, {{es}} compares that list with the plugins currently installed and installs, removes, or upgrades them so the running set matches the file. Official plugins are also upgraded when you upgrade {{es}}. To change the set of plugins, edit the file and restart the container. Do not run `elasticsearch-plugin install` or `remove` when the configuration file is present; those commands are disabled. + +Refer to [Manage plugins using a configuration file](manage-plugins-using-configuration-file.md) for the file format, unofficial plugin locations, and proxy settings. You can also [require mandatory plugins](mandatory-plugins.md) so a node refuses to start if a critical plugin is missing. + +## Manage plugins with package and archive installs + +For all other installation methods, use the `elasticsearch-plugin` command-line tool to [install](install-plugins.md), [list, remove, and update](list-remove-update.md) plugins on each node. You can also [install multiple plugins](install-multiple-plugins.md) in a single command, or [install from a custom URL or file system](custom-url.md). The tool lives under `$ES_HOME/bin` by default; the exact path depends on your package. Refer to [Find the plugins directory](plugins-directory.md). + +After you install a plugin, restart each node before it becomes available. You can [configure mandatory plugins](mandatory-plugins.md) so a node refuses to start if a critical plugin is missing. For silent, verbose, and related options, refer to [Use other command line parameters](other-command-line-parameters.md). + diff --git a/deploy-manage/plugins-and-bundles/self-managed/mandatory-plugins.md b/deploy-manage/plugins-and-bundles/self-managed/mandatory-plugins.md new file mode 100644 index 0000000000..c4bf738d8d --- /dev/null +++ b/deploy-manage/plugins-and-bundles/self-managed/mandatory-plugins.md @@ -0,0 +1,23 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/elasticsearch/plugins/current/mandatory-plugins.html +applies_to: + deployment: + self: ga +navigation_title: "Mandatory plugins" +description: Require specific Elasticsearch plugins so nodes refuse to start if a critical plugin is missing. +products: + - id: elasticsearch +--- + +# Configure mandatory plugins [mandatory-plugins] + +If you rely on certain plugins, you can define mandatory plugins by adding the `plugin.mandatory` setting to `config/elasticsearch.yml`. For example: + +```yaml +plugin.mandatory: analysis-icu,lang-js +``` + +For safety, a node will not start if it is missing a mandatory plugin. + +To learn how settings are applied across deployment types, refer to [Stack settings](/deploy-manage/stack-settings.md). diff --git a/deploy-manage/plugins-and-bundles/self-managed/other-command-line-parameters.md b/deploy-manage/plugins-and-bundles/self-managed/other-command-line-parameters.md new file mode 100644 index 0000000000..3f0f26eba3 --- /dev/null +++ b/deploy-manage/plugins-and-bundles/self-managed/other-command-line-parameters.md @@ -0,0 +1,64 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/elasticsearch/plugins/current/_other_command_line_parameters.html +applies_to: + deployment: + self: ga +navigation_title: "Other CLI parameters" +description: Use silent, verbose, and related elasticsearch-plugin CLI options when installing plugins on self-managed clusters. +products: + - id: elasticsearch +--- + +# Use other command line parameters [_other_command_line_parameters] + +The `elasticsearch-plugin` script supports additional command line parameters. + +## Silent/verbose mode [_silentverbose_mode] + +The `--verbose` parameter outputs more debug information, while `--silent` turns off all output including the progress bar. The script may return the following exit codes: + +`0` +: Everything was OK + +`64` +: Unknown command or incorrect option parameter + +`74` +: IO error + +`70` +: Any other error + +## Batch mode [_batch_mode] + +Certain plugins require more privileges than those provided by default in core {{es}}. These plugins list the required privileges and ask for confirmation before continuing with installation. + +When you run the plugin install script from another program (for example, install automation), the script should detect that it is not being called from a console and skip confirmation, automatically granting all requested permissions. If console detection fails, force batch mode with `-b` or `--batch`: + +```sh +sudo bin/elasticsearch-plugin install --batch [pluginname] +``` + +## Custom config directory [_custom_config_directory] + +If your `elasticsearch.yml` config file is in a custom location, specify the path to the config directory when using the plugin script: + +```sh +sudo ES_PATH_CONF=/path/to/conf/dir bin/elasticsearch-plugin install +``` + +## Proxy settings [_proxy_settings] + +To install a plugin through a proxy, add the proxy details to the `CLI_JAVA_OPTS` environment variable with the Java settings `http.proxyHost` and `http.proxyPort` (or `https.proxyHost` and `https.proxyPort`): + +```sh +sudo CLI_JAVA_OPTS="-Dhttp.proxyHost=host_name -Dhttp.proxyPort=port_number -Dhttps.proxyHost=host_name -Dhttps.proxyPort=https_port_number" bin/elasticsearch-plugin install analysis-icu +``` + +Or on Windows: + +```sh +set CLI_JAVA_OPTS="-Dhttp.proxyHost=host_name -Dhttp.proxyPort=port_number -Dhttps.proxyHost=host_name -Dhttps.proxyPort=https_port_number" +bin\elasticsearch-plugin install analysis-icu +``` diff --git a/deploy-manage/plugins-and-bundles/self-managed/plugins-directory.md b/deploy-manage/plugins-and-bundles/self-managed/plugins-directory.md new file mode 100644 index 0000000000..97c58b1883 --- /dev/null +++ b/deploy-manage/plugins-and-bundles/self-managed/plugins-directory.md @@ -0,0 +1,20 @@ +--- +mapped_pages: + - https://www.elastic.co/guide/en/elasticsearch/plugins/current/_plugins_directory.html +applies_to: + deployment: + self: ga +navigation_title: "Plugins directory" +description: Find where Elasticsearch stores installed plugins for each self-managed package and archive layout. +products: + - id: elasticsearch +--- + +# Find the plugins directory [_plugins_directory] + +The default location of the `plugins` directory depends on which package you install: + +* [Directory layout of `.tar.gz` archives](/deploy-manage/deploy/self-managed/install-elasticsearch-from-archive-on-linux-macos.md#targz-layout) +* [Directory layout of Windows `.zip` archives](/deploy-manage/deploy/self-managed/install-elasticsearch-with-zip-on-windows.md#windows-layout) +* [Directory layout of Debian package](/deploy-manage/deploy/self-managed/install-elasticsearch-with-debian-package.md#deb-layout) +* [Directory layout of RPM](/deploy-manage/deploy/self-managed/install-elasticsearch-with-rpm.md#rpm-layout) diff --git a/deploy-manage/remote-clusters/ec-remote-cluster-strong-identity.md b/deploy-manage/remote-clusters/ec-remote-cluster-strong-identity.md index 4c90362735..c72075fc1a 100644 --- a/deploy-manage/remote-clusters/ec-remote-cluster-strong-identity.md +++ b/deploy-manage/remote-clusters/ec-remote-cluster-strong-identity.md @@ -39,7 +39,7 @@ cluster.remote..signing.key: "node.key" <1> ``` 1. Replace `` with your remote cluster alias. -If you use your own certificates, upload the certificate and key files [as a ZIP bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) and reference them in the settings: +If you use your own certificates, upload the certificate and key files [as a ZIP bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) and reference them in the settings: ```yaml cluster.remote..signing.certificate: "/app/config//" <1> @@ -65,9 +65,9 @@ The certificate and key used by the local cluster to sign cross-cluster requests * If the local cluster uses the default transport certificates, but the remote cluster belongs to a different {{ecloud}} provider or region, you must download the local cluster transport CA and upload it to the remote deployment as a bundle. To do that: 1. Open your deployment management page in the Elastic Cloud UI and go to **Security**. 1. Under **CA certificates**, select the download icon to save the CA into a local file. - 1. Add the CA certificate [as a ZIP bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) in your remote deployment, and reference the file in the `cluster.remote.signing.certificate_authorities` setting. + 1. Add the CA certificate [as a ZIP bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) in your remote deployment, and reference the file in the `cluster.remote.signing.certificate_authorities` setting. - * If you use custom certificates in the local cluster, upload the associated CA to the remote cluster [as a ZIP bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md), and reference the file in the `cluster.remote.signing.certificate_authorities` setting. + * If you use custom certificates in the local cluster, upload the associated CA to the remote cluster [as a ZIP bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md), and reference the file in the `cluster.remote.signing.certificate_authorities` setting. 1. When creating the cross-cluster API key on the remote cluster, you must specify a `certificate_identity` pattern that matches the Distinguished Name (DN) of the certificate used by the local cluster. diff --git a/deploy-manage/remote-clusters/eck-remote-clusters-to-external.md b/deploy-manage/remote-clusters/eck-remote-clusters-to-external.md index 8453df0de9..3c4776d166 100644 --- a/deploy-manage/remote-clusters/eck-remote-clusters-to-external.md +++ b/deploy-manage/remote-clusters/eck-remote-clusters-to-external.md @@ -154,7 +154,7 @@ If the remote cluster is part of an {{ech}} deployment, follow the **The CA is p Update the {{es}} manifest to: * Load the API key from the previously created secret using [`secureSettings`](/deploy-manage/security/k8s-secure-settings.md) - * Mount the CA certificate from the previously created ConfigMap [as a custom file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret) in the {{es}} Pods + * Mount the CA certificate from the previously created ConfigMap [as a custom file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret) in the {{es}} Pods * Enable and configure the remote cluster SSL client in the `config` section of each `nodeSet` ```yaml subs=true diff --git a/deploy-manage/remote-clusters/eck-remote-clusters-to-other-eck.md b/deploy-manage/remote-clusters/eck-remote-clusters-to-other-eck.md index 29fea90992..3f386b7bb5 100644 --- a/deploy-manage/remote-clusters/eck-remote-clusters-to-other-eck.md +++ b/deploy-manage/remote-clusters/eck-remote-clusters-to-other-eck.md @@ -123,7 +123,7 @@ The steps to follow depend on whether the certificate authority (CA) presented b Update the {{es}} manifest to: * Load the API key from the previously created secret using [`secureSettings`](/deploy-manage/security/k8s-secure-settings.md) - * Mount the CA certificate from the previously created ConfigMap [as a custom file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret) in the {{es}} Pods + * Mount the CA certificate from the previously created ConfigMap [as a custom file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret) in the {{es}} Pods * Enable and configure the remote cluster SSL client in the `config` section of each `nodeSet` ```yaml subs=true diff --git a/deploy-manage/toc.yml b/deploy-manage/toc.yml index 31698b19cc..26013b366a 100644 --- a/deploy-manage/toc.yml +++ b/deploy-manage/toc.yml @@ -59,11 +59,6 @@ toc: - file: deploy/elastic-cloud/change-hardware.md - file: deploy/elastic-cloud/ec-customize-deployment-components.md - file: deploy/elastic-cloud/edit-stack-settings.md - - file: deploy/elastic-cloud/add-plugins-extensions.md - children: - - file: deploy/elastic-cloud/add-plugins-provided-with-ech.md - - file: deploy/elastic-cloud/upload-custom-plugins-bundles.md - - file: deploy/elastic-cloud/manage-plugins-extensions-through-api.md - file: deploy/elastic-cloud/custom-endpoint-aliases.md - file: deploy/elastic-cloud/manage-integrations-server.md children: @@ -144,7 +139,6 @@ toc: - file: deploy/cloud-enterprise/configure-allocator-affinity.md - file: deploy/cloud-enterprise/change-allocator-disconnect-timeout.md - file: deploy/cloud-enterprise/manage-elastic-stack-versions.md - - file: deploy/cloud-enterprise/ece-include-additional-kibana-plugin.md - file: deploy/cloud-enterprise/log-into-cloud-ui.md - file: deploy/cloud-enterprise/working-with-deployments.md children: @@ -162,8 +156,6 @@ toc: - file: deploy/cloud-enterprise/edit-stack-settings-apm.md - file: deploy/cloud-enterprise/edit-stack-settings-enterprise.md - file: deploy/cloud-enterprise/resize-deployment.md - - file: deploy/cloud-enterprise/add-plugins.md - - file: deploy/cloud-enterprise/add-custom-bundles-plugins.md - file: deploy/cloud-enterprise/ece-regional-deployment-aliases.md - file: deploy/cloud-enterprise/resource-overrides.md - file: deploy/cloud-enterprise/advanced-cluster-configuration.md @@ -223,8 +215,6 @@ toc: - file: deploy/cloud-on-k8s/volume-claim-templates.md - file: deploy/cloud-on-k8s/virtual-memory.md - file: deploy/cloud-on-k8s/settings-managed-by-eck.md - - file: deploy/cloud-on-k8s/custom-configuration-files-plugins.md - - file: deploy/cloud-on-k8s/init-containers-for-plugin-downloads.md - file: deploy/cloud-on-k8s/update-strategy.md - file: deploy/cloud-on-k8s/pod-disruption-budget.md - file: deploy/cloud-on-k8s/advanced-elasticsearch-node-scheduling.md @@ -236,7 +226,6 @@ toc: children: - file: deploy/cloud-on-k8s/k8s-kibana-es.md - file: deploy/cloud-on-k8s/k8s-kibana-advanced-configuration.md - - file: deploy/cloud-on-k8s/k8s-kibana-plugins.md - file: deploy/cloud-on-k8s/customize-pods.md - file: deploy/cloud-on-k8s/propagate-labels-annotations.md - file: deploy/cloud-on-k8s/k8s-pause-orchestration.md @@ -386,6 +375,34 @@ toc: - file: reference-architectures/hotfrozen-high-availability.md - file: reference-architectures/genai-search-high-availability.md - file: stack-settings.md + - file: plugins-and-bundles.md + children: + - file: plugins-and-bundles/elastic-cloud/add-plugins-extensions.md + children: + - file: plugins-and-bundles/elastic-cloud/add-plugins-provided-with-ech.md + - file: plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md + - file: plugins-and-bundles/elastic-cloud/manage-plugins-extensions-through-api.md + - file: plugins-and-bundles/cloud-enterprise/add-plugins.md + children: + - file: plugins-and-bundles/cloud-enterprise/add-plugins-provided-with-ece.md + - file: plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md + - file: plugins-and-bundles/cloud-enterprise/ece-include-additional-kibana-plugin.md + - file: plugins-and-bundles/self-managed/manage-plugins.md + children: + - file: plugins-and-bundles/self-managed/manage-plugins-using-configuration-file.md + - file: plugins-and-bundles/self-managed/install-plugins.md + children: + - file: plugins-and-bundles/self-managed/custom-url.md + - file: plugins-and-bundles/self-managed/install-multiple-plugins.md + - file: plugins-and-bundles/self-managed/mandatory-plugins.md + - file: plugins-and-bundles/self-managed/list-remove-update.md + - file: plugins-and-bundles/self-managed/other-command-line-parameters.md + - file: plugins-and-bundles/self-managed/plugins-directory.md + - file: plugins-and-bundles/cloud-on-k8s/manage-plugins.md + children: + - file: plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md + - file: plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md + - file: plugins-and-bundles/cloud-on-k8s/k8s-kibana-plugins.md - file: tools.md children: - file: tools/snapshot-and-restore.md diff --git a/deploy-manage/tools/snapshot-and-restore/cloud-on-k8s.md b/deploy-manage/tools/snapshot-and-restore/cloud-on-k8s.md index 403f1598ee..63cc8b8040 100644 --- a/deploy-manage/tools/snapshot-and-restore/cloud-on-k8s.md +++ b/deploy-manage/tools/snapshot-and-restore/cloud-on-k8s.md @@ -504,7 +504,7 @@ spec: ### Install a snapshot repository plugin [k8s-install-plugin] -If you are running a version of {{es}} before 8.0 or you need a snapshot repository plugin that is not already pre-installed you have to install the plugin yourself. To install the snapshot repository plugin, you can either use a [custom image](../../deploy/cloud-on-k8s/create-custom-images.md) or [add your own init container](../../deploy/cloud-on-k8s/init-containers-for-plugin-downloads.md) which installs the plugin when the Pod is created. +If you are running a version of {{es}} before 8.0 or you need a snapshot repository plugin that is not already pre-installed you have to install the plugin yourself. To install the snapshot repository plugin, you can either use a [custom image](../../deploy/cloud-on-k8s/create-custom-images.md) or [add your own init container](/deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md) which installs the plugin when the Pod is created. To use your own custom image with all necessary plugins pre-installed, use an {{es}} resource like the following: diff --git a/deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository.md b/deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository.md index 00ddc4d781..ac096665a7 100644 --- a/deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository.md +++ b/deploy-manage/tools/snapshot-and-restore/minio-on-premise-repository.md @@ -124,7 +124,7 @@ Refer to the [{{es}} S3 plugin details](/deploy-manage/tools/snapshot-and-restor #### Add S3 repository plugin (only for {{es}} 7.x) -For {{es}} clusters in version 7.x you must add the S3 repository plugin to your cluster. Refer to [Managing plugins for ECE](elasticsearch://reference/elasticsearch-plugins/plugin-management.md#managing-plugins-for-ece) for more details. +For {{es}} clusters in version 7.x you must add the S3 repository plugin to your cluster. Refer to [Managing plugins for {{ece}}](/deploy-manage/plugins-and-bundles.md#managing-plugins-for-ece) for more details. ::::{note} For versions 8.0 and later, {{es}} has built-in support for AWS S3 repositories; no repository plugin is needed. diff --git a/deploy-manage/upgrade/deployment-or-cluster/upgrade-717.md b/deploy-manage/upgrade/deployment-or-cluster/upgrade-717.md index c9cfcef515..def4e2a752 100644 --- a/deploy-manage/upgrade/deployment-or-cluster/upgrade-717.md +++ b/deploy-manage/upgrade/deployment-or-cluster/upgrade-717.md @@ -136,7 +136,7 @@ You should make sure to: * Remove or update deprecated settings and mappings. * Review deprecation logs for both {{es}} and {{kib}}. -2. If you use [custom plugins or bundles](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md), make sure they're compatible with the next major release. +2. If you use [custom plugins or bundles](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md), make sure they're compatible with the next major release. 3. If you use custom-developed applications that are impacted by API-related breaking changes, make the recommended changes to ensure that your applications continue to operate as expected after the upgrade, or, as a temporary solution, you can use [REST API compatibility mode](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/rest-api-compatibility.html) to submit requests to 8.x using the 7.x syntax. @@ -166,7 +166,7 @@ You should make sure to: * Remove or update deprecated settings and mappings. * Review deprecation logs for both {{es}} and {{kib}}. -2. If you use [custom plugins or bundles](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md), make sure they're compatible with the next major release. +2. If you use [custom plugins or bundles](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md), make sure they're compatible with the next major release. 3. If you use custom-developed applications that are impacted by API-related breaking changes, make the recommended changes to ensure that your applications continue to operate as expected after the upgrade, or, as a temporary solution, you can use [REST API compatibility mode](https://www.elastic.co/guide/en/elasticsearch/reference/8.19/rest-api-compatibility.html) to submit requests to 8.x using the 7.x syntax. @@ -351,7 +351,7 @@ To prepare your deployment for the upgrade, review the [Prepare to upgrade](/dep * [Manage old Transform indices](/deploy-manage/upgrade/prepare-to-upgrade.md#manage-old-transform-indices) ::: -2. If you use [custom plugins or bundles](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md), make sure they’re compatible with the next major release. +2. If you use [custom plugins or bundles](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md), make sure they’re compatible with the next major release. 3. If you use custom-developed applications that are impacted by API-related breaking changes, make the recommended changes to ensure that your applications continue to operate as expected after the upgrade, or, as a temporary solution, you can use [REST API compatibility mode](elasticsearch://reference/elasticsearch/rest-apis/compatibility.md) to submit requests to 9.x using the 8.x syntax. @@ -387,7 +387,7 @@ To prepare your deployment for the upgrade, review the [Prepare to upgrade](/dep * [Manage old Transform indices](/deploy-manage/upgrade/prepare-to-upgrade.md#manage-old-transform-indices) ::: -2. If you use [custom plugins or bundles](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md), make sure they're compatible with the next major release. +2. If you use [custom plugins or bundles](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md), make sure they're compatible with the next major release. 3. If you use custom-developed applications that are impacted by API-related breaking changes, make the recommended changes to ensure that your applications continue to operate as expected after the upgrade, or, as a temporary solution, you can use [REST API compatibility mode](elasticsearch://reference/elasticsearch/rest-apis/compatibility.md) to submit requests to 9.x using the 8.x syntax. diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/active-directory.md b/deploy-manage/users-roles/cluster-or-deployment-auth/active-directory.md index b37e9df7db..f0b3460583 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/active-directory.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/active-directory.md @@ -221,9 +221,9 @@ POST /_security/role_mapping/ldap-superuser ### Example: Using a role mapping file [ece_using_the_role_mapping_files_2] :::{tip} -If you're using {{ece}} or {{ech}}, then you must [upload this file as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. +If you're using {{ece}} or {{ech}}, then you must [upload this file as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. -If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). +If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). If you're using a self-managed cluster, then the file must be present on each node. ::: @@ -283,9 +283,9 @@ To protect the user credentials that are sent for authentication, you should enc Clients and nodes that connect using SSL/TLS to the Active Directory server need to have the Active Directory server’s certificate or the server’s root CA certificate installed in their keystore or trust store. -If you're using {{ech}} or {{ece}}, then you must [upload your certificate as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. +If you're using {{ech}} or {{ece}}, then you must [upload your certificate as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. -If you're using {{eck}}, then install the certificate as a [custom configuration file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). +If you're using {{eck}}, then install the certificate as a [custom configuration file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). :::{tip} diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/authorization-plugins.md b/deploy-manage/users-roles/cluster-or-deployment-auth/authorization-plugins.md index 4bd1caab59..9eceb678ff 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/authorization-plugins.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/authorization-plugins.md @@ -80,9 +80,9 @@ To use a security extension: bin/elasticsearch-plugin install file:////my-extension-plugin-1.0.zip ``` - * If you're using {{ech}}, then refer to [](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md). - * If you're using {{ece}}, then refer to [](/deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md). - * If you're using {{eck}}, then refer to [](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md). + * If you're using {{ech}}, then refer to [](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md). + * If you're using {{ece}}, then refer to [](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md). + * If you're using {{eck}}, then refer to [](/deploy-manage/plugins-and-bundles/cloud-on-k8s/manage-plugins.md). 2. Add any configuration parameters for implementations in the extension to the [`elasticsearch.yml`](/deploy-manage/stack-settings.md) file. The settings are not namespaced and you have access to any settings when constructing the extensions, although it is recommended to have a namespacing convention for extensions to keep your `elasticsearch.yml` configuration easy to understand. diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/custom.md b/deploy-manage/users-roles/cluster-or-deployment-auth/custom.md index aa9e961cd3..2c0400bc11 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/custom.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/custom.md @@ -68,9 +68,9 @@ To use a custom realm: ```shell bin/elasticsearch-plugin install file:////my-realm-1.0.zip ``` - * If you're using {{ech}}, then refer to [](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md). - * If you're using {{ece}}, then refer to [](/deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md). - * If you're using {{eck}}, then refer to [](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md). + * If you're using {{ech}}, then refer to [](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md). + * If you're using {{ece}}, then refer to [](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md). + * If you're using {{eck}}, then refer to [](/deploy-manage/plugins-and-bundles/cloud-on-k8s/manage-plugins.md). 2. Add a realm configuration of the appropriate realm type to [`elasticsearch.yml`](/deploy-manage/stack-settings.md) under the `xpack.security.authc.realms` namespace. You must define your realm within the namespace that matches the type defined by the extension. The options you can set depend on the settings exposed by the custom realm. At a minimum, you must explicitly set the `order` attribute to control the order in which the realms are consulted during authentication. You must also make sure each configured realm has a distinct `order` setting. In the event that two or more realms have the same `order`, the node will fail to start. diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/kerberos.md b/deploy-manage/users-roles/cluster-or-deployment-auth/kerberos.md index a14b92d4bd..2f32cf3bde 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/kerberos.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/kerberos.md @@ -166,7 +166,7 @@ For detailed information of available realm settings, see [Kerberos realm settin ::::{applies-item} { ess:, ece: } -1. Add a custom bundle that contains your `krb5.conf` and `keytab` files to your cluster. For {{ech}}, follow [](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md). For {{ece}}, follow [](/deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md). +1. Add a custom bundle that contains your `krb5.conf` and `keytab` files to your cluster. For {{ech}}, follow [](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md). For {{ece}}, follow [](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md). :::{tip} You should use these exact filenames for {{ecloud}} to recognize the file in the bundle. @@ -188,7 +188,7 @@ For detailed information of available realm settings, see [Kerberos realm settin ::::{applies-item} eck: -1. Install your `krb5.conf` and `keytab` files as a [custom configuration files](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). Mount them in a sub-directory of the main config directory, for example `/usr/share/elasticsearch/config/kerberos`, and use a `Secret` instead of a `ConfigMap` to store the information. +1. Install your `krb5.conf` and `keytab` files as a [custom configuration files](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). Mount them in a sub-directory of the main config directory, for example `/usr/share/elasticsearch/config/kerberos`, and use a `Secret` instead of a `ConfigMap` to store the information. 2. Configure the JVM to find the Kerberos configuration file. diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/kibana-authentication.md b/deploy-manage/users-roles/cluster-or-deployment-auth/kibana-authentication.md index 595663bc7f..4ea6280027 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/kibana-authentication.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/kibana-authentication.md @@ -145,7 +145,7 @@ xpack.security.authc.providers: order: 0 ``` -If you're using {{ece}} or {{ech}}, then you must [upload this file as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). If you're using a self-managed cluster, then the file must be present on each node. +If you're using {{ece}} or {{ech}}, then you must [upload this file as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). If you're using a self-managed cluster, then the file must be present on each node. ::::{note} Trusted CAs can also be specified in a PKCS #12 keystore bundled with your {{kib}} server certificate/key using `server.ssl.keystore.path` or in a separate trust store using `server.ssl.truststore.path`. diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/ldap.md b/deploy-manage/users-roles/cluster-or-deployment-auth/ldap.md index 8843f5294e..f94caf639c 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/ldap.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/ldap.md @@ -197,7 +197,7 @@ POST /_security/role_mapping/ldap-superuser <1> ### Example: Using a role mapping file :::{tip} -If you're using {{ece}} or {{ech}}, then you must [upload this file as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). If you're using a self-managed cluster, then the file must be present on each node. +If you're using {{ece}} or {{ech}}, then you must [upload this file as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). If you're using a self-managed cluster, then the file must be present on each node. ::: ```yaml @@ -273,9 +273,9 @@ See [Load balancing and failover](elasticsearch://reference/elasticsearch/config To protect the user credentials that are sent for authentication in an LDAP realm, it’s highly recommended to encrypt communications between {{es}} and your LDAP server. Connecting using SSL/TLS ensures that the identity of the LDAP server is authenticated before {{es}} transmits the user credentials and the contents of the connection are encrypted. Clients and nodes that connect using TLS to the LDAP server need to have the LDAP server’s certificate or the server’s root CA certificate installed in their keystore or trust store. -If you're using {{ech}} or {{ece}}, then you must [upload your certificate as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. +If you're using {{ech}} or {{ece}}, then you must [upload your certificate as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. -If you're using {{eck}}, then install the certificate as a [custom configuration file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). +If you're using {{eck}}, then install the certificate as a [custom configuration file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). :::{tip} diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/managed-credentials-eck.md b/deploy-manage/users-roles/cluster-or-deployment-auth/managed-credentials-eck.md index 9f2150e7aa..2a4fb47ac9 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/managed-credentials-eck.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/managed-credentials-eck.md @@ -123,7 +123,7 @@ Refer to [Native user authentication](/deploy-manage/users-roles/cluster-or-depl ### External authentication realms -You can also configure external authentication realms such as LDAP, OpenID Connect, or SAML in your ECK deployments by providing the appropriate {{es}} or {{kib}} configuration settings and any required [certificates or configuration files](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md). +You can also configure external authentication realms such as LDAP, OpenID Connect, or SAML in your ECK deployments by providing the appropriate {{es}} or {{kib}} configuration settings and any required [certificates or configuration files](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md). For more information, refer to [External authentication](/deploy-manage/users-roles/cluster-or-deployment-auth/external-authentication.md). diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/mapping-users-groups-to-roles.md b/deploy-manage/users-roles/cluster-or-deployment-auth/mapping-users-groups-to-roles.md index 6ad3322d33..40d99935f3 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/mapping-users-groups-to-roles.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/mapping-users-groups-to-roles.md @@ -116,9 +116,9 @@ To learn about the properties that you can include in a role mapping resource, r Refer to [Realm-specific details](#_realm_specific_details) for examples of mapping roles using the role mapping file. :::{tip} -If you're using {{ece}} or {{ech}}, then you must [upload this file as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. +If you're using {{ece}} or {{ech}}, then you must [upload this file as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. -If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). +If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). If you're using a self-managed cluster, then the file must be present on each node. Tools like Puppet or Chef can help with this. ::: diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/openid-connect.md b/deploy-manage/users-roles/cluster-or-deployment-auth/openid-connect.md index e2fc7743d2..7f3680e236 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/openid-connect.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/openid-connect.md @@ -141,8 +141,8 @@ This realm has a few mandatory settings, and a number of optional settings. The :::{tip} * In self-managed clusters, the specified path is resolved relative to the {{es}} config directory. {{es}} will automatically monitor this file for changes and will reload the configuration whenever it is updated. - * If you're using {{ece}} or {{ech}}, then you must [upload this file as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. - * If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). + * If you're using {{ece}} or {{ech}}, then you must [upload this file as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. + * If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). ::: op.userinfo_endpoint @@ -317,9 +317,9 @@ OpenID Connect depends on TLS to provide security properties such as encryption However, if the issuer of your OP’s certificate is not trusted by the JVM on which {{es}} is running (e.g it uses an organization CA), then you must configure {{es}} to trust that CA. -If you're using {{ech}} or {{ece}}, then you must [upload your certificate as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. +If you're using {{ech}} or {{ece}}, then you must [upload your certificate as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) before it can be referenced. -If you're using {{eck}}, then install the certificate as a [custom configuration file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). +If you're using {{eck}}, then install the certificate as a [custom configuration file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). The following example demonstrates how to trust a CA certificate (`/oidc/company-ca.pem`), which is located within the configuration directory. diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/pki.md b/deploy-manage/users-roles/cluster-or-deployment-auth/pki.md index f23b13cc42..061e14352d 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/pki.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/pki.md @@ -127,7 +127,7 @@ To use PKI in {{es}}, you configure a PKI realm, enable client authentication on ``` :::{tip} - If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). + If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). If you're using a self-managed cluster, then the file must be present on each node. ::: @@ -172,7 +172,7 @@ To use PKI in {{es}}, you configure a PKI realm, enable client authentication on 2. The distinguished name (DN) of a PKI user. :::{tip} - If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). + If you're using {{eck}}, then install the file as a [custom configuration file](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). If you're using a self-managed cluster, then the file must be present on each node. ::: diff --git a/deploy-manage/users-roles/cluster-or-deployment-auth/saml.md b/deploy-manage/users-roles/cluster-or-deployment-auth/saml.md index 388884c766..579fe2aaa0 100644 --- a/deploy-manage/users-roles/cluster-or-deployment-auth/saml.md +++ b/deploy-manage/users-roles/cluster-or-deployment-auth/saml.md @@ -155,8 +155,8 @@ idp.metadata.path :::{tip} If you want to pass a file path, then review the following: * File path settings are resolved relative to the {{es}} config directory. {{es}} will automatically monitor this file for changes and will reload the configuration whenever it is updated. - * If you're using {{ech}} or {{ece}}, then you must upload the file before it can be referenced. For {{ech}}, upload the file [as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md). For {{ece}}, follow the equivalent [ECE procedure](/deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md). - * If you're using {{eck}}, then install the file as [custom configuration files](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). + * If you're using {{ech}} or {{ece}}, then you must upload the file before it can be referenced. For {{ech}}, upload the file [as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md). For {{ece}}, follow the equivalent [ECE procedure](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md). + * If you're using {{eck}}, then install the file as [custom configuration files](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). ::: idp.entity_id @@ -417,8 +417,8 @@ By default, {{es}} will sign *all* outgoing SAML messages if a signing certifica :::{tip} * In self-managed clusters, file path settings is resolved relative to the {{es}} config directory. {{es}} will automatically monitor this file for changes and will reload the configuration whenever it is updated. -* If you're using {{ech}} or {{ece}}, then you must upload any certificate or keystore files before they can be referenced in the configuration. For {{ech}}, upload them [as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md). For {{ece}}, follow the equivalent [ECE procedure](/deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md). In both cases, you can add the files to your existing SAML bundle. -* If you're using {{eck}}, then install the files as [custom configuration files](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). +* If you're using {{ech}} or {{ece}}, then you must upload any certificate or keystore files before they can be referenced in the configuration. For {{ech}}, upload them [as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md). For {{ece}}, follow the equivalent [ECE procedure](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md). In both cases, you can add the files to your existing SAML bundle. +* If you're using {{eck}}, then install the files as [custom configuration files](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). ::: ::::{tab-set} @@ -486,8 +486,8 @@ If an `Assertion` contains both encrypted and plain-text attributes, then failur :::{tip} * In self-managed clusters, file path settings is resolved relative to the {{es}} config directory. {{es}} will automatically monitor this file for changes and will reload the configuration whenever it is updated. -* If you're using {{ech}} or {{ece}}, then you must upload any certificate or keystore files before they can be referenced in the configuration. For {{ech}}, upload them [as a custom bundle](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md). For {{ece}}, follow the equivalent [ECE procedure](/deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md). In both cases, you can add the files to your existing SAML bundle. -* If you're using {{eck}}, then install the files as [custom configuration files](/deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). +* If you're using {{ech}} or {{ece}}, then you must upload any certificate or keystore files before they can be referenced in the configuration. For {{ech}}, upload them [as a custom bundle](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md). For {{ece}}, follow the equivalent [ECE procedure](/deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md). In both cases, you can add the files to your existing SAML bundle. +* If you're using {{eck}}, then install the files as [custom configuration files](/deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md#use-a-volume-and-volume-mount-together-with-a-configmap-or-secret). ::: ::::{tab-set} diff --git a/manage-data/migrate/migrate-from-a-self-managed-cluster-with-a-self-signed-certificate-using-remote-reindex.md b/manage-data/migrate/migrate-from-a-self-managed-cluster-with-a-self-signed-certificate-using-remote-reindex.md index de510d73eb..27965d05fd 100644 --- a/manage-data/migrate/migrate-from-a-self-managed-cluster-with-a-self-signed-certificate-using-remote-reindex.md +++ b/manage-data/migrate/migrate-from-a-self-managed-cluster-with-a-self-signed-certificate-using-remote-reindex.md @@ -38,7 +38,7 @@ Both the folder and file names must correspond to the settings configured in [St ## Step 2: Upload the zip bundle to your {{ecloud}} account [ec-remote-reindex-step2] -To upload your file, follow the steps in the section [Add your extension](../../deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md#ec-add-your-plugin). Enter wildcard `*` for **Version** in order to be compatible for all future upgrades, and select `A bundle containing dictionary or script` as **Type**. +To upload your file, follow the steps in the section [Add your extension](../../deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md#ec-add-your-plugin). Enter wildcard `*` for **Version** in order to be compatible for all future upgrades, and select `A bundle containing dictionary or script` as **Type**. ## Step 3: Create a new {{ech}} deployment [ec-remote-reindex-step3] diff --git a/redirects.yml b/redirects.yml index 6cf36c31d7..3f8e2b03d1 100644 --- a/redirects.yml +++ b/redirects.yml @@ -1138,6 +1138,18 @@ redirects: anchors: 'attacks-next-steps': 'manage-saved-discoveries' 'solutions/security/ai/triage-attack-discovery-findings.md': 'solutions/security/ai/attack-discovery/triage-attack-discovery-findings.md' + + # Plugins and bundles hub: move deployment-specific plugin pages under deploy-manage/plugins-and-bundles/ issue: https://github.com/elastic/docs-content-internal/issues/1075 + 'deploy-manage/deploy/elastic-cloud/add-plugins-extensions.md': 'deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-extensions.md' + 'deploy-manage/deploy/elastic-cloud/add-plugins-provided-with-ech.md': 'deploy-manage/plugins-and-bundles/elastic-cloud/add-plugins-provided-with-ech.md' + 'deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md': 'deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md' + 'deploy-manage/deploy/elastic-cloud/manage-plugins-extensions-through-api.md': 'deploy-manage/plugins-and-bundles/elastic-cloud/manage-plugins-extensions-through-api.md' + 'deploy-manage/deploy/cloud-enterprise/add-plugins.md': 'deploy-manage/plugins-and-bundles/cloud-enterprise/add-plugins.md' + 'deploy-manage/deploy/cloud-enterprise/add-custom-bundles-plugins.md': 'deploy-manage/plugins-and-bundles/cloud-enterprise/add-custom-bundles-plugins.md' + 'deploy-manage/deploy/cloud-enterprise/ece-include-additional-kibana-plugin.md': 'deploy-manage/plugins-and-bundles/cloud-enterprise/ece-include-additional-kibana-plugin.md' + 'deploy-manage/deploy/cloud-on-k8s/custom-configuration-files-plugins.md': 'deploy-manage/plugins-and-bundles/cloud-on-k8s/custom-configuration-files-plugins.md' + 'deploy-manage/deploy/cloud-on-k8s/init-containers-for-plugin-downloads.md': 'deploy-manage/plugins-and-bundles/cloud-on-k8s/init-containers-for-plugin-downloads.md' + 'deploy-manage/deploy/cloud-on-k8s/k8s-kibana-plugins.md': 'deploy-manage/plugins-and-bundles/cloud-on-k8s/k8s-kibana-plugins.md' # related to https://github.com/elastic/docs-content/issues/7709 'solutions/elasticsearch-solution-project/search-connection-details.md': to: 'solutions/elasticsearch-solution-project/search-connection-details.md' diff --git a/solutions/search/full-text/search-with-synonyms.md b/solutions/search/full-text/search-with-synonyms.md index 2beac16837..c4e7808fc0 100644 --- a/solutions/search/full-text/search-with-synonyms.md +++ b/solutions/search/full-text/search-with-synonyms.md @@ -12,7 +12,7 @@ products: $$$ece-add-custom-bundle-example-synonyms$$$ ::::{note} -Learn about [adding custom synonym bundles](../../../deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) to your {{ece}} deployment. +Learn about [adding custom synonym bundles](../../../deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) to your {{ece}} deployment. :::: % TODO: these bundle links do not belong here @@ -121,7 +121,7 @@ serverless: unavailable You can store your synonyms set in a file. -Make sure you upload a synonyms set file for all your cluster nodes, to the configuration directory for your {{es}} distribution. If you're using {{ech}}, you can upload synonyms files using [custom bundles](../../../deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md). +Make sure you upload a synonyms set file for all your cluster nodes, to the configuration directory for your {{es}} distribution. If you're using {{ech}}, you can upload synonyms files using [custom bundles](../../../deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md). An example of a synonyms file: diff --git a/troubleshoot/elasticsearch/diagnosing-unknown-repositories.md b/troubleshoot/elasticsearch/diagnosing-unknown-repositories.md index 256720ed30..c1a91a6c31 100644 --- a/troubleshoot/elasticsearch/diagnosing-unknown-repositories.md +++ b/troubleshoot/elasticsearch/diagnosing-unknown-repositories.md @@ -20,8 +20,8 @@ When a snapshot repository is marked as "unknown", it means that an {{es}} node Learn more about snapshot and restore plugins: -* [Available plugins](elasticsearch://reference/elasticsearch-plugins/plugin-management.md) -* [Installing plugins in self-managed clusters](elasticsearch://reference/elasticsearch-plugins/plugin-management.md) +* [Plugins and bundles](/deploy-manage/plugins-and-bundles.md) +* [Installing plugins in self-managed clusters](/deploy-manage/plugins-and-bundles.md#managing-plugins-for-self-managed) * [Installing plugins on {{eck}}](/deploy-manage/tools/snapshot-and-restore/cloud-on-k8s.md#k8s-install-plugin) :::{tip} diff --git a/troubleshoot/monitoring/node-bootlooping.md b/troubleshoot/monitoring/node-bootlooping.md index f3e2269002..ce3141c4a3 100644 --- a/troubleshoot/monitoring/node-bootlooping.md +++ b/troubleshoot/monitoring/node-bootlooping.md @@ -138,7 +138,7 @@ deployment: ece: ga ``` -During the process of applying a configuration change, {{ecloud}} checks to determine if any [uploaded custom plugins or bundles](/deploy-manage/deploy/elastic-cloud/upload-custom-plugins-bundles.md) are expired. +During the process of applying a configuration change, {{ecloud}} checks to determine if any [uploaded custom plugins or bundles](/deploy-manage/plugins-and-bundles/elastic-cloud/upload-custom-plugins-bundles.md) are expired. Problematic plugins produce oscillating {{es}} start-up logs like the following: