Loading

ECE API examples: Customize your deployment

ECE

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:

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