-
Notifications
You must be signed in to change notification settings - Fork 852
Ensuring restarts are cluster friendly #126
Comments
I strongly agree with "We begin to blur the lines between configuration management and cluster management by adding the above." and am not sure if this level of automation and "cleverness" in a configuration management script is good - it may cause more confusion and errors than it helps. I would tend not to implement this functionality with the argumentation that usecases are too different to have this a standard feature. If at all, it should be an optional feature (disabled by default) which can be enabled with a variable. |
I can't speak for what's typical or atypical within Ansible modules, but offering input from the puppet side, I err with @robin13's perspective in that this treads into "cluster management" territory, and that there's essentially unbounded potential here for functionality. There was actually user input in the puppet module to change the I do think there are some cases when managing indices/stateful data within Elasticsearch is just too useful not to leverage config management for, like managing index templates. It talks to the API and reads/writes data to a document store, but it's just way too useful for users to ignore the feature. It's probably worth granting greater weight to user preference in either case; I don't have as close of a pulse on what's needed as end-users do (for example, I went into the puppet module thinking adding additional supported OSes was high-priority, but getting Shield supported dwarfed all other requests from users). |
I don't really understand what do you mean by "cluster management", but what I do understand is the feature we are talking about is more like an orchestration to do rolling upgrade. And in the ansible world, it's described by playbooks. But in my opinion, I don't think that we should implement it because ansible-elasticsearch is a role and should stay as that. It's more generic and do a good job in the elasticsearch deployment. We can add an option as proposed by @tylerjl ( For rolling upgrade, we can propose an generic playbook as exemple (in docs?). This will fix I'm actually trying write a playbook with rolling upgrade in our env. PS: An exemple I found in the @ekhoinc github repo |
I agree with the general sentiment here. This roles is already pretty feature dense. The example posted by @barryib could be reworked to separate the pre upgrade and post upgrade tasks
Or
|
I should add, that once you start introducing playbook and/or role composition, that you will inevitably come face to face with Ansible's variable precedence and override shenanigans. |
We already support a |
Many actions in the role require a node restart. Currently we don't use synced flush or disable allocation before restarting nodes per recommendations here.
Installation of plugins could therefore cause significant cluster disruption and potentially very long recoveries. This ticket proposes:
Or possibly a combination of the above.
Whilst ideally we would minimise cluster disruption i see several challenges with the above:
@tylerjl @elasticdog @dliappis @jakommo @barryib
Relevant features maybe http://docs.ansible.com/ansible/playbooks_delegation.html
The text was updated successfully, but these errors were encountered: