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" : "6.5.4",
                  "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" : "6.5.4",
                  "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":{
                  "cluster_topology": [{
                      "node_type": {
                          "master": true,
                          "data": true,
                          "ingest": true
                      },
                      "instance_configuration_id": "data.default",
                      "zone_count": 3,
                      "size": {
                          "resource": "memory",
                          "value": 4096
                      }
                  }],
                  "elasticsearch":{
                      "version": "7.5.1",
                      "user_plugins" : [],
                      "user_bundles" : [],
                        ...
                  },
                  "deployment_template":{
                      "id": "default"
                  }
              },
              "settings":{
                  ...  // Add your resource settings here
              }
          }]
       },
       "settings": {
           ... // Add deployment settings here
       }
    }'
    DEPLOYMENT_ID
    The deployment ID for My First Deployment