Giter Site home page Giter Site logo

escluster's People

Contributors

gwbrown avatar

Watchers

 avatar  avatar

escluster's Issues

Allow settings to be overridden per-node

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.

Add a "cluster" layer to allow managing multiple nodes at once

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.

Ensure escluster works on Windows

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.

Add contracts

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.

Ensure all nodes are shut down when escluster exits

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.

Ensure escluster works on Linux

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.

Finish setting up CI

There's currently a very basic Github action to build and run the tests. I would like to:

  • Get actual tests set up
  • Make CI run them
  • Make CI build binaries for supported platforms

Allow use outside of the REPL

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.

Run Kibana as well as Elasticsearch

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.

Add documentation

Currently the project is completely undocumented. So I'm the only one able to use it. That stinks. I should write some docs.

Allow multiple versions

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.