Create or update desired nodes APIedit

This feature is designed for indirect use by Elasticsearch Service, Elastic Cloud Enterprise, and Elastic Cloud on Kubernetes. Direct use is not supported.

Creates or updates the desired nodes.

Requestedit

PUT /_internal/desired_nodes/<history_id>/<version>
{
    "nodes" : [
        {
            "settings" : {
                 "node.name" : "instance-000187",
                 "node.external_id": "instance-000187",
                 "node.roles" : ["data_hot", "master"],
                 "node.attr.data" : "hot",
                 "node.attr.logical_availability_zone" : "zone-0"
            },
            "processors" : 8,
            "memory" : "58gb",
            "storage" : "1700gb",
            "node_version" : "{version}"
        }
    ]
}

Query parametersedit

master_timeout
(Optional, time units) Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error. Defaults to 30s.

Descriptionedit

This API creates or update the desired nodes. External orchestrators can use this API to let Elasticsearch know about the cluster topology, including future changes such as adding or removing nodes. Using this information, the system is able to take better decisions.

Examplesedit

In this example, a new version for the desired nodes with history Ywkh3INLQcuPT49f6kcppA is created. This API only accepts monotonically increasing versions.

PUT /_internal/desired_nodes/Ywkh3INLQcuPT49f6kcppA/100
{
    "nodes" : [
        {
            "settings" : {
                 "node.name" : "instance-000187",
                 "node.external_id": "instance-000187",
                 "node.roles" : ["data_hot", "master"],
                 "node.attr.data" : "hot",
                 "node.attr.logical_availability_zone" : "zone-0"
            },
            "processors" : 8,
            "memory" : "58gb",
            "storage" : "1700gb",
            "node_version" : "{version}"
        }
    ]
}

The API returns the following result:

{
  "replaced_existing_history_id": false
}