Pluginsedit

An ARM template deployment can include additional plugins, so long as those plugins can be downloaded from a public URI at deployment time.

Elastic Stack features (formerly X-Pack)edit

A trial license for the Platinum features of the Elastic Stack can be deployed for Elasticsearch, and Kibana if also deployed, using the following parameter

xPackPlugins

Select Yes to install a trial license of the platinum features. A trial license provides access to platinum features for 30 days. a value of No

  1. for Elasticsearch and Kibana 6.3.0+ will deploy with a free perpetual license providing access to the basic features. These versions use a distribution with Elastic Stack features included in the installation, and the license applied determines which features are activated.
  2. for Elasticsearch and Kibana prior to 6.3.0, the X-Pack plugin will not be installed when a value of No is passed. These versions require the X-Pack plugin to be installed to be able to apply a license and access features related to that license.

    The default is Yes.

Warning

After the trial license period expires, the trial platinum features operate in a degraded mode.

You should update your license as soon as possible. You are essentially flying blind when running with an expired license. The license can be updated at any point before or on expiration, using the Update License API or Kibana UI, if available in the version deployed.

With Elasticsearch 6.3+, you can revert to a free perpetual basic license included with deployment by using the Start Basic API.

With Elasticsearch 6.2 and prior, you can register for free basic license and apply it to the cluster.

Azure repositoryedit

The ARM template can be configured with the Azure repository plugin to allow snapshotting of data within the cluster to an Azure storage account, and restoration of a snapshot. A separate Azure storage account can be used for this purpose or alternatively, the shared Azure storage account deployed as part of the template can be used.

Tip

It is recommended to use a separate storage account in another resource group with azure repository plugin so that deleting the resource group in which a cluster resides does not accidently delete snapshot data as well.

The following parameters can configure Azure repository

azureCloudPlugin
Either Yes or No to install the Azure repository plugin. Default is No.
azureCloudStorageAccountName
Optional name of an existing storage account to configure Azure repository plugin. Must be a valid Azure Storage Account name. If no value is passed and azureCloudPlugin is Yes, the shared storage account deployed with the template will be used.
azureCloudStorageAccountKey
Optional storage account key associated with the existing storage account named in azureCloudStorageAccountName to configure Azure repository plugin. Required only when passing a value for azureCloudStorageAccountName.

The Azure repository plugin does not create the container within the storage account when creating a repository using the Snapshot API; the container must be created before creating a repository

Azure CLI 2.0. 

# jq needs to be installed
export AZURE_STORAGE_CONNECTION_STRING="$(az storage account show-connection-string \
  --name '<storage account name>' --resource-group '<resource group>' \
      | jq -r .connectionString)"

az storage container create --name "<container name>"

Azure PowerShell. 

Set-AzureRmCurrentStorageAccount -ResourceGroupName "<resource group>" `
    -Name "<storage account name>"
New-AzureStorageContainer -Name "<container name>"

then the Azure repository can be created using the Snapshot API

PUT _snapshot/backup_1
{
  "type": "azure",
  "settings": {
    "container": "<container name>"
  }
}

Miscellaneous pluginsedit

Other plugins can be installed at deployment time using the following parameter

esAdditionalPlugins

Additional Elasticsearch plugins to install. Each plugin name must be separated by a semicolon. For example,

analysis-icu;ingest-geoip;ingest-attachment

Any additional plugins installed are added to the plugin.mandatory setting in elasticsearch.yml configuration, to ensure that a node will start only when it has all mandatory plugins.