0.2.0 • Published 4 years ago

mongo-hydra v0.2.0

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

mongo-hydra

A open source mongo orchestration tool with high hopes.

Vision

Automate the creation, modification, or deletion of everything required to run a highly available scalable mongo cluster.

Reliability Highly available, self healing, resistant to failure, scalable leveraging existing orchestration tools (eg k8s)

Developer Experience Infra as code, simple to get started, easy to scale down for local development and experimentation.

At unu we run large mongo clusters. We use homegrown tools to manage these clusters. These tools were originally built in bash and have become hard to maintain.

Mongo-hydra is an attempt to open source all that learning in a proper reuseable maintainable tool that we will use internally too.

Installation

CLI

$ npm install -g mongo-hydra
+ mongo-hydra@latest

hydra replication -f examples/replication/hydra.yaml

Docker Image

docker pull unumotors/mongo-hydra

Release Schedule

VersionComponent / FeatureGithub Milestone
v0.1.0Basic scaffolding + connection logicv0.0.1
v0.2.0Manage replicationv0.2.0
v0.3.0Shardingv0.3.0
v0.4.0User and rolesv0.4.0
v0.5.0Authenticationv0.5.0
v0.6.0K8s Operator + CRDsv0.6.0

Comparison

Similar tools like KubeDB and Percona Kubernetes Operator exist. This lists their current feature set.

HydraKubeDBPercona
InterfaceCLI
Raw Machines
Docker Standalone
k8s operator
MongoDB supportReplica sets
Delayed members
Arbiter members
Sharded cluster
User management
Admin user setup✅ (k8s)✅(k8s)
Mongo version support✅ =<4.2🟠 3.6✅ 4.2
SecurityCertificates
Keyfiles
Encryption at rest
BackupsAutomatic backups
s3
gcs
tarsnap
MonitoringPrometheus
Custom
VariousDocumentation🟠 Limited🟠 Limited

Warning

Right now this project is pre alpha and not recommended for production systems.

Tests

This project is supported by unit and integration level tests.

To run the unit-tests you need to provide a mongod instance without auth at localhost and run npm run test-dev.

To run integration tests you need to run MONGO_VERSION=4.0 docker-compose -f test-integration/docker-compose.yaml up and npm run test-integration.

Community & Contributions

Although we will gladly welcome contributions in the near future we would like to first get our first minimal release as we need to aim to maintain feature parity with our internal tool, before opening it up to external contributions.

Questions and feedback: file an issue.

Follow along: Github Releases.

License

Copyright 2020 unu GmbH

Licensed under MIT