Maden is a minimal, lightweight container orchestration tool. It can be used for basic local development. The architecture closely mirrors that of Kubernetes, with:
- pods able to run multiple (Docker) containers; they support pod replicas, affinities/anti-affinities, tolerations, restart policies
- deployments and services; they can be configured through yaml manifests as usual, along with persistent volumes and claims
- schedulers determining how to schedule pods based on available resources (only virtual for now), affinities etc.
- controllers ensuring the state of the system reflects the defined configuration
- an etcd data source storing pods, nodes etc.
- an API server allowing interaction with the Maden resources
- a CLI tool to interact with the API server
Maden will be packaged soon. For now, you can use it by following these steps:
- Ensure you have golang and Docker installed and fetch the repository.
- Run
docker build -t maden:latest .
anddocker-compose up
to start the server. - Run
cd cmd\madencli
andgo build -o madencli.exe
to build the CLI tool. - Now you can interact with Maden via commands, for example:
./madencli.exe apply -f \path-to-your-root-folder\example_deployments\example_deployment.yaml
This applies the example deployment from the example_deployments directory. Run./madencli.exe -h
to see all available commands.
In mid stages of development.
All contributions are warmly welcomed. Head over to CONTRIBUTING.md for details.