Skip to content

Multi node security auto-configuration with enrollment mode documentation enhancements #80991

Closed
@jkakavas

Description

@jkakavas

Since 8.0.0 and the changes for Security ON by default, when a node starts and gets TLS auto-configuration, we bind the http layer to _site_ and _local_ but transport layer still only to _local_. This is an intentional design decision, and it means that
a) We don't generate an enrollment token for other nodes, as we expect the user needs to perform some additional actions (bind to non localhost address , take care of bootstrap checks ) if/before they can enroll new nodes, so the enrollment token would be probably invalid by the time it would be used.
b) Only nodes on the same host can join the cluster without additional configuration ( set network.host or transport.host to a non localhost address)

Additionally, since we do not bind to non localhost in nodes that enroll to an existing node, enrollment can succeed but the node will fail to join the cluster if the rest of the nodes are in different hosts.

We can

  1. Adjust our documentation to make this clear, in the sections where we describe how to manually setup a multi node cluster with our enrollment mode so that users are aware of the limitation and the required actions.
  2. (optionally) change our generated configuration to have a commented out #transport.host setting that users can enable, with an associated sentence
  3. Adjust the output of our auto-configuration to add information around this
  4. Adjust the output of elasticsearch-create-enrollment-token to print a warning when the node that generates the token is only bound to localhost
  5. Set transport.host on new nodes that enroll to a cluster if we can determine that they are on different hosts than the existing nodes.
  6. allow a --transport.host parameter that woul take an IP Address or hostname and persist that in the configuration of the node that we auto-generate.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions