Skip to content

A open source mongo orchestration tool with high hopes

License

Notifications You must be signed in to change notification settings

unumotors/mongo-hydra

Repository files navigation

mongo-hydra

codecov build

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

Examples

A full set of examples is available in /examples directory.

Release Schedule

Version Component / Feature Github Milestone
v0.1.0 Basic scaffolding + connection logic v0.0.1
v0.2.0 Manage replication v0.2.0
v0.3.0 Sharding v0.3.0
v0.4.0 User and roles v0.4.0
v0.5.0 Authentication v0.5.0
v0.6.0 K8s Operator + CRDs v0.6.0

Comparison

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

Hydra KubeDB Percona
Interface CLI
Raw Machines
Docker Standalone
k8s operator
MongoDB support Replica sets
Delayed members
Arbiter members
Sharded cluster
User management
Admin user setup ✅ (k8s) ✅(k8s)
Mongo version support ✅ =<4.4 🟠 3.6 ✅ 4.2
Security Certificates
[Vault][vault] support
Keyfiles
Encryption at rest
Backups Automatic backups
s3
gcs
tarsnap
Monitoring Prometheus
Custom
Various Documentation 🟠 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

About

A open source mongo orchestration tool with high hopes

Resources

License

Stars

Watchers

Forks

Packages

No packages published