ECK Coordinating only node 7.10.2 has all node roles

Hi,

Deploying ECK and trying to configure a client/coordinating-only node.
The node roles is configured to:

node.roles: [ ]

As stated here.

But the client node seem to have all the roles and shards are wrongfully created on those nodes:
image

Also tried to configure according to this:

node.roles: !!seq ""

But Harness, which we use for deployment, is indicating that this is invalid:

ClassCastException: org.yaml.snakeyaml.nodes.ScalarNode cannot be cast to org.yaml.snakeyaml.nodes.SequenceNode

Please advise.

Update: was able to finally change the node roles using the deprecated settings:

    - name: client
      config:
        node.data: false
        node.ingest: false
        node.master: false
        node.ml: false     

But this is deprecated settings. Can someone from Elastic please advise?
(We are using 7.10.2)

Have a look at: Node | Elasticsearch Guide [7.12] | Elastic

From that I'd guess something like:

    - name: client
      config:
        node.roles: [ ]

Does this work?

Unfortunately does not work.

@sebgl do you know?

Unfortunately this is a known issue we haven't fully solved yet in ECK: Coordinator nodes cannot be defined using node.roles · Issue #3718 · elastic/cloud-on-k8s · GitHub
It has to do with yaml syntax for nil vs. empty arrays...

We added a workaround for it starting ECK 1.4.0, so we properly treat a nil node.roles as an empty slice. See Coordinator nodes cannot be defined using node.roles · Issue #3718 · elastic/cloud-on-k8s · GitHub.

tl;dr: starting ECK 1.4.0 you should be able to use node.roles: []
I suspect you are using an earlier ECK version?

1 Like

Look like we are using ECK 1.2.1 so that must be the problem as you had written.
Many thanks!