123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- [[update-desired-nodes]]
- === Create or update desired nodes API
- ++++
- <titleabbrev>Create or update desired nodes</titleabbrev>
- ++++
- NOTE: {cloud-only}
- .New API reference
- [sidebar]
- --
- For the most up-to-date API details, refer to {api-es}/group/endpoint-cluster[Cluster APIs].
- --
- Creates or updates the desired nodes.
- [[update-desired-nodes-request]]
- ==== {api-request-title}
- [source,console]
- --------------------------------------------------
- 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.0,
- "memory" : "58gb",
- "storage" : "2tb"
- }
- ]
- }
- --------------------------------------------------
- // TEST[s/<history_id>/test/]
- // TEST[s/<version>/1/]
- //////////////////////////
- [source,console]
- --------------------------------------------------
- DELETE /_internal/desired_nodes
- --------------------------------------------------
- // TEST[continued]
- //////////////////////////
- [[update-desired-nodes-query-params]]
- ==== {api-query-parms-title}
- include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=master-timeout]
- `dry_run`::
- (Optional, Boolean) If `true`, then the request simulates the update and
- returns a response with `dry_run` field set to `true`.
- [[update-desired-nodes-desc]]
- ==== {api-description-title}
- 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.
- It's possible to run the update in "dry run" mode by adding the
- `?dry_run` query parameter. This will validate the request result, but will not actually perform the update.
- [[update-desired-nodes-examples]]
- ==== {api-examples-title}
- In this example, a new version for the desired nodes with history `Ywkh3INLQcuPT49f6kcppA` is created.
- This API only accepts monotonically increasing versions.
- [source,console]
- --------------------------------------------------
- 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.0,
- "memory" : "58gb",
- "storage" : "2tb"
- }
- ]
- }
- --------------------------------------------------
- // TEST
- The API returns the following result:
- [source,console-result]
- --------------------------------------------------
- {
- "replaced_existing_history_id": false,
- "dry_run": false
- }
- --------------------------------------------------
- Additionally, it is possible to specify a processors range.
- This is helpful in environments where Elasticsearch nodes can
- be deployed in hosts where the number of processors that the
- Elasticsearch process can use is guaranteed to be at least the
- lower range and up to the upper range. This is a common scenario
- in Linux deployments where cgroups is used.
- [source,console]
- --------------------------------------------------
- PUT /_internal/desired_nodes/Ywkh3INLQcuPT49f6kcppA/101
- {
- "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_range" : {"min": 8.0, "max": 10.0},
- "memory" : "58gb",
- "storage" : "2tb"
- }
- ]
- }
- --------------------------------------------------
- //////////////////////////
- [source,console]
- --------------------------------------------------
- DELETE /_internal/desired_nodes
- --------------------------------------------------
- // TEST[continued]
- //////////////////////////
|