gwbrown / escluster Goto Github PK
View Code? Open in Web Editor NEWA small tool to start local Elasticsearch clusters for development purposes.
License: Other
A small tool to start local Elasticsearch clusters for development purposes.
License: Other
It would be nice to be able to override settings per-node, to test situations in which some nodes are configured differently.
This would probably best be implemented by switching to a map and serializing it. While this may not be able to emulate everything we could express in YAML, that's how the Elasticsearch settings infrastructure works, so it should be just fine.
Maybe mixin files would be nice? But that's another issue I think.
A cluster layer could also keep track of node IDs, as currently they must be integers. This would allow starting and stopping the whole cluster at once, as well as some other conveniences such as creating a cluster with an arbitrary number of nodes with a single command.
It would be nice if this worked on Windows as well. I think it should be pretty easy to do this as I've tried to use built-in Racket functionality wherever possible rather than shelling out, but it will require actually testing it and fixing anything that breaks, plus adding support for retrieving/building the right package for the platform.
One additional place that will be necessary to fix I think is the /usr/bin/env
call to set the ES_JAVA_OPTS
and ES_PATH_CONF
environment variables. Not sure how this works on Windows.
Currently, this is all in dynamically-typed Racket. Adding contracts would make it clearer how to use this library and make it safer to use as well.
Currently escluster does nothing to try to ensure nodes are stopped when the process exits - we should add an exit hook to ensure these nodes are killed, otherwise the user will have to find and kill it manually.
Currently this has only been tested on MacOS. We should ensure it works on Linux as well. I think it should be pretty easy to do this as I've tried to use built-in Racket functionality wherever possible rather than shelling out, but it will require actually testing it and fixing anything that breaks, plus adding support for retrieving/building the right package for the platform.
There's currently a very basic Github action to build and run the tests. I would like to:
Currently, this project is only usable via the REPL. In order for people who aren't Racket turbonerds to be able to use it, it needs a shell or something. That might be basically a Racket REPL that just does the requires to get everything in place for you, or it might be a little more advanced than that.
Being able to start a Kibana instance automatically configured to point at the cluster in question would be a nice addition, so that it's not necessary to stand it up manually.
Currently the project is completely undocumented. So I'm the only one able to use it. That stinks. I should write some docs.
Easier manual testing/debugging of rolling upgrades was one of the inspirations for this project. Allowing each node to use a different version of Elasticsearch is necessary to accomplish this goal.
It would be extra nice if escluster could go and download the appropriate version for you as well.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.