Customize your deployment

edit

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

Before you begin

edit

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.

Steps

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

    "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:

    "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:

    "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:

    "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:

    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":{
                  ...  // Add your resource settings here
              }
          }]
       },
       "settings": {
           ... // Add deployment settings here
       }
    }'