Type to search.

ECE API examples: Customize your deployment

ECE

Elastic Cloud Enterprise is a self-managed orchestration platform for deploying and managing the Elastic Stack at scale.

Availability

  • Generally available

    This functionality is generally available and ready for production usage.

This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.

To meet your unique deployment needs, you can customize your existing deployment by adding more features.

This example requires a deployment with an Elasticsearch cluster to work with that is not being used for anything important. If you don’t already have one, you can follow our My First Deployment example to create one.

  1. To add snapshot repository configurations, specify the snapshot values:

    Shell
    "elasticsearch": [{
        ...,
        "settings": {
          "snapshot" : {
               "enabled" : true,
               "interval" : "24",
               "pending_interval" : "24",
               "repository" : {
                  "default" : {},
                  "reference" : {
                     "repository_name" : "my_repository_name"
                  },
                  "static" : {
                     "repository_type" : "S3",
                     "settings" : {}
                  }
               },
               "repository_name" : "my_repository_name",
               "retention" : {
                  "max_age" : "24",
                  "snapshots" : 0
               },
                "wait_time_after_snapshotting" : "10"
             }
          }
       },
       ...
    }]
    
  2. To add bundles to the deployment template, specify the user_bundles values:

    Shell
    "plan" : {
        ... ,
        "elasticsearch": {
            "user_bundles" : [
              {
                  "elasticsearch_version" : "7.13.3",
                  "name" : "uber_plugin",
                  "url" : "uber_plugin_v1.zip"
              }
            ]
        }
    }
    
  3. To add specific Elasticsearch plugins, specify the user_plugins values:

    Shell
    "plan" : {
        ... ,
        "elasticsearch": {
            "user_plugins" : [
              {
                  "elasticsearch_version" : "7.13.3",
                  "name" : "repository-azure",
                  "url" : "https://artifacts.elastic.co/downloads/elasticsearch-plugins/repository-azure/repository-azure-6.6.0.zip"
              }
            ]
        }
    }
    
  4. Apply deployment logging and monitoring:

    Shell
    "settings": {
        "logging": {
            "destination": {
                "deployment_id": "DESTINATION_DEPLOYMENT_ID",
                "ref_id": `main-elasticsearch`
            }
        },
        "metrics": {
            "destination": {
                "deployment_id": "DESTINATION_DEPLOYMENT_ID",
                "ref_id": `main-elasticsearch`
            }
        }
    }
    
    DESTINATION_DEPLOYMENT_ID

    The deployment ID for My First Deployment. The deployment’s logs and metrics will be sent to itself, or they can be sent to a different deployment by specifying that deployment’s ID.

  5. Apply the updated deployment configuration with a PUT request:

    Shell
    curl -k -X PUT -H "Authorization: ApiKey $ECE_API_KEY" https://$COORDINATOR_HOST:12443/api/v1/deployments/$DEPLOYMENT_ID -H 'content-type: application/json' -d '{
        "prune_orphans" : false,
        "resources":{
           "elasticsearch": [{
              "region": "ece-region",
              "ref_id": "main-elasticsearch",
              "plan":{
                ...
                  "elasticsearch":{
                      "version": "7.13.3",
                      "user_plugins" : [],
                      "user_bundles" : [],
                        ...
                  },
                  "deployment_template":{
                      "id": "default"
                  }
              },
              "settings":{
                  ...
              }
          }]
       },
       "settings": {
           ...
       }
    }'
    
    1. Add your resource settings here
    2. Add deployment settings here