Manage licenses in ECKedit

When you install the default distribution of ECK, you receive a Basic license. Any Elastic stack application you manage through ECK will also be Basic licensed. Go to to see which features are included in the Basic license for free.

ECK is only offered in two licensing tiers: Basic and Enterprise. Similar to the Elastic Stack, customers can download and use ECK with a Basic license for free. Basic license users can obtain support from GitHub or through our community. A paid Enterprise subscription is required to engage the Elastic support team. For more details, see the Elastic subscriptions.

In this section, you are going to learn how to:

Start a trialedit

If you want to try the features included in the Enterprise subscription, you can start a 30-day trial. To start a trial create a Kubernetes secret as shown below. Note that it must be in the same namespace as the operator:

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
  name: eck-trial-license
  namespace: elastic-system
  labels: enterprise_trial
  annotations: accepted 

By setting this annotation to accepted you are expressing that you have accepted the Elastic EULA which can be found at

You can initiate a trial only if a trial has not been previously activated.

At the end of the trial period, the Platinum and Enterprise features operate in a degraded mode. You can revert to a Basic license, extend the trial, or purchase an Enterprise subscription.

Add a licenseedit

If you have a valid Enterprise subscription or a trial license extension, you will receive a license as a JSON file. The JSON file contains the cluster-level Enterprise licenses which enables ECK features, as well Platinum Stack licenses for recent and older Elasticsearch versions.

After you install a license into ECK, all the Elastic Stack applications you manage with ECK have Platinum and Enterprise features enabled. Additionally, the _license API reports that individual Elasticsearch clusters are running under a Platinum license, and the command kubectl -n elastic-system get configmap elastic-licensing -o yaml returns a JSON document that, among other things, contains the current license level of the ECK operator. Applications created before you installed the license are upgraded to Platinum or Enterprise features without interruption of service after a short delay.

To add the license to your ECK installation, create a Kubernetes secret of the following form:

apiVersion: v1
kind: Secret
  labels: operator 
  name: eck-license
type: Opaque
  license: "JSON license in base64 format"  

This label is required for ECK to identify your license secret.

The license file can have any name.

You can easily create this secret using kubectl built-in support for secrets. Note that it must be in the same namespace as the operator:

kubectl create secret generic eck-license --from-file=my-license-file.json -n elastic-system
kubectl label secret eck-license ""=operator -n elastic-system

Update your licenseedit

Before your current Enterprise license expires, you will receive a new Enterprise license from Elastic (provided that your subscription is valid).

You can see the expiry date of your license in the license file that you received from Elastic. Enterprise licenses are container licenses that include multiple licenses for individual Elasticsearch clusters with shorter expiry. Therefore, you will see a different expiry in Kibana or via the Elasticsearch _license API. ECK will automatically update the Elasticsearch cluster licenses until the expiry date of the ECK Enterprise license is reached.

To avoid any unintended downgrade of individual Elasticsearch clusters to a Basic license while installing the new license, we recommend to install the new Enterprise license as a new Kubernetes secret next to your existing Enterprise license. Just replace eck-license with a different name from the examples above. ECK will use the correct license automatically.

Once you have created the new license secret you can safely delete the old license secret.

Get usage dataedit

The operator periodically writes the total amount of Elastic resources under management to a configmap named elastic-licensing, which is in the same namespace as the operator. Here is an example of retrieving the data:

> kubectl -n elastic-system get configmap elastic-licensing -o json | jq .data
  "eck_license_level": "enterprise",
  "enterprise_resource_units": "1",
  "max_enterprise_resource_units": "10",
  "timestamp": "2020-01-03T23:38:20Z",
  "total_managed_memory": "3.22GB"

If the operator metrics endpoint is enabled via the --metrics-port flag (see Configure ECK), license usage data will be included in the reported metrics.

> curl "$ECK_METRICS_ENDPOINT" | grep elastic_licensing
# HELP elastic_licensing_enterprise_resource_units_total Total enterprise resource units used
# TYPE elastic_licensing_enterprise_resource_units_total gauge
elastic_licensing_enterprise_resource_units_total{license_level="basic"} 6
# HELP elastic_licensing_memory_gigabytes_total Total memory used in GB
# TYPE elastic_licensing_memory_gigabytes_total gauge
elastic_licensing_memory_gigabytes_total{license_level="basic"} 357.01915648