Elastic Stack license application

Elastic Stack license application

Overview

Kublr uses Elasticsearch and Kibana as a part of our monitoring and log collection subsystem.

Kublr also uses standard upstream Elasticsearch and Kibana docker images provided by Elastic as described in these documentation pages: Elasticsearch, Kibana.

The Elastic documentation specifies:

These images are free to use under the Elastic license. They contain open source and free commercial features and access to paid commercial features. Start a 30-day trial to try out all of the paid commercial features. See the Subscriptions page for information about Elastic license levels.

The current version of Elastic Stack will run in trial mode for 30 days with full functionality, and then will start notifying users that the trial period is over. Functionality will then revert to the open source version, with X-Pack features disabled.

This does not affect standard Kublr functionality, but users may want to use advanced Elastic Stack features for their specific solutions.

At this point users have the following options:

  1. Leave Elastic Stack to run in open source mode

  2. Provision and apply a commercial Elastic Stack license

  3. Provision and apply a free basic Elastic Stack license

Please refer to the Elastic Stack subscription page for more information on option differences and licenses.

Now we’ll describe the process of applying the acquired license to Elastic Stack in the context of a Kublr cluster or Kublr control plane.

Applying your Elastic Stack license

Please refer to Elasticsearch documentation for more information on licensing API and all available operations.

This section describes how this API may be used to apply an Elastic license to an Elasticsearch instance running as a part of Kubernetes cluster and/or Kublr platform.

  1. Set environment variables with target Kubernetes cluster API endpoint and admin user access token. Both may be found in the cluster config file:

    export K8S_API_ENDPOINT=1.2.3.4
    export K8S_TOKEN=abcdefghijklmnopqrstuvwxyz1234567890
    
  2. Assuming that the Elastic license is acquired and saved in the license.json file in the current directory, apply the license to the Elasticserach server:

    curl -k \
        -XPUT \
        -H "Authorization: Bearer ${K8S_TOKEN}" \
        -H "Content-Type: application/json" \
        -d @license.json \
        "https://${K8S_API_ENDPOINT}/api/v1/namespaces/kube-system/services/elasticsearch-logging:9200/proxy/_xpack/license?acknowledge=true"
    
  3. Validate that Elasticsearch responds with a valid license acknowledged message like this:

    {"acknowledged":true,"license_status":"valid"}