Dynamically update cloud.aws.signer on all es nodes

Hi,

We are using elasticsearch version 5.5.1. We are using a s3 compatible service for taking snapshots which is using the older APIs to sign the request. Hence we need to set the below setting on every node in elasticsearch.yml:

cloud.aws.signer: S3SignerType

Is there any way to set this setting dynamically without a full cluster restart. We have around 150 nodes in the cluster and restarting all of them with this config is going to be a huge task. Is there any other alternative which we have?

I also didn't understand why is this setting set per node? It should be ideally per repo because we can have different repos, one which supports v2 signing and the other which works on v4 signing. Setting this setting restricts us to use only one type of repo.

Also I see that this setting has been removed from ES 6.0 onwards. Does that mean we will not be able to use s3 compatible services which use the older APIs to sign request anymore? If not then what is the alternative for setting this?

Does that mean we will not be able to use s3 compatible services which use the older APIs to sign request anymore? If not then what is the alternative for setting this?

Yes. It’s not supported.
You need to fork the project and build your own version that you test against your provider.

Out of curiosity what is the provider you are using?

We have an in-house service which is currently at v2 version.

Also anything you'll be able to comment on dynamic updation or the rationale behind this setting being at a node level and not at a repo level. Would be really helpful if you can help or point someone who'll be able to comment on the same.

Starting from 6.0, the AWS client is built somehow when the node starts.
So it must be a node level setting.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.